This article is for the CHAR format from Metroid Prime 3: Corruption. See CHAR (File Format) for the other revisions of this format.
The CHAR format defines an animation character; together with SAND, it serves as the successor to the ANCS format from Prime 1 and 2, and contains much of the same data. The main difference from ANCS is that the file no longer contains multiple characters; instead, every character gets its own CHAR file, and any animation data shared with other characters is stored in SAND.
Format
Type
|
Count
|
Name
|
Notes
|
u8
|
1
|
Version
|
Always 0x5.
|
u8
|
1
|
Character ID
|
This is an ID unique to each character sharing the same SAND file.
|
string
|
1
|
Character Name
|
Name of the character. Likely included for debugging purposes.
|
Asset ID (CMDL)
|
1
|
Character Model
|
ID of the model used by this character.
|
Asset ID (CSKR)
|
1
|
Character Skin
|
ID of the skin used by this character.
|
u32
|
1
|
Overlay Count
|
Number of overlay models.
|
Overlay Model
|
Overlay Count
|
Overlay Array
|
Array defining overlay models that this character can use.
|
Asset ID (CINF)
|
1
|
Character Skeleton
|
ID of the skeleton used by this character.
|
Asset ID (SAND)
|
1
|
Character Animation Data
|
ID of the animation data used by this character.
|
PAS Database
|
1
|
PAS Database
|
Not much known about how this data is used.
|
Particle Resource Data
|
1
|
Particle Resource Data
|
List of particle assets being used by this character. This primarily contains particles used by animation events.
|
u32
|
1
|
Anim Event Set Count
|
Count of anim event sets used by this character. There'll be one set per animation that uses events (unless the animation has its events in the SAND file).
|
Anim Event Set
|
Anim Event Set Count
|
Anim Event Set Array
|
Array of animation event sets.
|
u32
|
1
|
Animation Count
|
Count of animations used by this character.
|
Animation
|
Animation Count
|
Animations Array
|
Array of animations used by this character.
|
u32
|
1
|
Animation Bounds Count
|
Count of animation bounding boxes in the next array.
|
Animation Bounding Box
|
Animation Bounds Count
|
Animation Bounding Box Array
|
Array of bounding boxes for animations used by this character.
|
bool
|
1
|
Unknown
|
|
u32
|
1
|
Unknown Array Count
|
Size of the following array.
|
bool
|
Unknown Array Count
|
Unknown Bool Array
|
Unknown array of bools.
|
u32
|
1
|
Collision Primitive Set Count
|
Number of animation collision primitive sets.
|
Collision Primitive Set
|
Collision Primitive Set Count
|
Collision Primitive Sets
|
Array of collision primitives used by this character.
|
u32
|
1
|
Sound Resource Count
|
Number of sound resources used by this character.
|
Asset ID (CAUD)
|
Sound Resource Count
|
Sound Resource List
|
List of sound resources used by this character.
|
Overlay Model
Type
|
Name
|
Notes
|
FourCC
|
Overlay Type
|
Possible values:
FRZN : Overlay used when the character is frozen (eg. by Ice Missiles)
HYPR : Overlay used when the character is in hypermode
ACID : Overlay used when the character is in acid rain
XRAY : Overlay used something related to the X-Ray Visor
|
Asset ID (CMDL)
|
Overlay Model
|
Model used by the overlay.
|
Asset ID (CSKR)
|
Overlay Skin
|
Skin that rigs the Overlay Model to the character's skeleton.
|
Particle Resource Data
Type
|
Count
|
Name
|
Notes
|
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
|
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.
|
u32
|
1
|
Unknown
|
Always 0.
|
u32
|
1
|
Unknown
|
Always 0.
|
Anim Event Set
Type
|
Count
|
Name
|
Notes
|
u32
|
1
|
Unknown
|
Likely animation ID that this set corresponds to
|
string
|
1
|
Set Name
|
Name of this event set.
|
u32
|
1
|
Effect Event Count
|
Number of effect events in this set.
|
Effect Event
|
Effect Event Count
|
Effect Events
|
Effect events contained in this set.
|
u32
|
1
|
Sound Event Count
|
Number of sound events in this set.
|
Sound Event
|
Sound Event Count
|
Sound Events
|
Sound events contained in this set.
|
Effect Event
Type
|
Name
|
Notes
|
string
|
Event Name
|
Same as the event name in the event data.
|
Effect Event
|
Effect Event Data
|
Actual event data.
|
Sound Event
Type
|
Name
|
Notes
|
string
|
Event Name
|
Same as the event name in the event data.
|
Sound Event
|
Sound Event Data
|
Actual event data.
|
Animation
Type
|
Name
|
Notes
|
string
|
Name
|
Animation name.
|
Meta-Animation
|
Animation
|
Meta-animation data.
|
Animation Bounding Box
Type
|
Name
|
Notes
|
Asset ID (ANIM)
|
Animation Asset ID
|
Asset ID of the animation that this bounding box corresponds to.
|
AABox
|
Animation Bounding Box
|
Bounding box of the animation when applied to this character.
|
Collision Primitive Set
Type
|
Count
|
Name
|
Notes
|
string
|
1
|
Set Name
|
Name of this primitive set.
|
u32
|
1
|
Primitive Count
|
Number of primitives contained in this set.
|
Collision Primitive
|
Primitive Count
|
Primitive Array
|
Array of collision primitives contained in this set.
|
Collision Primitive
Offset
|
Type
|
Name
|
Notes
|
0x0
|
u32
|
Unknown
|
|
0x4
|
u32
|
Unknown
|
|
0x8
|
u32
|
Unknown
|
|
0xC
|
u32
|
Unknown
|
|
0x10
|
u32
|
Unknown
|
|
0x14
|
float
|
Unknown
|
|
0x18
|
float
|
Unknown
|
|
0x1C
|
float
|
Unknown
|
|
0x20
|
float
|
Unknown
|
|
0x24
|
float
|
Unknown
|
|
0x28
|
float
|
Unknown
|
|
0x2C
|
float
|
Unknown
|
|
0x30
|
float
|
Unknown
|
|
0x34
|
string
|
Primitive Name
|
Name of the collision primitive.
|
|
float
|
Unknown
|
|