Vehicle Animation: Difference between revisions

From Burnout Wiki
Content added Content deleted
(Updated structure name.)
(Type names)
Line 4: Line 4:
'''Note:''' This type has no available debugging symbols. All structures are based on user research and are unconfirmed.
'''Note:''' This type has no available debugging symbols. All structures are based on user research and are unconfirmed.


=== BrnWorld::BrnVehicleAnimation ===
=== Vehicle animation resource ===
==== 32-bit ====
==== 32-bit ====
{| class="wikitable"
{| class="wikitable"
Line 13: Line 13:
| 0x4 || 0x4 || uint32_t || ? || Version number || 1
| 0x4 || 0x4 || uint32_t || ? || Version number || 1
|-
|-
| 0x8 || 0x4 || uint32_t || ? || Number of models ||
| 0x8 || 0x4 || uint32_t || ? || Number of parts ||
|-
|-
| 0xC || 0x4 || [[#Model|Model]]* || ? || Models ||
| 0xC || 0x4 || [[#BrnWorld::BrnAnimationPart|BrnAnimationPart]]* || ? || Parts ||
|-
|-
| 0x10 || 0x4 || uint32_t || ? || Number of animation data entries ||
| 0x10 || 0x4 || uint32_t || ? || Number of animation data entries ||
|-
|-
| 0x14 || 0x4 || [[#Animation|Animation]]* || ? || Animation data ||
| 0x14 || 0x4 || [[#BrnWorld::BrnVehicleAnimation|BrnVehicleAnimation]]* || ? || Animation data ||
|-
|-
| 0x18 || 0x4 || uint32_t || ? || Number of modifier entries ||
| 0x18 || 0x4 || uint32_t || ? || Number of state entries ||
|-
|-
| 0x1C || 0x4 || [[#Animation modifier|Animation modifier]]* || ? || Modifier/attribute data ||
| 0x1C || 0x4 || [[#BrnWorld::BrnVehicleStateAnimation|BrnVehicleStateAnimation]]* || ? || State data ||
|-
|-
| 0x20 || 0x4 || int8_t[4] || ? || Wheel part model indices || Order: Front left, front right, rear left, rear right<br />-1 if unused; no animation displays
| 0x20 || 0x4 || int8_t[4] || ? || Wheel part model indices || Order: Front left, front right, rear left, rear right<br />-1 if unused; no animation displays
Line 40: Line 40:
| 0x4 || 0x4 || uint32_t || ? || Version number || 1
| 0x4 || 0x4 || uint32_t || ? || Version number || 1
|-
|-
| 0x8 || 0x4 || uint32_t || ? || Number of models ||
| 0x8 || 0x4 || uint32_t || ? || Number of parts ||
|-
|-
| 0xC || 0x4 || || || padding ||
| 0xC || 0x4 || || || padding ||
|-
|-
| 0x10 || 0x8 || [[#Model|Model]]* || ? || Models ||
| 0x10 || 0x8 || [[#BrnWorld::BrnAnimationPart|BrnAnimationPart]]* || ? || Parts ||
|-
|-
| 0x18 || 0x4 || uint32_t || ? || Number of animation data entries ||
| 0x18 || 0x4 || uint32_t || ? || Number of animation data entries ||
Line 50: Line 50:
| 0x1C || 0x4 || || || padding ||
| 0x1C || 0x4 || || || padding ||
|-
|-
| 0x20 || 0x8 || [[#Animation|Animation]]* || ? || Animation data ||
| 0x20 || 0x8 || [[#BrnWorld::BrnVehicleAnimation|BrnVehicleAnimation]]* || ? || Animation data ||
|-
|-
| 0x28 || 0x4 || uint32_t || ? || Number of modifier entries ||
| 0x28 || 0x4 || uint32_t || ? || Number of state entries ||
|-
|-
| 0x2C || 0x4 || || || padding ||
| 0x2C || 0x4 || || || padding ||
|-
|-
| 0x30 || 0x8 || [[#Animation modifier|Animation modifier]]* || ? || Modifier/attribute data ||
| 0x30 || 0x8 || [[#BrnWorld::BrnVehicleStateAnimation|BrnVehicleStateAnimation]]* || ? || State data ||
|-
|-
| 0x38 || 0x4 || int8_t[4] || ? || Wheel part model indices || Order: Front left, front right, rear left, rear right<br />-1 if unused; no animation displays
| 0x38 || 0x4 || int8_t[4] || ? || Wheel part model indices || Order: Front left, front right, rear left, rear right<br />-1 if unused; no animation displays
Line 65: Line 65:
|}
|}


=== Model ===
=== BrnWorld::BrnAnimationPart ===
{{todo|Research the non-primary indices.}}
{{todo|Research the non-primary indices.}}


Line 78: Line 78:
|}
|}


=== Animation ===
=== BrnWorld::BrnVehicleAnimation ===
{{todo|Research types/flags, understand connection between byte at 0x2 and secondary data.}}
{{todo|Research types/flags, understand connection between byte at 0x2 and secondary data.}}


Line 95: Line 95:
|}
|}


=== BrnWorld::BrnVehicleStateAnimation ===
=== Animation modifier ===
{{todo|Understand the animation type/action field.}}
{{todo|Understand the animation type/action field.}}



Revision as of 16:37, 25 January 2023

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 ? Modifier part model index? Refers to modifier part model on cops but not others. See animation modifier
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