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.
|
Animation Resource Pair
Type
|
Name
|
Asset ID (ANIM)
|
ANIM ID
|
Asset ID (EVNT)
|
EVNT ID
|