Difference between revisions of "Animation Events (File Format)"
From Retro Modding Wiki
| Line 70: | Line 70: | ||
| | | | ||
|- | |- | ||
| − | | | + | |+0x2 |
|<null-term> | |<null-term> | ||
|string | |string | ||
| Line 76: | Line 76: | ||
| | | | ||
|- | |- | ||
| − | |0x0 | + | |++0x0 |
|2 | |2 | ||
|short | |short | ||
| Line 82: | Line 82: | ||
|Enumerated event type (unknown values) | |Enumerated event type (unknown values) | ||
|- | |- | ||
| − | |0x2 | + | |++0x2 |
|4 | |4 | ||
|float | |float | ||
| Line 88: | Line 88: | ||
|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 | ||
|- | |- | ||
| − | |0x6 | + | |++0x6 |
|4 | |4 | ||
|long | |long | ||
| Line 94: | Line 94: | ||
| | | | ||
|- | |- | ||
| − | |0xA | + | |++0xA |
|4 | |4 | ||
|long | |long | ||
| Line 100: | Line 100: | ||
|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) | ||
|- | |- | ||
| − | |0xE | + | |++0xE |
|1 | |1 | ||
|bool | |bool | ||
| Line 106: | Line 106: | ||
|Unknown Flag | |Unknown Flag | ||
|- | |- | ||
| − | |0xF | + | |++0xF |
|4 | |4 | ||
|float | |float | ||
| Line 112: | Line 112: | ||
| | | | ||
|- | |- | ||
| − | |0x13 | + | |++0x13 |
|4 | |4 | ||
|float | |float | ||
| Line 118: | Line 118: | ||
| | | | ||
|- | |- | ||
| − | |0x17 | + | |++0x17 |
|4 | |4 | ||
|long | |long | ||
| Line 132: | Line 132: | ||
=== Loop Event === | === Loop Event === | ||
| + | |||
| + | {| class="wikitable" | ||
| + | !Offset | ||
| + | !Length | ||
| + | !Data Type | ||
| + | !Identifier | ||
| + | !Notes | ||
| + | |- | ||
| + | |<start> | ||
| + | |<varies> | ||
| + | |[[#Event Base|Event Base]] | ||
| + | |event_base | ||
| + | | | ||
| + | |- | ||
| + | |+0x0 | ||
| + | |1 | ||
| + | |bool | ||
| + | |unknown_flag | ||
| + | | | ||
| + | |} | ||
=== UEVT Event === | === UEVT Event === | ||
| + | |||
| + | {| class="wikitable" | ||
| + | !Offset | ||
| + | !Length | ||
| + | !Data Type | ||
| + | !Identifier | ||
| + | !Notes | ||
| + | |- | ||
| + | |<start> | ||
| + | |<varies> | ||
| + | |[[#Event Base|Event Base]] | ||
| + | |event_base | ||
| + | | | ||
| + | |- | ||
| + | |+0x0 | ||
| + | |4 | ||
| + | |long | ||
| + | |uevt_type | ||
| + | |Enumerated UEVT type (unknown values) | ||
| + | |- | ||
| + | |+0x4 | ||
| + | |<null-term> | ||
| + | |string | ||
| + | |bone_name | ||
| + | |[[CINF (File Format)|CINF]] Bone Name (for applicable events) | ||
| + | |} | ||
=== Effect Event === | === Effect Event === | ||
| + | |||
| + | {| class="wikitable" | ||
| + | !Offset | ||
| + | !Length | ||
| + | !Data Type | ||
| + | !Identifier | ||
| + | !Notes | ||
| + | |- | ||
| + | |<start> | ||
| + | |<varies> | ||
| + | |[[#Event Base|Event Base]] | ||
| + | |event_base | ||
| + | | | ||
| + | |- | ||
| + | |+0x0 | ||
| + | |4 | ||
| + | |long | ||
| + | |frame_count | ||
| + | |Number of frames to run effect for | ||
| + | |- | ||
| + | |+0x4 | ||
| + | |4 | ||
| + | |long | ||
| + | |effect_type | ||
| + | |FourCC of effect's type ([[PART (File Format)|PART]], [[SWHC (File Format)|SWHC]], [[ELSC (File Format)|ELSC]]) | ||
| + | |- | ||
| + | |+0x8 | ||
| + | |4 | ||
| + | |long | ||
| + | |effect_ref | ||
| + | |ID of [[Effect Script|effect]] resource | ||
| + | |- | ||
| + | |+0xC | ||
| + | |<null-term> | ||
| + | |string | ||
| + | |bone_name | ||
| + | |[[CINF (File Format)|CINF]] Bone Name (for transforming effects) | ||
| + | |- | ||
| + | |++0x0 | ||
| + | |4 | ||
| + | |float | ||
| + | |effect_scale | ||
| + | |Proportional-scale to applied to effect in scene | ||
| + | |- | ||
| + | |++0x4 | ||
| + | |4 | ||
| + | |long | ||
| + | |transform_type | ||
| + | |Enumerated transform-mode relating effect to actor's bone: | ||
| + | <ol start="0"> | ||
| + | <li>Effect-emitter transformed to bone for initial frame, then retained</li> | ||
| + | <li>Effect-emitter continuously transformed to bone</li> | ||
| + | <li>Entire effect (particle instances and all) continuously transformed to bone</li> | ||
| + | </ol> | ||
| + | |} | ||
=== Sound Event === | === Sound Event === | ||
| + | |||
| + | {| class="wikitable" | ||
| + | !Offset | ||
| + | !Length | ||
| + | !Data Type | ||
| + | !Identifier | ||
| + | !Notes | ||
| + | |- | ||
| + | |<start> | ||
| + | |<varies> | ||
| + | |[[#Event Base|Event Base]] | ||
| + | |event_base | ||
| + | | | ||
| + | |- | ||
| + | |+0x0 | ||
| + | |4 | ||
| + | |long | ||
| + | |sound_id | ||
| + | |16-bit [[AGSC (File Format)|AGSC]] ''sound-id'' indirected via [[ATBL (File Format)|ATBL]] | ||
| + | |- | ||
| + | |+0x4 | ||
| + | |4 | ||
| + | |float | ||
| + | |ref_amplitude | ||
| + | |Reference amplitude for audio attenuation | ||
| + | |- | ||
| + | |+0x8 | ||
| + | |4 | ||
| + | |float | ||
| + | |ref_distance | ||
| + | |Reference distance for audio attenuation | ||
| + | |} | ||
[[Category:File Formats]] | [[Category:File Formats]] | ||
Revision as of 17:41, 24 February 2015
| 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 | Version 0x2 only |
| UEVT Event | uevt_event_count | uevt_events | Version 0x2 only |
| long | 1 | effect_event_count | |
| Effect Event | effect_event_count | effect_events | |
| long | 1 | sound_event_count | |
| Sound Event | sound_event_count | sound_events |
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 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 applied to effect in scene |
| ++0x4 | 4 | long | transform_type | Enumerated transform-mode relating effect to actor's bone:
|
Sound Event
| Offset | Length | Data Type | Identifier | Notes |
|---|---|---|---|---|
| <start> | <varies> | Event Base | event_base | |
| +0x0 | 4 | long | sound_id | 16-bit AGSC sound-id indirected via ATBL |
| +0x4 | 4 | float | ref_amplitude | Reference amplitude for audio attenuation |
| +0x8 | 4 | float | ref_distance | Reference distance for audio attenuation |