PAS Database
The Parameterized Animation State Database is an animation-related thing that appears in every Retro game. It can be found in the ANCS format in Metroid Prime 1 and 2, and the CHAR format in Metroid Prime 3, Donkey Kong Country Returns, and Donkey Kong Country: Tropical Freeze.
Format
| Type | Count | Name | Notes |
|---|---|---|---|
| FourCC | 1 | Magic | Always PAS4
|
| u32 | 1 | Anim State Count | Number of anim states |
| u32 | 1 | Default Anim State | Anim state used by the character by default. If there are no anim states, this will be set to -1. |
| Anim State | Anim State Count | Anim State Array | Array of anim states. |
Anim State
| Type | Count | Name | Notes |
|---|---|---|---|
| enum | 1 | Anim State Type | |
| u32 | 1 | Parm Info Count | Number of parameters |
| u32 | 1 | Anim Info Count | Number of animations |
| Parm Info | Parm Info Count | Parm Info Array | Describes parameters in this anim state |
| Anim Info | Anim Info Count | Anim Info Array | Describes animations in this anim state |
Anim State Type
| ID | State |
|---|---|
| 0 | Fall |
| 1 | Get Up |
| 2 | Lie On Ground |
| 3 | Step |
| 4 | Death |
| 5 | Locomotion |
| 6 | Knock Back |
| 7 | Melee Attack |
| 8 | Turn |
| 9 | Loop Attack |
| 10 | Loop Reaction |
| 11 | Ground Hit |
| 12 | Generate |
| 13 | Jump |
| 14 | Hurled |
| 15 | Slide |
| 16 | Taunt |
| 17 | Scripted |
| 18 | Projectile Attack |
| 19 | Cover |
| 20 | Wall Hang |
Parm Info
| Type | Count | Name | Notes |
|---|---|---|---|
| u32 | 1 | Parm Type | Parameter type. This value controls the type of other values in the Parm Info and Anim Info structures. |
| u32 | 1 | Weight Function | Specifies the weighting algorithm used for this parameter during selection. |
| float | 1 | Weight | Specifies how much influence this parameter has during selection. |
| Parm Type | 1 | Minimum Value | Minimum value this parameter can represent. The exact meaning depends on the context within the class implementation that uses it. |
| Parm Type | 1 | Maximum Value | Maximum value this parameter can represent. The exact meaning depends on the context within the class implementation that uses it. |
Parm Type
| ID | Type |
|---|---|
| 0 | Int32 |
| 1 | Uint32 |
| 2 | Real |
| 3 | Bool |
| 4 | Enum |
Weight Function
| ID | Type |
|---|---|
| 0 | Exact Match |
| 1 | Percent Error |
| 2 | Angular Percent |
| 3 | No Weight |
Anim Info
| Type | Count | Name | Notes |
|---|---|---|---|
| u32 | 1 | Anim ID | This is a character-relative anim index. In Prime 1/2, this should be indexed into the character's anim list to get the animset-relative index. |
| Parm Type | Parm Info Count | Parm Values Array | This array contains one value per Parm Info. The type of each value is determined by the corresponding Parm Info's Parm Type value. |