CHAR (Metroid Prime 3)
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:
|
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 |