Difference between revisions of "CINF (File Format)"
From Retro Modding Wiki
m |
|||
Line 1: | Line 1: | ||
− | The '''CINF format''' is for skeletons. | + | The '''CINF format''' is for skeletons. Skeletons are associated with models and skins through [[ANCS (File Format)|ANCS]] files. |
− | {{todo| | + | {{researchminor|reason=What is the point of the bone ID section?}} |
+ | {{todo|MP2/3/DKCR differences}} | ||
+ | |||
+ | == Format == | ||
+ | |||
+ | The file starts with a list of all the bones in the skeleton. The first value is a 32-bit count, then the following structure loops. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! Offset | ||
+ | ! Type | ||
+ | ! Size | ||
+ | ! Description | ||
+ | |- | ||
+ | | 0x0 | ||
+ | | u32 | ||
+ | | 4 | ||
+ | | '''Bone ID''' | ||
+ | |- | ||
+ | | 0x4 | ||
+ | | u32 | ||
+ | | 4 | ||
+ | | '''Parent Bone ID''' | ||
+ | |- | ||
+ | | 0x8 | ||
+ | | float[3] | ||
+ | | 0xC | ||
+ | | '''Position''' | ||
+ | |- | ||
+ | | 0x14 | ||
+ | | u32 | ||
+ | | 4 | ||
+ | | '''Linked bone count''' (LC); includes parent + children | ||
+ | |- | ||
+ | | 0x18 | ||
+ | | u32[] | ||
+ | | 4 × LC | ||
+ | | '''Linked bone ID array''' | ||
+ | |} | ||
+ | |||
+ | After this is an array listing every bone ID in the skeleton. The first bone is the root bone, then the rest are listed in reverse numerical order. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! Type | ||
+ | ! Count | ||
+ | ! Description | ||
+ | |- | ||
+ | | u32 | ||
+ | | 1 | ||
+ | | '''Bone ID count''' (BC) | ||
+ | |- | ||
+ | | u32 | ||
+ | | BC | ||
+ | | '''Bone ID array''' | ||
+ | |} | ||
+ | |||
+ | Finally, the end of the file sets bone names. After the traditional count value, this short structure loops: | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! Type | ||
+ | ! Count | ||
+ | ! Description | ||
+ | |- | ||
+ | | string | ||
+ | | 1 | ||
+ | | '''Bone name''' | ||
+ | |- | ||
+ | | u32 | ||
+ | | 1 | ||
+ | | '''Bone ID''' | ||
+ | |} | ||
[[Category:File Formats]] | [[Category:File Formats]] |
Revision as of 12:30, 28 January 2015
The CINF format is for skeletons. Skeletons are associated with models and skins through ANCS files.
This file format is almost completely documented What is the point of the bone ID section? |
To do: MP2/3/DKCR differences |
Format
The file starts with a list of all the bones in the skeleton. The first value is a 32-bit count, then the following structure loops.
Offset | Type | Size | Description |
---|---|---|---|
0x0 | u32 | 4 | Bone ID |
0x4 | u32 | 4 | Parent Bone ID |
0x8 | float[3] | 0xC | Position |
0x14 | u32 | 4 | Linked bone count (LC); includes parent + children |
0x18 | u32[] | 4 × LC | Linked bone ID array |
After this is an array listing every bone ID in the skeleton. The first bone is the root bone, then the rest are listed in reverse numerical order.
Type | Count | Description |
---|---|---|
u32 | 1 | Bone ID count (BC) |
u32 | BC | Bone ID array |
Finally, the end of the file sets bone names. After the traditional count value, this short structure loops:
Type | Count | Description |
---|---|---|
string | 1 | Bone name |
u32 | 1 | Bone ID |