Vehicle Data: Difference between revisions

no edit summary
(simplify layout)
No edit summary
Line 1:
The '''Burnout Vehicle''' file format is used to store data for a particular vehicle in all Burnout games from Takedown to Dominator. It uses the file extension '''<code>.bgv'''BGV</code> for player vehicles, orand '''<code>.btv'''BTV</code> for traffic vehicles. It is the successor to Point of Impact's [[Burnout_2_Race_Car|Burnout 2 Race Car]] file format.
 
This format contains most of the data related to any given vehicle, including mesh data, Level of Detail models, texture data, pointers to external files, deformation matrices, collision detection parameters and physics configuration info.
Line 20:
 
* Version 0x1D and onward store deformation matrices in a different order to previous revisions.
* The LOD Database version present in revision 0x14 BGVs are the only version to use '''global pointers''' for their submeshVehicle Object tables. These point to the exact location in the file of each submeshobject, whereas '''local pointers''', used in all subsequent versions of the format, use offsets relative to the beginning of the LOD. For example, a pointer to offset <tt>0x1820</tt> in a 0x14-era LOD Database would appear to point to <tt>0x140</tt> in all other versions.
 
= Layout (Version 0x17) =
Line 54:
| 0x34 || Body part radii || float[6] || ||
|-
| 0x4C || LOD database offset(s)offsets || [[Burnout_Vehicle#LOD_Database|LOD Database]]*[5] || ||
|-
| 0x60 || Vehicle texture offset || Texture* || ||
Line 70:
| 0xA70 || Chassis bone lengths || float[20] || ||
|-
| 0xAC0 || Chassis bone rig type || EBoneRigType || || 0x00 = normal bone rig<br>0x01 = large bone rig<br>0x02 = no bone rig
|-
| 0xAC4 || Body part types || EBodyPartType[6] || || 0x00 = Wheel<br>0x01 = Body part
|-
| 0xADC || Hinge axes || byte[6] || ||
Line 106:
| 0x16CA || Current payload set || sbyte || -1 if not set ||
|-
| 0x16DC || HSMESM offsetoffsets || [[Burnout_Vehicle#Engine_Sound_Model_(ESM)|Engine Sound Model]]*[2] || ||
|-
| 0x16E0 || LSM offset || Engine Sound Model* || ||
|}
 
=== LOD Database ===
The '''LOD Database''' format stores both a given vehicle's LOD model as well as the model's rendering parameters.
 
LODs, or Levels of Detail, are lower-poly, lower-detail (hence the name) models that games use for objects that are far away from the player, to keep framerates smooth. BGVs contain 4 LOD Databases, which in turn each contain one LOD model of minimum (LOD 03), low (LOD 12), medium (LOD 21) and high (LOD 30) quality.
 
It seems the maximum amount of vehicle objects a LOD Database can contain isa maximum of 12 vehicle objects, though it's unknown if this rule is enforced by the game or if it can be larger than that.
 
{|class="wikitable"
Line 143 ⟶ 141:
| 0x01 || Glass mesh index || sbyte ||
|-
| 0x04 || MeshesMesh array offset || [[Burnout_Vehicle#Vehicle_Mesh|Vehicle Mesh(]]*)[] || Pointer to an array of Vehicle Meshes
|-
| 0x08 || Normal shift || float ||
Line 173 ⟶ 171:
|-
| 0x0F || Unused || byte ||
|-
|}
 
=== Engine Sound Model (ESM) ===
This format contains playback parameters and pitching info for a given vehicle's engine sound effects, stored mostly as floating-point numbers. BGVs use two of these files for high and low speed ranges. The files were merged into the BGV starting with revision 0x17; prior to this, they were stored externally in the same folder as the BGV, with the file extensions <code>.HSM</code> and <code>.LSM</code>.