The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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
|
|