ANCS (File Format)
The ANCS format defines character sets and animation sets in Metroid Prime 1 and 2. Starting in Metroid Prime 3, it was replaced by the CHAR and SAND formats. The extension stands for ANimation Character Set.
Format
Type | Name | Notes |
---|---|---|
u16 | Version | Always 1. |
Character Set | Character Set | Set of characters that share animation data. |
Animation Set | Animation Set | Set of animations used by the characters in the character set. |
Character Set
Type | Count | Name | Notes |
---|---|---|---|
u16 | 1 | Version | Always 1. |
u32 | 1 | Character Count | Count of characters in this set. |
Character | Character Count | Characters Array | Array of characters. |
Character
Type | Count | Name | Notes | V1 | V2 | V4 | V5 | V10 |
---|---|---|---|---|---|---|---|---|
u32 | 1 | Character ID | Typically begins at 0 and increments by 1 on each successive character in the set. | ✔ | ✔ | ✔ | ✔ | ✔ |
u16 | 1 | Version | This can vary between different files/characters. Usually 5 or 6 in MP1 and 10 in MP2. | ✔ | ✔ | ✔ | ✔ | ✔ |
string | 1 | Name | Name of the character. Not used by the game; was likely included for debugging purposes. | ✔ | ✔ | ✔ | ✔ | ✔ |
Asset ID (CMDL) | 1 | Model ID | ID of the model used by this character. | ✔ | ✔ | ✔ | ✔ | ✔ |
Asset ID (CSKR) | 1 | Skin ID | ID of the skin used by this character. | ✔ | ✔ | ✔ | ✔ | ✔ |
Asset ID (CINF) | 1 | Skeleton ID | ID of the skeleton used by this character. | ✔ | ✔ | ✔ | ✔ | ✔ |
u32 | 1 | Animation Name Count | Count of animation names in the next array. | ✔ | ✔ | ✔ | ✔ | ✔ |
Animation Name | Animation Name Count | Animation Name Array | Array of names of animations used by this character. | ✔ | ✔ | ✔ | ✔ | ✔ |
PAS Database | 1 | PAS Database | Not much is known about how this data is used. | ✔ | ✔ | ✔ | ✔ | ✔ |
Particle Resource Data | 1 | Particle Resource Data | List of particle assets being used by this character. This includes particles being used by attached effects as well as by animation events. | ✔ | ✔ | ✔ | ✔ | ✔ |
u32 | 1 | Unknown | ✔ | ✔ | ✔ | ✔ | ✔ | |
u32 | 1 | Unknown | ✖ | ✖ | ✖ | ✖ | ✔ | |
u32 | 1 | Animation AABB Count | Count of animation bounding boxes. | ✖ | ✔ | ✔ | ✔ | ✔ |
Animation AABB | Animation AABB Count | Animation AABB Array | Array of animation bounding boxes for this character. | ✖ | ✔ | ✔ | ✔ | ✔ |
u32 | 1 | Effect Count | Count of attached effects. | ✖ | ✔ | ✔ | ✔ | ✔ |
Effect | Effect Count | Effect Array | Effects attached to this character. | ✖ | ✔ | ✔ | ✔ | ✔ |
Asset ID (CMDL) | 1 | Frozen Model | Overlay model that appears when the character is frozen with the Ice/Dark Beam. | ✖ | ✖ | ✔ | ✔ | ✔ |
Asset ID (CSKR) | 1 | Frozen Skin | Skin for rigging the Frozen Model to the character's skeleton. | ✖ | ✖ | ✔ | ✔ | ✔ |
u32 | 1 | Animation Count | Count of animations used by this character. | ✖ | ✖ | ✖ | ✔ | ✔ |
u32 | Animation Count | Animation ID Map | Array of animation IDs. Indexing this array with the character-relative animation ID returns the animset-relative animation ID. | ✖ | ✖ | ✖ | ✔ | ✔ |
Asset ID (CSPP) | 1 | Spatial Primitives ID | ID of the spatial primitives used by this character. | ✖ | ✖ | ✖ | ✖ | ✔ |
u8 | 1 | Unknown | ✖ | ✖ | ✖ | ✖ | ✔ | |
u32 | 1 | Indexed Animation AABB Count | Count of indexed animation bounding boxes. | ✖ | ✖ | ✖ | ✖ | ✔ |
Indexed Animation AABB | Indexed Animation AABB Count | Indexed Animation AABB Array | Unknown purpose. | ✖ | ✖ | ✖ | ✖ | ✔ |
Animation Name
Type | Name | Notes | V1 | V10 |
---|---|---|---|---|
u32 | Animation ID | Character-relative animation ID. Must be remapped via the Animation ID Map to access the corresponding animation in the animset. | ✔ | ✔ |
string | Unknown | Always empty. | ✔ | ✖ |
string | Animation Name | The name of the animation. | ✔ | ✔ |
Particle Resource Data
Type | Count | Name | Notes | V5 | V6 | V10 |
---|---|---|---|---|---|---|
u32 | 1 | Generic Particle Count | Count of generic particle systems. | ✔ | ✔ | ✔ |
Asset ID (PART) | Generic Particle Count | Generic Particle List | List of generic particle systems used by this character. | ✔ | ✔ | ✔ |
u32 | 1 | Swoosh Particle Count | Count of swoosh particle systems. | ✔ | ✔ | ✔ |
Asset ID (SWHC) | Swoosh Particle Count | Swoosh Particle List | List of swoosh particle systems used by this character. | ✔ | ✔ | ✔ |
u32 | 1 | Unknown | Always 0. | ✖ | ✔ | ✔ |
u32 | 1 | Electric Particle Count | Count of electric particle systems. | ✔ | ✔ | ✔ |
Asset ID (ELSC) | Electric Particle Count | Electric Particle List | List of electric particle systems used by this character. | ✔ | ✔ | ✔ |
u32 | 1 | Spawn Particle Count | Count of spawn particle systems. | ✖ | ✖ | ✔ |
Asset ID (SPSC) | Spawn Particle Count | Spawn Particle List | List of spawn particle systems used by this character. | ✖ | ✖ | ✔ |
Animation AABB
Type | Name | Notes |
---|---|---|
string | Animation Name | |
AABox | Animation Bounding Box |
Indexed Animation AABB
Similar to Animation AABB, but with animations referenced via ID instead of name.
Type | Name | Notes |
---|---|---|
u32 | Animation ID | Confirm this is character-relative? |
AABox | Animation Bounding Box |
Effect
Type | Count | Name | Notes |
---|---|---|---|
string | 1 | Effect Name | Name of the effect. |
u32 | 1 | Effect Component Count | Count of effect components |
Effect Component | Effect Component Count | Effect Components | Array of effect components used by this effect. |
Effect Component
Type | Name | Notes |
---|---|---|
string | Component Name | Name of this effect component. |
FourCC | Particle Asset Type | Type of the particle used by this effect. |
Asset ID | Particle Asset ID | Particle resource used by this effect. |
string | Bone Name | Bone that the component is attached to. |
float | Scale | Scale of the component. |
u32 | Parented Mode | Needs documentation |
u32 | Flags | Needs documentation |
Animation Set
Type | Count | Name | Notes | MP1 | MP2 |
---|---|---|---|---|---|
u16 | 1 | Version | Always 4. Note there are format differences between MP1 and MP2 despite them both being version 4. | ✔ | ✔ |
u32 | 1 | Animation Count | Count of animations contained by the set. | ✔ | ✔ |
Animation | Animation Count | Animation Array | Array of animations. | ✔ | ✔ |
u32 | 1 | Transition Count | Count of transitions contained by the set. | ✔ | ✔ |
Transition | Transition Count | Transition Array | Array of transitions. | ✔ | ✔ |
Meta-Transition | 1 | Default Transition | ✔ | ✔ | |
u32 | 1 | Additive Animation Count | Count of additive animations contained by the set. | ✔ | ✔ |
Additive Animation | Additive Animation Count | Additive Animation Array | Array of additive animations. Although any animation can be used as additive, this array allows for customizing the fade in/out time for each animation. | ✔ | ✔ |
float | 1 | Default Additive Fade-In Time | Fade-in time used for additive animations not listed in the above array. | ✔ | ✔ |
float | 1 | Default Additive Fade-Out Time | Fade-out time used for additive animations not listed in the above array. | ✔ | ✔ |
u32 | 1 | Half Transition Count | Count of half transitions contained by the set. | ✔ | ✔ |
Half Transition | Half Transition Count | Half Transition Array | Array of half transitions. | ✔ | ✔ |
u32 | 1 | Animation Resource Count | Count of animation assets used by this set. | ✔ | ✖ |
Animation Resource Pair | Animation Resource Count | Animation Resource List | List of animation assets used by this set. | ✔ | ✖ |
u32 | 1 | Event Set Count | Count of event sets. Matches the animation count. | ✖ | ✔ |
Event Set | Event Set Count | Event Set Array | Array of animation events. Each event set maps to the animation at the same index. Note this is basically MP1's EVNT file format, but embedded in ANCS. | ✖ | ✔ |
Animation
Type | Name | Notes |
---|---|---|
string | Name | Animation name. |
Meta-Animation | Animation | Meta-animation data. |
Transition
Type | Name | Notes |
---|---|---|
u32 | Unknown | |
u32 | Animation ID A | The animation being transitioned from. |
u32 | Animation ID B | The animation being transitioned to. |
Meta-Transition | Transition | Meta-transition data. |
Additive Animation
Type | Name | Notes |
---|---|---|
u32 | Animation ID | |
float | Fade-In Time | Fade-in duration. |
float | Fade-Out Time | Fade-out duration. |
Half Transition
Type | Name | Notes |
---|---|---|
u32 | Animation ID | The animation being transitioned from. |
Meta-Transition | Transition | Meta-transition data. |
Animation Resource Pair
Type | Name |
---|---|
Asset ID (ANIM) | ANIM ID |
Asset ID (EVNT) | EVNT ID |