Skel_Z - widberg/fmtk GitHub Wiki

ImZouna Skel_Z

This is a Data Class.

struct Skel_Z : ResourceObject_Z {
    std::uint32_t flags;
        // ObjectDatas_Z
        // same flags as LodData_Z
    Sphere_Z boundingSphereCenter;
    PascalArray<struct Bone {
        crc32_t userDefineCRC32;
        Quat transformRotationInverse0;
        Vec3f transformScale;
        std::uint32_t boneFlags;
        Vec3f transformRow3;
            // not exactly equal but definitely related
        std::uint32_t childBoneBegin;
        Vec3f transformRow0;
        std::uint16_t somePlaceholder0;
            // placeholder junk value from the exporter
        std::uint16_t somePlaceholder1;
            // placeholder junk value from the exporter
        Vec3f transformRow1;
        std::uint32_t someMatPtr1Placeholder;
            // placeholder junk pointer from the exporter
        Vec3f transformRow2;
        std::uint32_t someMatPtr2Placeholder;
            // placeholder junk pointer from the exporter
        Quat transformRotationInverse1;
        Vec3i32 placeholderVec0;
            // (-1, -1, -1) on latest
            // (0, 0, 0) on p_moto and traffic_tm
        std::uint32_t parentBonePtrPlaceholder;
            // placeholder junk pointer from the exporter
        Vec3i32 placeholderVec1;
            // (-1, -1, -1) on latest
            // (0, 0, 0) on p_moto and traffic_tm
        std::uint32_t someBonePtrPlaceholder;
            // placeholder junk pointer from the exporter
        Vec3i32 placeholderVec2;
            // (-1, -1, -1) on latest
            // (0, 0, 0) on p_moto and traffic_tm
        std::uint32_t childBonePtrPlaceholder;
            // placeholder junk pointer from the exporter
        Mat4f transformation;
        std::int32_t parentIndex;
        std::int32_t childBonesIndex0;
        std::int32_t childBonesIndex1;
        std::int32_t someBoneIndex;
        crc32_t boneName;
    }> bones;
    PascalArray<crc32_t> materialCRC32s;
    PascalArray<crc32_t> meshDataCRC32s;
    PascalArray<PascalArray<crc32_t>> animationNodeNamesArrays;
    PascalArray<crc32_t> someNames;
    PascalArray<struct SphereColBone {
        Sphere_Z sphere;
        crc32_t names[3];
    }> sphereColBones0;
    PascalArray<SphereColBone> sphereColBones1;
    PascalArray<struct BoxColBone {
        Mat4f mat;
        crc32_t names[3];
    }> boxColBones;
};
//------------------------------------------------
//--- 010 Editor v11.0.1 Binary Template
//------------------------------------------------

struct Skel_Z
{
    uint32 u0;
    float u1;
    float u2;
    float u3;
    float u4;
    uint32 boneCount;
    struct Bone
    {
        uint32 userDefineCRC32;
        float quat[4];
        float vec0[3];
        uint32 boneFlags;
        float vec1[3];
        uint32 childBonesBegin;
        float vec2[3];
        uint32 someMatPtr0;
        float vec3[3];
        uint32 someMatPtr1;
        float vec4[3];
        uint32 someMatPtr2;
        float quat1[4];
        int32 vec5[3];
        uint32 parentBonePtr;
        int32 vec6[3];
        uint32 someBonePtr;
        int32 vec7[3];
        uint32 childBonePtr;
        float transformation[16];
        int32 parentIndex;
        int32 childBonesIndex0;
        int32 childBonesIndex1;
        int32 someBoneIndex;
        uint32 someBoneName;
    } bones[boneCount];
    uint32 materialCRC32Count;
    uint32 materialCRC32s[materialCRC32Count];
    uint32 meshDataCRC32Count;
    uint32 meshDataCRC32s[meshDataCRC32Count];
    uint32 unknown0Count;
    struct Unknown0
    {
        uint32 animationNodeNamesArrayCount;
        uint32 animationNodeNamesArrays[animationNodeNamesArrayCount];
    } unknown0s[unknown0Count] <optimize=false>;
    uint32 someNameCount;
    uint32 someNames[someNameCount];
    uint32 sphereColBones0Count;
    struct SphereColBone
    {
        float position[3];
        float radius;
        uint32 names[3];
    } sphereColBones0[sphereColBones0Count];
    uint32 sphereColBones1Count;
    SphereColBone sphereColBones1[sphereColBones1Count];
    uint32 boxColBoneCount;
    struct BoxColBone
    {
        float mat[16];
        uint32 names[3];
    } boxColBones[boxColBoneCount];
} skel;
⚠️ **GitHub.com Fallback** ⚠️