CHAR (Metroid Prime 3): Difference between revisions

Jump to navigation Jump to search
>Aruki
(Created page with "The '''CHAR format''' defines animated characters; it's the successor to the ANCS format from Prime 1 and 2, and the format is extremely similar. {{res...")
 
>Aruki
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The '''CHAR format''' defines animated characters; it's the successor to the [[ANCS (File Format)|ANCS format]] from Prime 1 and 2, and the format is extremely similar.
''This article is for the CHAR format from Metroid Prime 3: Corruption. See [[CHAR (File Format)]] for the other revisions of this format.''


{{research|major|This format hasn't been researched/documented very well yet, but it appears to be extremely similar to ANCS.}}
The '''CHAR format''' defines an animation character; together with [[SAND (File Format)|SAND]], it serves as the successor to the [[ANCS (File Format)|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.


__TOC__
__TOC__
Line 7: Line 7:
== Format ==
== Format ==


=== Header ===
{| class="wikitable"
! 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 Format)|SAND file]].
|-
| string
| 1
| '''Character Name'''
| Name of the character. Likely included for debugging purposes.
|-
| Asset ID ([[CMDL (Metroid Prime)|CMDL]])
| 1
| '''Character Model'''
| ID of the model used by this character.
|-
| Asset ID ([[CSKR (File Format)|CSKR]])
| 1
| '''Character Skin'''
| ID of the skin used by this character.
|-
| u32
| 1
| '''Overlay Count'''
| Number of overlay models.
|-
| [[#Overlay Model|Overlay Model]]
| ''Overlay Count''
| '''Overlay Array'''
| Array defining overlay models that this character can use.
|-
| Asset ID ([[CINF (File Format)|CINF]])
| 1
| '''Character Skeleton'''
| ID of the skeleton used by this character.
|-
| Asset ID ([[SAND (File Format)|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|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 Format)|SAND file]]).
|-
| [[#Anim Event Set|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]]
| ''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 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|Unknown Array Count}}
| Size of the following array.
|-
| bool
| ''Unknown Array Count''
| {{unknown|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]]
| ''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 (File Format)|CAUD]])
| ''Sound Resource Count''
| '''Sound Resource List'''
| List of sound resources used by this character.
|}
 
=== Overlay Model ===
 
{| class="wikitable"
! Type
! Name
! Notes
|-
| {{FourCC}}
| '''Overlay Type'''
| Possible values:
* <code>FRZN</code>: Overlay used when the character is frozen (eg. by Ice Missiles)
* <code>HYPR</code>: Overlay used when the character is in hypermode
* <code>ACID</code>: Overlay used when the character is in acid rain
* <code>XRAY</code>: Overlay used something related to the X-Ray Visor
|-
| Asset ID ([[CMDL (Metroid Prime)|CMDL]])
| '''Overlay Model'''
| Model used by the overlay.
|-
| Asset ID ([[CSKR (File Format)|CSKR]])
| '''Overlay Skin'''
| Skin that rigs the ''Overlay Model'' to the character's skeleton.
|}
 
=== Particle Resource Data ===
 
{| class="wikitable"
! Type
! Count
! Name
! Notes
|-
| u32
| 1
| '''Generic Particle Count'''
| Count of generic particle systems.
|-
| Asset ID ([[PART (File Format)|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 (File Format)|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_(File_Format)|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 (File Format)|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 ===


{| class="wikitable"
{| class="wikitable"
! Size
! Type
! Type
! Description
! 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
| 1
| char
| '''Effect Event Count'''
| {{unknown|Unknown}}
| Number of effect events in this set.
|-
|-
| [[#Effect Event|Effect Event]]
| ''Effect Event Count''
| '''Effect Events'''
| Effect events contained in this set.
|-
| u32
| 1
| 1
| char
| '''Sound Event Count'''
| {{unknown|Unknown}}
| Number of sound events in this set.
|-
| [[#Sound Event|Sound Event]]
| ''Sound Event Count''
| '''Sound Events'''
| Sound events contained in this set.
|}
 
==== Effect Event ====
 
{| class="wikitable"
! Type
! Name
! Notes
|-
|-
| -
| string
| string
| '''Character name'''
| '''Event Name'''
| Same as the event name in the event data.
|-
|-
| 8
| [[Animation Events (File Format)#Effect Event|Effect Event]]
| [[CMDL (File Format)|CMDL]]
| '''Effect Event Data'''
| '''Character model'''
| Actual event data.
|}
 
==== Sound Event ====
 
{| class="wikitable"
! Type
! Name
! Notes
|-
|-
| 8
| string
| [[CSKR (File Format)|CSKR]]
| '''Event Name'''
| '''Character skin'''
| Same as the event name in the event data.
|-
|-
| 4
| [[Animation Events (File Format)#Sound Event|Sound Event]]
| long
| '''Sound Event Data'''
| {{unknown|Unknown}}
| Actual event data.
|}
 
=== Animation ===
 
{| class="wikitable"
! Type
! Name
! Notes
|-
| string
| '''Name'''
| Animation name.
|-
|-
| 8
| [[Meta-Animation]]
| [[CINF (File Format)|CINF]]
| '''Animation'''
| '''Character skeleton'''
| Meta-animation data.
|}
 
=== Animation Bounding Box ===
 
{| class="wikitable"
! Type
! Name
! Notes
|-
| Asset ID ([[ANIM (File Format)|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 ===
 
{| class="wikitable"
! 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|Collision Primitive]]
| ''Primitive Count''
| '''Primitive Array'''
| Array of collision primitives contained in this set.
|}
 
==== Collision Primitive ====
 
{| class="wikitable"
! 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.
|-
|-
| 8
| {{none}}
| [[SAND (File Format)|SAND]]
| float
| '''Character sand'''
| {{unknown}}
|  
|}
|}


[[Category:Metroid Prime 3 Prototype]]
[[Category:Metroid Prime 3: Corruption]]
[[Category:Metroid Prime 3: Corruption]]
[[Category:Donkey Kong Country Returns]]
[[Category:File Formats]]
[[Category:File Formats]]
Anonymous user

Navigation menu