|
This file format is almost completely documented Some event parameters need research
|
The EVNT format is a companion to ANIM resources.
Animators are able to synchronize functional events to rigged animations for things like sound effects, visual effects, character messages, and playback control.
Data Type
|
Element Count
|
Identifier
|
Notes
|
long
|
1
|
version
|
0x1 or 0x2
|
long
|
1
|
loop_event_count
|
|
Loop Event
|
loop_event_count
|
loop_events
|
|
long
|
1
|
uevt_event_count
|
|
UEVT Event
|
uevt_event_count
|
uevt_events
|
|
long
|
1
|
effect_event_count
|
|
Effect Event
|
effect_event_count
|
effect_events
|
|
long
|
1
|
sound_event_count
|
Version 0x2 only
|
Sound Event
|
sound_event_count
|
sound_events
|
Version 0x2 only
|
Event Base
Offset
|
Length
|
Data Type
|
Identifier
|
Notes
|
<start>
|
2
|
short
|
unknown0
|
|
+0x2
|
<null-term>
|
string
|
event_name
|
|
++0x0
|
2
|
short
|
event_type
|
Enumerated event type (unknown values)
|
++0x2
|
4
|
float
|
event_timestamp
|
Time (in seconds) from start of ANIM to trigger event
|
++0x6
|
4
|
long
|
unknown1
|
|
++0xA
|
4
|
long
|
event_index
|
Index of event unique from other events (perhaps used to maintain a triggered bitmap)
|
++0xE
|
1
|
bool
|
unknown2
|
Unknown Flag
|
++0xF
|
4
|
float
|
unknown3
|
|
++0x13
|
4
|
float
|
unknown4
|
|
++0x17
|
4
|
long
|
unknown5
|
|
RWK Note: The props string is formatted as:
Type:<event_type> <unknown1> <unknown2> <unknown3> <unknown4> <unknown5>
Loop Event
Offset
|
Length
|
Data Type
|
Identifier
|
Notes
|
<start>
|
<varies>
|
Event Base
|
event_base
|
|
+0x0
|
1
|
bool
|
unknown_flag
|
|
UEVT Event
Offset
|
Length
|
Data Type
|
Identifier
|
Notes
|
<start>
|
<varies>
|
Event Base
|
event_base
|
|
+0x0
|
4
|
long
|
uevt_type
|
Enumerated UEVT type (unknown values)
|
+0x4
|
<null-term>
|
string
|
bone_name
|
CINF Bone Name (for applicable events)
|
Effect Event
Offset
|
Length
|
Data Type
|
Identifier
|
Notes
|
<start>
|
<varies>
|
Event Base
|
event_base
|
|
+0x0
|
4
|
long
|
frame_count
|
Number of frames to run effect-emitter for
|
+0x4
|
4
|
long
|
effect_type
|
FourCC of effect's type (PART, SWHC, ELSC)
|
+0x8
|
4
|
long
|
effect_ref
|
ID of effect resource
|
+0xC
|
<null-term>
|
string
|
bone_name
|
CINF Bone Name (for transforming effects)
|
++0x0
|
4
|
float
|
effect_scale
|
Proportional-scale to apply with effect in scene
|
++0x4
|
4
|
long
|
transform_type
|
Enumerated transform-mode relating effect to actor's bone:
- Effect-emitter transformed to bone for initial frame, then retained
- Effect-emitter continuously transformed to bone
- Entire effect (particle instances and all) continuously transformed to bone
|
Sound Event
Offset
|
Length
|
Data Type
|
Identifier
|
Notes
|
<start>
|
<varies>
|
Event Base
|
event_base
|
|
+0x0
|
4
|
long
|
sound_id
|
Lower 16-bits are AGSC sound-id indirected via ATBL. Most-significant bit is a looped flag
|
+0x4
|
4
|
float
|
ref_amplitude
|
Reference amplitude for audio attenuation
|
+0x8
|
4
|
float
|
ref_distance
|
Reference distance for audio attenuation
|