Difference between revisions of "Animation Events (File Format)"

From Retro Modding Wiki
Jump to: navigation, search
(TimeType)
(Event Base)
 
(9 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
{{research|1|Some event parameters need research}}
 
{{research|1|Some event parameters need research}}
The '''EVNT format''' is a companion to [[ANIM (File Format)|ANIM]] resources. It controls functional events synchronized to rigged animations for things like sound effects, visual effects, character messages, and playback control. In Echoes, this format was merged in to the end of the [[ANCS (File Format)|ANCS]] format, but the structure of the file is mostly the same (with a couple changes).
+
'''Animation events''' control functional events synchronized to rigged animations for things like sound effects, visual effects, character messages, and playback control. The events can be found in different places in each game; in Prime 1, they are stored in their own file format, the '''EVNT format'''. In Echoes, the format is the same as Prime 1, but was merged in to the [[ANCS (File Format)|ANCS format]] instead of getting its own file. In Prime 3 and the Donkey Kong Country series, events can be found in the [[CHAR (File Format)|CHAR format]], as well as Prime 3's [[SAND (File Format)|SAND format]].
  
 
== Format ==
 
== Format ==
 +
 +
=== File Structure (Metroid Prime 1/2) ===
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 65: Line 67:
 
! Name
 
! Name
 
! Notes
 
! Notes
 +
! MP1/2
 +
! MP3
 
|-
 
|-
 
| u16
 
| u16
Line 70: Line 74:
 
| {{unknown|Unknown}}
 
| {{unknown|Unknown}}
 
|  
 
|  
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| string
 
| string
Line 75: Line 81:
 
| '''Event Name'''
 
| '''Event Name'''
 
|  
 
|  
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u16
 
| u16
Line 80: Line 88:
 
| '''Event Type'''
 
| '''Event Type'''
 
| Enumerated event type (unknown values)
 
| Enumerated event type (unknown values)
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
| [[#CCharAnimTime|CCharAnimTime]]
+
| [[Char Anim Time]]
 
| 1
 
| 1
 
| '''Event Timestamp'''
 
| '''Event Timestamp'''
 
| Time (in seconds) from start of [[ANIM (File Format)|ANIM]] to trigger event
 
| Time (in seconds) from start of [[ANIM (File Format)|ANIM]] to trigger event
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
Line 90: Line 102:
 
| '''Event Index'''
 
| '''Event Index'''
 
| Index of event unique from other events (perhaps used to maintain a ''triggered'' bitmap)
 
| Index of event unique from other events (perhaps used to maintain a ''triggered'' bitmap)
 +
| {{check}}
 +
| {{check}}
 +
|-
 +
| u32
 +
| 1
 +
| {{unknown}}
 +
|
 +
| {{nocheck}}
 +
| {{check}}
 
|-
 
|-
 
| bool
 
| bool
Line 95: Line 116:
 
| {{unknown|Unknown}}
 
| {{unknown|Unknown}}
 
|  
 
|  
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| float
 
| float
Line 100: Line 123:
 
| '''Weight'''
 
| '''Weight'''
 
| The likelihood of this event being selected
 
| The likelihood of this event being selected
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| s32
 
| s32
Line 105: Line 130:
 
| '''Character Index'''
 
| '''Character Index'''
 
| Character index that this event should trigger for. If -1, this event triggers for all characters.
 
| Character index that this event should trigger for. If -1, this event triggers for all characters.
 +
| {{check}}
 +
| {{check}}
 
|-
 
|-
 
| u32
 
| u32
 
| 1
 
| 1
| {{unknown|Unknown}}
+
| {{unknown}}
 
|  
 
|  
|}
+
| {{check}}
 
+
| {{check}}
 
+
====CCharAnimTime====
+
{| class="wikitable"
+
! Type
+
! Count
+
! Name
+
! Notes
+
 
|-
 
|-
| float
+
| u32
 
| 1
 
| 1
| '''Event Timestamp'''
+
| {{unknown}}
| Time (in seconds) from start of [[ANIM (File Format)|ANIM]] to trigger event
+
|  
 +
| {{nocheck}}
 +
| {{check}}
 
|-
 
|-
| [[#TimeType|TimeType]]
+
| u32
 
| 1
 
| 1
| Value Type
+
| {{unknown}}
| Describes the current status of the time value
+
|  
|}
+
| {{nocheck}}
 
+
| {{check}}
=====TimeType=====
+
TimeType describes the current status of the animation time, e.g: Non-zero, Increasing from zero, Staying at zero, Decreasing to zero, or Infinity,
+
 
+
{| class="wikitable"
+
! Name
+
! Value
+
 
|-
 
|-
| NonZero
+
| u32
| 0
+
|-
+
| ZeroIncreasing
+
 
| 1
 
| 1
 +
| {{unknown}}
 +
|
 +
| {{nocheck}}
 +
| {{check}}
 
|-
 
|-
| ZeroSteady
+
| float
| 2
+
| 1
|-
+
| {{unknown}}
| ZeroDecreasing
+
|  
| 3
+
| {{nocheck}}
 +
| {{check}}
 
|-
 
|-
| Infinity
+
| float
| 4
+
| 1
 +
| {{unknown}}
 +
|
 +
| {{nocheck}}
 +
| {{check}}
 
|}
 
|}
  
Line 174: Line 196:
  
 
=== User Event ===
 
=== User Event ===
 +
 +
==== Metroid Prime 1/2 ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 195: Line 219:
 
| '''Bone Name'''
 
| '''Bone Name'''
 
| Name of the [[CINF (File Format)|CINF]] bone to attach this event to (for applicable events)
 
| Name of the [[CINF (File Format)|CINF]] bone to attach this event to (for applicable events)
 +
|}
 +
 +
==== Metroid Prime 3 ====
 +
 +
{| class="wikitable"
 +
! Type
 +
! Count
 +
! Name
 +
! Notes
 +
|-
 +
| [[#Event Base|Event Base]]
 +
| 1
 +
| '''Event Base'''
 +
|
 +
|-
 +
| u8
 +
| 1
 +
| {{unknown}}
 +
|
 +
|-
 +
| u16
 +
| 1
 +
| {{unknown}}
 +
|
 +
|-
 +
| u16
 +
| 1
 +
| {{unknown}}
 +
|
 
|}
 
|}
  
Line 206: Line 259:
 
! MP1
 
! MP1
 
! MP2
 
! MP2
 +
! MP3
 
|-
 
|-
 
| [[#Event Base|Event Base]]
 
| [[#Event Base|Event Base]]
Line 211: Line 265:
 
| '''Event Base'''
 
| '''Event Base'''
 
|  
 
|  
 +
| {{check}}
 
| {{check}}
 
| {{check}}
 
| {{check}}
 
| {{check}}
Line 220: Line 275:
 
| {{check}}
 
| {{check}}
 
| {{check}}
 
| {{check}}
 +
| {{nocheck}}
 
|-
 
|-
| char
+
| {{FourCC}}
| 4
+
| 1
 
| '''Effect Type'''
 
| '''Effect Type'''
 
| FourCC of effect's type; either [[PART (File Format)|PART]], [[SWHC (File Format)|SWHC]], or [[ELSC (File Format)|ELSC]]
 
| FourCC of effect's type; either [[PART (File Format)|PART]], [[SWHC (File Format)|SWHC]], or [[ELSC (File Format)|ELSC]]
 +
| {{check}}
 
| {{check}}
 
| {{check}}
 
| {{check}}
 
| {{check}}
Line 232: Line 289:
 
| '''Effect ID'''
 
| '''Effect ID'''
 
| Asset ID of the effect resource
 
| Asset ID of the effect resource
 +
| {{check}}
 
| {{check}}
 
| {{check}}
 
| {{check}}
 
| {{check}}
Line 240: Line 298:
 
| Name of the [[CINF (File Format)|CINF]] bone to attach this effect to
 
| Name of the [[CINF (File Format)|CINF]] bone to attach this effect to
 
| {{check}}
 
| {{check}}
 +
| {{nocheck}}
 
| {{nocheck}}
 
| {{nocheck}}
 
|-
 
|-
Line 248: Line 307:
 
| {{nocheck}}
 
| {{nocheck}}
 
| {{check}}
 
| {{check}}
 +
| {{nocheck}}
 
|-
 
|-
 
| float
 
| float
Line 255: Line 315:
 
| {{check}}
 
| {{check}}
 
| {{check}}
 
| {{check}}
 +
| {{nocheck}}
 
|-
 
|-
 
| u32
 
| u32
Line 266: Line 327:
 
</ol>
 
</ol>
 
| {{check}}
 
| {{check}}
 +
| {{check}}
 +
| {{nocheck}}
 +
|-
 +
| float
 +
| 1
 +
| {{unknown}}
 +
| Probably effect scale?
 +
| {{nocheck}}
 +
| {{nocheck}}
 +
| {{check}}
 +
|-
 +
| u32
 +
| 1
 +
| {{unknown}}
 +
| Probably bone ID?
 +
| {{nocheck}}
 +
| {{nocheck}}
 
| {{check}}
 
| {{check}}
 
|}
 
|}
  
 
=== Sound Event ===
 
=== Sound Event ===
 +
 +
==== Metroid Prime 1/2 ====
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 335: Line 415:
 
| {{check}}
 
| {{check}}
 
|}
 
|}
 +
 +
==== Metroid Prime 3 ====
 +
 +
{| class="wikitable"
 +
! Type
 +
! Count
 +
! Name
 +
! Notes
 +
|-
 +
| [[#Event Base|Event Base]]
 +
| 1
 +
| '''Event Base'''
 +
|
 +
|-
 +
| Asset ID ([[CAUD (File Format)|CAUD]])
 +
| 1
 +
| '''Sound Effect'''
 +
| Sound to be played.
 +
|-
 +
| u32
 +
| 1
 +
| {{unknown}}
 +
|
 +
|-
 +
| u32
 +
| 1
 +
| {{unknown}}
 +
|
 +
|-
 +
| [[#Unknown Typed Structure|Unknown Typed Structure]]
 +
| 1
 +
| {{unknown}}
 +
|
 +
|-
 +
| [[#Unknown Typed Structure|Unknown Typed Structure]]
 +
| 1
 +
| {{unknown}}
 +
|
 +
|}
 +
 +
===== Unknown Typed Structure =====
 +
 +
Contains a 32-bit type value, followed by either:
 +
 +
* Type 0: Nothing
 +
* Type 1: A float
 +
* Type 2: A [[Maya Spline]]
  
 
[[Category:File Formats]]
 
[[Category:File Formats]]
 
[[Category:Metroid Prime]]
 
[[Category:Metroid Prime]]
 
[[Category:Metroid Prime 2: Echoes]]
 
[[Category:Metroid Prime 2: Echoes]]

Latest revision as of 16:01, 3 March 2017

Morphball render.png This file format is almost completely documented
Some event parameters need research

Animation events control functional events synchronized to rigged animations for things like sound effects, visual effects, character messages, and playback control. The events can be found in different places in each game; in Prime 1, they are stored in their own file format, the EVNT format. In Echoes, the format is the same as Prime 1, but was merged in to the ANCS format instead of getting its own file. In Prime 3 and the Donkey Kong Country series, events can be found in the CHAR format, as well as Prime 3's SAND format.

Format

File Structure (Metroid Prime 1/2)

Type Count Name Notes
u32 1 Version Either 1 or 2. Both can appear in Prime 1, while Echoes uses version 2 (the version number wasn't updated in Echoes despite format changes).
u32 1 Loop Event Count
Loop Event Loop Event Count Loop Events
u32 1 User Event Count
User Event User Event Count User Events
u32 1 Effect Event Count
Effect Event Effect Event Count Effect Events
u32 1 Sound Event Count Not present in version 1
Sound Event Sound Event Count Sound Events Not present in version 1

Event Base

These parameters are common to every event type.

Type Count Name Notes MP1/2 MP3
u16 1 Unknown
string 1 Event Name
u16 1 Event Type Enumerated event type (unknown values)
Char Anim Time 1 Event Timestamp Time (in seconds) from start of ANIM to trigger event
u32 1 Event Index Index of event unique from other events (perhaps used to maintain a triggered bitmap)
u32 1 Unknown
bool 1 Unknown
float 1 Weight The likelihood of this event being selected
s32 1 Character Index Character index that this event should trigger for. If -1, this event triggers for all characters.
u32 1 Unknown
u32 1 Unknown
u32 1 Unknown
u32 1 Unknown
float 1 Unknown
float 1 Unknown

Loop Event

Type Count Name Notes
Event Base 1 Event Base
bool 1 Unknown

User Event

Metroid Prime 1/2

Type Count Name Notes
Event Base 1 Event Base
u32 1 User Event Type Enumerated user event type (unknown values)
string 1 Bone Name Name of the CINF bone to attach this event to (for applicable events)

Metroid Prime 3

Type Count Name Notes
Event Base 1 Event Base
u8 1 Unknown
u16 1 Unknown
u16 1 Unknown

Effect Event

Type Count Name Notes MP1 MP2 MP3
Event Base 1 Event Base
u32 1 Frame Count Number of frames to run the effect emitter for
FourCC 1 Effect Type FourCC of effect's type; either PART, SWHC, or ELSC
Asset ID 1 Effect ID Asset ID of the effect resource
string 1 Bone Name Name of the CINF bone to attach this effect to
u32 1 Bone ID ID of the CINF bone to attach this effect to
float 1 Effect Scale Uniform scale of the particle effect
u32 1 Transform Type Enumerated transform-mode relating effect to actor's bone:
  1. Emitter transformed to bone for initial frame, then retained
  2. Emitter continuously transformed to bone
  3. Entire effect (including particle instances) continuously transformed to bone
float 1 Unknown Probably effect scale?
u32 1 Unknown Probably bone ID?

Sound Event

Metroid Prime 1/2

Type Count Name Notes MP1 MP2
Event Base 1 Event Base
u32 1 Sound ID Lower 16 bits are an AGSC sound ID indirected via the ATBL; most significant bit is a looped flag
float 1 Reference Amplitude Reference amplitude for audio attenuation
float 1 Reference Distance Reference distance for audio attenuation
u32 1 Unknown
u16 1 Unknown
u16 1 Unknown
float 1 Unknown

Metroid Prime 3

Type Count Name Notes
Event Base 1 Event Base
Asset ID (CAUD) 1 Sound Effect Sound to be played.
u32 1 Unknown
u32 1 Unknown
Unknown Typed Structure 1 Unknown
Unknown Typed Structure 1 Unknown
Unknown Typed Structure

Contains a 32-bit type value, followed by either: