CINF (File Format): Difference between revisions
Jump to navigation
Jump to search
>Aruki mNo edit summary |
>Aruki No edit summary |
||
| 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 18: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 |