This section describes the actor's bones, including the hierarchy and pose position.
Offset | Type | Description |
---|---|---|
0x0 | Magic (0x007B7960 for Sluggers) | |
0x4 | uint16 | Actor ID |
0x6 | uint16 | Bone count |
0x8 | uint32 | Unknown (Unimportant afaik) |
0xc | uint32 | First bone pointer (relative to header) |
0x10 | uint32 | GEO name pointer (relative to header). This is the name of the geometry vertex file the bones are for. |
0x14 | uint16 | Skin file id |
0x16 | byte[2] | Padding |
0x18 | uint32 | User data size |
0x1c | uint32 | User data pointer (relative to header). In Sluggers, this holds linking information between bones and animations tracks. |
Offset | Type | Description |
---|---|---|
0x0 | uint32 | Orientation control pointer (relative to header). This is an SRT that holds the bone's pose position, can be null. |
0x4 | uint32 | Previous sibling bone pointer (relative to header) |
0x8 | uint32 | Next sibling bone pointer (relative to header) |
0xc | uint32 | Parent bone pointer (relative to header) |
0x10 | uint32 | First child bone pointer (relative to header) |
0x14 | uint16 | GEO file ID, which mesh in the mesh data this bone controls. I think if this is FFFF, the first mesh must be skinned and this bone controls a portion of it. |
0x16 | uint16 | Bone ID |
0x18 | bool | Is this bone positioned relative to its parent? (Usually true) |
0x19 | uint8 | Something about draw priority, usually 0 |
0x1a | byte[2] | Padding |
SRT stands for scale, rotation, transform.
Offset | Type | Description |
---|---|---|
0x0 | uint8 | Type (I've seen 0x4, 0x8, and 0xc, but they all seem to behave the same) |
0x1 | byte[3] | Padding |
0x4 | float[3] | Scale (x, y, z) |
0x10 | float[4] | Quaternion (x, y, z, w) |
0x20 | float[3] | Translation (x, y, z) |
0x2c | byte[8] | Padding? Don't know why it's here. |