Vehicle Animation

From Burnout Wiki
VehicleAnimation
aka {{{othernames}}}
No Example
Resource names *_VANM
*Vehicle ID, e.g. PUSMC01
Type ID 0x10023
Category Game-specific
(Burnout Paradise)
Memory
distribution
Main Memory only
Imports Unknown
Imported by Unknown
Editor
available?
No

The vehicle animation resource type stores per-vehicle user-triggered animations, working in conjunction with a Body Part Remap Data resource.

Structures

Note: This type has no available debugging symbols. All structures are based on user research and are unconfirmed.

Vehicle animation resource

32-bit

Offset Length Type Name Description Comments
0x0 0x4 uint32_t ? Resource size
0x4 0x4 uint32_t ? Version number 1
0x8 0x4 uint32_t ? Number of parts
0xC 0x4 BrnAnimationPart* ? Parts
0x10 0x4 uint32_t ? Number of animation data entries
0x14 0x4 BrnVehicleAnimation* ? Animation data
0x18 0x4 uint32_t ? Number of state entries
0x1C 0x4 BrnVehicleStateAnimation* ? State data
0x20 0x4 int8_t[4] ? Wheel part model indices Order: Front left, front right, rear left, rear right
-1 if unused; no animation displays
0x24 0xC Padding
0x30 0x100 Matrix44Affine[4] ? Wheel positions Order: Front left, front right, rear left, rear right
Animation only; real positions in deformation resource

64-bit

Offset Length Type Name Description Comments
0x0 0x4 uint32_t ? Resource size
0x4 0x4 uint32_t ? Version number 1
0x8 0x4 uint32_t ? Number of parts
0xC 0x4 Padding
0x10 0x8 BrnAnimationPart* ? Parts
0x18 0x4 uint32_t ? Number of animation data entries
0x1C 0x4 Padding
0x20 0x8 BrnVehicleAnimation* ? Animation data
0x28 0x4 uint32_t ? Number of state entries
0x2C 0x4 Padding
0x30 0x8 BrnVehicleStateAnimation* ? State data
0x38 0x4 int8_t[4] ? Wheel part model indices Order: Front left, front right, rear left, rear right
-1 if unused; no animation displays
0x3C 0x4 Padding
0x40 0x100 Matrix44Affine[4] ? Wheel positions Order: Front left, front right, rear left, rear right
Animation only; real positions in deformation resource

BrnWorld::BrnAnimationPart

Hmmm...
Hmmm...
To do:
Research the non-primary indices.
Offset Length Type Name Description Comments
0x0 0x1 int8_t ? Part model index Primary index from the graphics resource
0x1 0x1 int8_t ? Second part model index? From the graphics resource. -1 if unused
0x2 0x1 int8_t ? Third part model index? From the graphics resource. -1 if unused

BrnWorld::BrnVehicleAnimation

Hmmm...
Hmmm...
To do:
Research types/flags, understand connection between byte at 0x2 and secondary data.
Offset Length Type Name Description Comments
0x0 0x1 int8_t ? Part model index From the graphics resource
0x1 0x1 int8_t ? Animation type See animation type
0x2 0x1 int8_t ? State part model index? Refers to state part model on cops but not others. See state
0x3 0xD Padding
0x10 0x30 Matrix33 ?

BrnWorld::BrnVehicleStateAnimation

Hmmm...
Hmmm...
To do:
Understand the animation type/action field.
Offset Length Type Name Description Comments
0x0 0x1 int8_t ? Part model index From the graphics resource
0x1 0x1 int8_t ? Animation trigger See animation trigger
0x2 0x1 bool ? Loop animation
0x3 0xD Padding
0x10 0x20 Vector4[2] ?

Enumerations

Animation type

Hmmm...
Hmmm...
To do:
Values such as 3 are used; explore what they do and determine if these are flags or not.
Name Value Comments
? 0 None
? 1 Rotate
? 2 Transform
? 3
? 4 Rotate (reversed)?
? 5 Rotate once and return to origin

Animation trigger

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