Vehicle Animation: Difference between revisions

Added infobox and normalized some content.
(Created page.)
 
(Added infobox and normalized some content.)
 
(6 intermediate revisions by 2 users not shown)
Line 1:
{{ParadiseResourceTypeInfobox
<pre>This page is a work in progress. Check back at a later date for more up-to-date information.</pre>
| name = VehicleAnimation
| resourcenames = *_VANM<br /><sup><small>*Vehicle ID, e.g. PUSMC01</small></sup>
| id = 0x10023
| category = Game-specific<br />(Burnout Paradise)
| memdist = Main Memory only
}}
 
The vehicle animation resource type stores per-vehicle user-triggered animations, working in conjunction with a [[Body Part Remap Data]] resource.
Line 6 ⟶ 12:
'''Note:''' This type has no available debugging symbols. All structures are based on user research and are unconfirmed.
 
=== HeaderVehicle animation resource ===
==== 32-bit ====
{| class="wikitable"
Line 15 ⟶ 21:
| 0x4 || 0x4 || uint32_t || ? || Version number || 1
|-
| 0x8 || 0x4 || uint32_t || ? || Number of animationsparts ||
|-
| 0xC || 0x4 || [[#AnimationBrnWorld::BrnAnimationPart|AnimationBrnAnimationPart]]* || ? || AnimationsParts ||
|-
| 0x10 || 0x4 || uint32_t || ? || Number of animation data entries ||
|-
| 0x14 || 0x4 || [[#Animation dataBrnWorld::BrnVehicleAnimation|Animation dataBrnVehicleAnimation]]* || ? || Animation data ||
|-
| 0x18 || 0x4 || uint32_t || ? || Number of secondary datastate entries ||
|-
| 0x1C || 0x4 || [[#Secondary dataBrnWorld::BrnVehicleStateAnimation|Secondary dataBrnVehicleStateAnimation]]* || ? || SecondaryState data ||
|-
| 0x20 || 0x4 || int8_t[4] || ? || Wheel animationpart model indices || Order: Front left, front right, rear left, rear right<br />-1 if unused; no animation displays
|-
| 0x24 || 0xC || || || paddingPadding ||
|-
| 0x30 || 0x100 || [[Matrix44Affine]][4] || ? || Wheel positions || Order: Front left, front right, rear left, rear right<br />Animation only; real positions in [[Streamed Deformation|deformation]] resource
|}
 
Line 42 ⟶ 48:
| 0x4 || 0x4 || uint32_t || ? || Version number || 1
|-
| 0x8 || 0x4 || uint32_t || ? || Number of animationsparts ||
|-
| 0xC || 0x4 || || || paddingPadding ||
|-
| 0x10 || 0x8 || [[#AnimationBrnWorld::BrnAnimationPart|AnimationBrnAnimationPart]]* || ? || AnimationsParts ||
|-
| 0x18 || 0x4 || uint32_t || ? || Number of animation data entries ||
|-
| 0x1C || 0x4 || || || paddingPadding ||
|-
| 0x20 || 0x8 || [[#Animation dataBrnWorld::BrnVehicleAnimation|Animation dataBrnVehicleAnimation]]* || ? || Animation data ||
|-
| 0x28 || 0x4 || uint32_t || ? || Number of secondary datastate entries ||
|-
| 0x2C || 0x4 || || || paddingPadding ||
|-
| 0x30 || 0x8 || [[#Secondary dataBrnWorld::BrnVehicleStateAnimation|Secondary dataBrnVehicleStateAnimation]]* || ? || SecondaryState data ||
|-
| 0x38 || 0x4 || int8_t[4] || ? || Wheel animationpart model indices || Order: Front left, front right, rear left, rear right<br />-1 if unused; no animation displays
|-
| 0x3C || 0x4 || || || paddingPadding ||
|-
| 0x40 || 0x100 || [[Matrix44Affine]][4] || ? || Wheel positions || Order: Front left, front right, rear left, rear right<br />Animation only; real positions in [[Streamed Deformation|deformation]] resource
|}
 
=== AnimationBrnWorld::BrnAnimationPart ===
{{todo|Research the non-primary indices.}}
 
Line 73 ⟶ 79:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x1 || int8_t || ? || AnimationPart model index || Primary index from the [[Vehicle Graphics|graphics]] resource
|-
| 0x1 || 0x1 || int8_t || ? || Second animationpart model index? || From the [[Vehicle Graphics|graphics]] resource. -1 if unused
|-
| 0x2 || 0x1 || int8_t || ? || Third animationpart model index? || From the [[Vehicle Graphics|graphics]] resource. -1 if unused
|}
 
=== Animation dataBrnWorld::BrnVehicleAnimation ===
{{todo|Research types/flags, understand connection between byte at 0x2 and secondary data.}}
 
Line 86 ⟶ 92:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x1 || int8_t || ? || IndexPart model index || From the [[Vehicle Graphics|graphics]] resource
|-
| 0x1 || 0x1 || int8_t || ? || TypeAnimation or flagstype || See [[#Animation type|animation type]]
|-
| 0x2 || 0x1 || int8_t || ? || SecondaryState part model index? || Refers to secondarystate datapart indexmodel on cops but not others. See [[#BrnWorld::BrnVehicleStateAnimation|state]]
|-
| 0x3 || 0xD || || || paddingPadding ||
|-
| 0x10 || 0x30 || [[Matrix33]] || ? || ||
|}
 
=== BrnWorld::BrnVehicleStateAnimation ===
=== Secondary data ===
{{todo|Understand the animation type/action field.}}
 
Line 103 ⟶ 109:
! Offset !! Length !! Type !! Name !! Description !! Comments
|-
| 0x0 || 0x1 || int8_t || ? || IndexPart model index || From the [[Vehicle Graphics|graphics]] resource
|-
| 0x1 || 0x1 || int8_t || ? || Animation type/action (per pashok)trigger || Trigger?See 0[[#Animation and 0x15 on cops/DLC. More on bikestrigger|animation (0xB).trigger]]
|-
| 0x2 || 0x1 || bool || ? || Loop animation ||
|-
| 0x3 || 0xD || || || paddingPadding ||
|-
| 0x10 || 0x20 || [[Vector4]][2] || ? || ||
Line 115 ⟶ 121:
 
= Enumerations =
=== TypeAnimation or flagstype ===
{{todo|Values such as 3 are used; explore what they do and determine if these are flags or not.}}
{| class="wikitable"
! Name !! Value !! Comments
|-
| ? || 0x10 || RotateNone
|-
| ? || 0x21 || TransformRotate
|-
| ? || 0x42 || Rotate (reversed)?Transform
|-
| ? || 3 ||
|-
| ? || 4 || Rotate (reversed)?
|-
| ? || 5 || Rotate once and return to origin
|}
 
=== Animation trigger ===
{| class="wikitable"
! Name !! Value !! Comments
|-
| ? || 0 ||
|-
| ? || 1 || Turning
|-
| ? || 2 ||
|-
| ? || 3 ||
|-
| ? || 4 ||
|-
| ? || 5 ||
|-
| ? || 6 || Front right wheel rotation
|-
| ? || 7 || Front left wheel rotation
|-
| ? || 8 || Rear right wheel rotation
|-
| ? || 9 || Rear left wheel rotation
|-
| ? || 10 || Brake
|-
| ? || 11 || Throttle
|-
| ? || 12 ||
|-
| ? || 13 || Speed
|-
| ? || 14 || RPM
|-
| ? || 15 ||
|-
| ? || 16 ||
|-
| ? || 17 ||
|-
| ? || 18 ||
|-
| ? || 19 ||
|-
| ? || 20 || Hover
|-
| ? || 21 || Boost
|}