The CINF format is for character layouts (i.e. skeletons/armatures).
Character layouts are associated with models and skins through ANCS files.
|
To do: MP3/DKCR differences
|
Format
Type
|
Count
|
Name
|
Notes
|
u32
|
1
|
Bone Count
|
|
Bone
|
Bone Count
|
Bone Table
|
|
u32
|
1
|
Build Order ID Count
|
|
u32
|
Build Order ID Count
|
Build Order ID Table
|
The first element of the ID table is the root bone, followed by the rest of the bone IDs in reverse numerical order. This table is enumerated in-order to construct a singly-linked hierarchy of bones using child/sibling convention.
|
u32
|
1
|
Bone Name Count
|
|
Bone Name
|
Bone Name Count
|
Bone Name Table
|
|
End of file
|
Bone
Offset
|
Type
|
Count
|
Name
|
Notes
|
MP1
|
MP2
|
0x0
|
u32
|
1
|
Bone ID
|
|
✔
|
✔
|
0x4
|
u32
|
1
|
Parent Bone ID
|
|
✔
|
✔
|
0x8
|
float
|
3
|
Position
|
The position is in the armature's local space, not in the parent's bone space.
|
✔
|
✔
|
0x14
|
float
|
4
|
Rotation
|
Initial rotation of the bone, also in the armature's local space. This value is a quaternion.
|
✖
|
✔
|
0x24
|
float
|
4
|
Local Rotation
|
Initial local rotation of the bone in this bone's local space (parent-relative). This value is a quaternion.
|
✖
|
✔
|
0x34
|
u32
|
1
|
Linked Bone Count
|
|
✔
|
✔
|
0x38
|
u32
|
Linked Bone Count
|
Linked Bone ID Array
|
This array includes both the parent bone ID as well as all children.
|
✔
|
✔
|
End of bone
|
Bone Name
Type
|
Count
|
Name
|
Notes
|
string
|
1
|
Bone Name
|
|
u32
|
1
|
Bone ID
|
|
End of bone name
|