The vehicle animation resource type stores per-vehicle user-triggered animations, working in conjunction with a Body Part Remap Data resource.
Note: This type has no available debugging symbols. All structures are based on user research and are unconfirmed.
Vehicle animation resource[edit | edit source]
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
|
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[edit | edit source]
| 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[edit | edit source]
| 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[edit | edit source]
| 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] |
? |
|
|
| 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
|
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
|