|
This file format is almost completely documented Some event parameters need research
|
The EVNT format is a companion to 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 format, but the structure of the file is mostly the same (with a couple changes).
Format
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
|
u16
|
1
|
Unknown
|
|
string
|
1
|
Event Name
|
|
u16
|
1
|
Event Type
|
Enumerated event type (unknown values)
|
CCharAnimTime
|
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)
|
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
|
|
CCharAnimTime
Type
|
Count
|
Name
|
Notes
|
float
|
1
|
Event Timestamp
|
Time (in seconds) from start of ANIM to trigger event
|
TimeType
|
1
|
Value Type
|
Describes the current status of the time value
|
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,
Name
|
Value
|
NonZero
|
0
|
ZeroIncreasing
|
1
|
ZeroSteady
|
2
|
ZeroDecreasing
|
3
|
Infinity
|
4
|
Loop Event
Type
|
Count
|
Name
|
Notes
|
Event Base
|
1
|
Event Base
|
|
bool
|
1
|
Unknown
|
|
User Event
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)
|
Effect Event
Type
|
Count
|
Name
|
Notes
|
MP1
|
MP2
|
Event Base
|
1
|
Event Base
|
|
✔
|
✔
|
u32
|
1
|
Frame Count
|
Number of frames to run the effect emitter for
|
✔
|
✔
|
char
|
4
|
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:
- Emitter transformed to bone for initial frame, then retained
- Emitter continuously transformed to bone
- Entire effect (including particle instances) continuously transformed to bone
|
✔
|
✔
|
Sound Event
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
|
|
✖
|
✔
|