Difference between revisions of "SKEL (File Format)"
From Retro Modding Wiki
(Created page with "The '''SKEL format''' is used to store animation skeletons in Tropical Freeze. {{research|major|Structure is known, but most data is unknown.}} __TOC__ == Format == {| cla...") |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
The '''SKEL format''' is used to store animation skeletons in Tropical Freeze. | The '''SKEL format''' is used to store animation skeletons in Tropical Freeze. | ||
+ | {{todo|This format is near identical to DKCR's CINF format, so the article should be renamed + DKCR differences should be noted}} | ||
{{research|major|Structure is known, but most data is unknown.}} | {{research|major|Structure is known, but most data is unknown.}} | ||
Line 310: | Line 311: | ||
|- | |- | ||
| 0x00 | | 0x00 | ||
− | | | + | | {{Quaternion}} |
− | | | + | | 1 |
| {{unknown|Unknown}} | | {{unknown|Unknown}} | ||
− | | | + | | Likely bone orientation |
|- | |- | ||
| 0x10 | | 0x10 | ||
− | | | + | | {{Vector3f}} |
− | | | + | | 1 |
| {{unknown|Unknown}} | | {{unknown|Unknown}} | ||
− | | | + | | Likely bone scale (it's usually 1,1,1) |
|- | |- | ||
| 0x1C | | 0x1C | ||
− | | | + | | {{Vector3f}} |
− | | | + | | 1 |
| {{unknown|Unknown}} | | {{unknown|Unknown}} | ||
− | | | + | | Likely bone position |
|- | |- | ||
| 0x28 | | 0x28 |
Latest revision as of 06:02, 15 November 2016
The SKEL format is used to store animation skeletons in Tropical Freeze.
To do: This format is near identical to DKCR's CINF format, so the article should be renamed + DKCR differences should be noted |
This file format needs a lot of research Structure is known, but most data is unknown. |
Contents
Format
Type | Count | Name | Notes |
---|---|---|---|
Form Descriptor | 1 | SKEL Form Descriptor | Data type is SKEL
|
u16 | 1 | Magic | Always 0x9E22 |
u16 | 1 | Version | Always 0x13 |
Joint Name Array | 1 | Joint Name Array | Array containing the name of every joint in the skeleton. |
u16 | 1 | Unknown Count A | Matches the joint name count |
u16 | 1 | Unknown Count B | Matches the Skel Map size |
u16 | 1 | Unknown Count C | |
u16 | 1 | Unknown Count D | |
u16 | 1 | Unknown Count E | |
bool | 1 | Has Skeleton Map? | If false, the Skeleton Map is not present. |
Skeleton Map | 1 | Skeleton Map | Only present if Has Skeleton Map? is true. |
bool | 1 | Has Animation Attribute Data? | If false, the Animation Attribute Data is not present. |
Animation Attribute Data | 1 | Animation Attribute Data | Only present if Has Animation Attribute Data? is true. |
u8 | Unknown Count B | Unknown | |
u8 | Unknown Count C | Unknown | |
u8 | Unknown Count A | Unknown | |
u8 | Unknown Count E | Unknown | |
u32 | Unknown Count D | Unknown | |
Coords | Unknown Count B | Unknown | Coordinates array (likely initial bone transforms) |
Skeleton Joint Set | Unknown Count D | Skeleton Joint Set | |
Skeleton Set Fragment Data | 1 | Skeleton Set Fragment Data |
Joint Name Array
Type | Count | Name | Notes |
---|---|---|---|
u32 | 1 | Unknown | If non-zero, no names are present. |
u32 | 1 | Joint Name Count | Count of joint names in the array. |
Joint Name | Joint Name Count | Joint Name Array | Array of joint names. |
u32 | 1 | Unknown |
Joint Name
Type | Count | Name | Notes |
---|---|---|---|
u32 | 1 | Name Size | |
char | Name Size | Name | Zero-terminated |
Skeleton Map
Type | Count | Name | Notes |
---|---|---|---|
u16 | 1 | Unknown Count A | |
u8 | 1 | Unknown Count B | |
u8 | 1 | Unknown Count C | |
u8 | Unknown Count A | Unknown | |
u16 | Unknown Count A × 2 | Unknown | |
u32 | Unknown Count B | Unknown | |
u16 | Unknown Count C | Unknown | |
u32 | 1 | Unknown |
Animation Attribute Data
Type | Count | Name | Notes |
---|---|---|---|
bool | 1 | Has Visibility Group Name Array? | Indicates whether the Visibility Group Name Array is present. |
Joint Name Array | 1 | Visibility Group Name Array | Only present if Has Visibility Group Name Array? is true. |
bool | 1 | Has Animation Attribute Info Data? | Indicates whether the Animation Attribute Info Data is present. |
Animation Attribute Info Data | 1 | Animation Attribute Info Data | Only present if Has Animation Attribute Info Data? is true. |
Animation Attribute Info Data
Type | Count | Name | Notes |
---|---|---|---|
Joint Name Array | 1 | Unknown Name Array | |
u32 | 1 | Animation Attribute Info Count | Count of Animation Attribute Info elements in the next array. |
Animation Attribute Info | Animation Attribute Info Count | Animation Attribute Info Array |
Animation Attribute Info
Offset | Type | Count | Name | Notes |
---|---|---|---|---|
0x0 | u32 | 1 | Unknown | Must be 1, otherwise the following floats aren't present |
0x4 | float | 1 | Unknown | |
0x8 | float | 1 | Unknown | |
0xC | End of Animation Attribute Info |
Coords
Offset | Type | Count | Name | Notes |
---|---|---|---|---|
0x00 | Quaternion | 1 | Unknown | Likely bone orientation |
0x10 | Vector3f | 1 | Unknown | Likely bone scale (it's usually 1,1,1) |
0x1C | Vector3f | 1 | Unknown | Likely bone position |
0x28 | End of Coords |
Skeleton Joint Set
Type | Count | Name | Notes |
---|---|---|---|
u32 | 1 | Unknown | |
u32 | 1 | Unknown Count | |
u32 | 8 | Unknown | |
u8 | Unknown Count | Unknown |
Skeleton Set Fragment Data
Type | Count | Name | Notes |
---|---|---|---|
u32 | 1 | Unknown Count | |
u8 | Unknown Count B | Unknown | This uses the count value from the base skeleton data |
Unknown Struct | Unknown Count | Unknown |
Unknown Struct
Offset | Type | Count | Name | Notes |
---|---|---|---|---|
0x00 | u32 | 1 | Unknown | |
0x04 | u32 | 8 | Unknown | |
0x24 | End of Unknown Struct |