CINF (File Format): Difference between revisions
→Bone
>Aruki (Created page with "The '''CINF format''' is for skeletons. It can only be parsed on Halloween. {{todo|Write article.}}") |
>Aruki (→Bone) |
||
(10 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
The '''CINF format''' is for skeletons. | The '''CINF format''' is for character layouts (i.e. skeletons/armatures). | ||
Character layouts are associated with models and skins through [[ANCS (File Format)|ANCS]] files. | |||
{{todo| | {{todo|MP3/DKCR differences}} | ||
== Format == | |||
{| class="wikitable" | |||
! Type | |||
! Count | |||
! Name | |||
! Notes | |||
|- | |||
| u32 | |||
| 1 | |||
| '''Bone Count''' | |||
| | |||
|- | |||
| [[#Bone|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 [[wikipedia:Left-child right-sibling binary tree|child/sibling convention]]. | |||
|- | |||
| u32 | |||
| 1 | |||
| '''Bone Name Count''' | |||
| | |||
|- | |||
| [[#Bone Name|Bone Name]] | |||
| ''Bone Name Count'' | |||
| '''Bone Name Table''' | |||
| | |||
|- | |||
| colspan=4 {{unknown|End of file}} | |||
|} | |||
=== Bone === | |||
{| class="wikitable" | |||
! Offset | |||
! Type | |||
! Count | |||
! Name | |||
! Notes | |||
! MP1 | |||
! MP2 | |||
|- | |||
| 0x0 | |||
| u32 | |||
| 1 | |||
| '''Bone ID''' | |||
| | |||
| {{check}} | |||
| {{check}} | |||
|- | |||
| 0x4 | |||
| u32 | |||
| 1 | |||
| '''Parent Bone ID''' | |||
| | |||
| {{check}} | |||
| {{check}} | |||
|- | |||
| 0x8 | |||
| {{Vector3f}} | |||
| 1 | |||
| '''Position''' | |||
| The position is in the skeleton's local space, not in the parent's bone space. | |||
| {{check}} | |||
| {{check}} | |||
|- | |||
| 0x14 | |||
| {{Quaternion}} | |||
| 1 | |||
| '''Rotation''' | |||
| Initial rotation of the bone, also in the skeleton's local space. | |||
| {{nocheck}} | |||
| {{check}} | |||
|- | |||
| 0x24 | |||
| {{Quaternion}} | |||
| 1 | |||
| '''Local Rotation''' | |||
| Initial local rotation of the bone in this bone's local space (parent-relative). | |||
| {{nocheck}} | |||
| {{check}} | |||
|- | |||
| 0x34 | |||
| u32 | |||
| 1 | |||
| '''Linked Bone Count''' | |||
| | |||
| {{check}} | |||
| {{check}} | |||
|- | |||
| 0x38 | |||
| u32 | |||
| ''Linked Bone Count'' | |||
| '''Linked Bone ID Array''' | |||
| This array includes both the parent bone ID as well as all children. | |||
| {{check}} | |||
| {{check}} | |||
|- | |||
| colspan=7 {{unknown|End of bone}} | |||
|} | |||
=== Bone Name === | |||
{| class="wikitable" | |||
! Type | |||
! Count | |||
! Name | |||
! Notes | |||
|- | |||
| string | |||
| 1 | |||
| '''Bone Name''' | |||
| | |||
|- | |||
| u32 | |||
| 1 | |||
| '''Bone ID''' | |||
| | |||
|- | |||
| colspan=4 {{unknown|End of bone name}} | |||
|} | |||
[[Category:File Formats]] | |||
[[Category:Metroid Prime]] | |||
[[Category:Metroid Prime 2: Echoes]] | |||
[[Category:Metroid Prime 3: Corruption]] | |||
[[Category:Donkey Kong Country Returns]] |