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 |