Animation Events (File Format)

From Retro Modding Wiki
(Redirected from EVNT (File Format))
Jump to navigation Jump to search
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 Bool Event Count
Bool Event Bool Event Count Bool Events
u32 1 Int32 Event Count
Int32 Event Int32 Event Count Int32 Events
u32 1 Particle Event Count
Particle Event Particle Event Count Particle Events
u32 1 Sound Event Count Not present in version 1
Sound Event Sound Event Count Sound Events Not present in version 1

Event Type

Table is accurate to Prime 1, unknown for other games.

ID Type
0 Loop
1 EmptyBool
2 EmptyInt32
4 SoundInt32
5 Particle
6 UserEvent
7 RandRate
8 Sound


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 Unique ✔ ✔
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 Flags ✔ ✔
u32 1 Unknown ✖ ✔
u32 1 Unknown ✖ ✔
u32 1 Unknown ✖ ✔
float 1 Unknown ✖ ✔
float 1 Unknown ✖ ✔

Bool Event

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

Int32 Event

Metroid Prime 1/2

Type Count Name Notes
Event Base 1 Event Base
s32 1 Value Numeric value for the event
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

Particle 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: