GoodEngine/Assets: Difference between revisions
Content added Content deleted
EnergyDrink (talk | contribs) No edit summary |
EnergyDrink (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
==Classes of Assets== |
==Classes of Assets== |
||
===Base assets=== |
|||
Base assets start with a 0x10 byte header, defined by the <code>xBaseAsset</code> struct: |
|||
{| class="wikitable" |
|||
! Offset !! Type !! Variable !! Description |
|||
|- |
|||
| 0x00 || long || '''id''' || |
|||
|- |
|||
| 0x08 || uint || '''baseType''' || |
|||
|- |
|||
| 0x0C || short || '''linkCount''' || Leftover from EvilEngine, unused in GoodEngine. |
|||
|- |
|||
| 0x0E || short || '''baseFlags''' || |
|||
|} |
|||
===Entity assets=== |
|||
Entity assets (also referred to as placeable assets) are base assets which have a 3D placement in the world. They start with a 0xF8 byte header, which is defined by the <code>xEntAsset</code> struct (which extends from <code>xBaseAsset</code>): |
|||
{| class="wikitable" |
|||
! Offset !! Type !! Variable !! Description |
|||
|- |
|||
| 0x10 || byte || '''flags''' || |
|||
|- |
|||
| 0x11 || byte || '''subtype'''|| |
|||
|- |
|||
| 0x12 || byte || '''pad''' || |
|||
|- |
|||
| 0x13 || byte || '''Targettable''' || |
|||
|- |
|||
| 0x14 || byte || '''Pad0''' || |
|||
|- |
|||
| 0x15 || ? || '''moreFlags''' || |
|||
|- |
|||
| 0x18 || [[AssetID]] || '''surfaceID''' || |
|||
|- |
|||
| 0x20 || [[Vector3]] || '''Orientation''' || |
|||
|- |
|||
| 0x2C || [[Vector3]] || '''Pos''' || |
|||
|- |
|||
| 0x38 || [[Vector3]] || '''Scale''' || |
|||
|- |
|||
! 0x50 || colspan="3" | [[#ModelInstanceAsset|modelInstance]] |
|||
|- |
|||
| 0x90 || [[AssetID]] || '''animListID''' || |
|||
|- |
|||
! 0x98 || colspan="3" | PhysicsDataStruct |
|||
|- |
|||
| 0x98 || float || '''mass''' || |
|||
|- |
|||
| 0x9C || float || '''friction''' || |
|||
|- |
|||
| 0xA0 || float || '''elasticity''' || |
|||
|- |
|||
| 0xA4 || float || '''linearDamping''' || |
|||
|- |
|||
| 0xA8 || float || '''angularDamping''' || |
|||
|- |
|||
| 0xAC || float || '''settleTimer''' || |
|||
|- |
|||
| 0xB0 || byte || '''magnetic_Charge''' || |
|||
|- |
|||
| 0xB1 || byte || '''pad1''' || |
|||
|- |
|||
| 0xB2 || byte || '''pad2''' || |
|||
|- |
|||
| 0xB3 || byte || '''pad3''' || |
|||
|- |
|||
! 0xB4 || colspan="3" | '''SoundSourcesPhysics''' |
|||
|- |
|||
| 0xB4 || [[#SoundBankSource|SoundBankSource]] || '''SoundHit''' || |
|||
|- |
|||
| 0xC0 || [[#SoundBankSource|SoundBankSource]] || '''SoundScrape''' || |
|||
|- |
|||
| 0xCC || [[#SoundBankSource|SoundBankSource]] || '''SoundRoll''' || |
|||
|- |
|||
! 0xD8 || colspan="3" | '''PhysicsData''' |
|||
|- |
|||
| 0xD8 || float || '''MinVelocity''' || |
|||
|- |
|||
| 0xDC || float || '''MaxVelocity''' || |
|||
|- |
|||
| 0xE0 || float || '''MinRun''' || |
|||
|- |
|||
| 0xE4 || float || '''MaxRun''' || |
|||
|- |
|||
| 0xE8 || float || '''MaxRise''' || |
|||
|- |
|||
! colspan="4" | |
|||
|- |
|||
| 0xEC || uint || '''Pad1''' || |
|||
|- |
|||
| 0xF0 || uint || '''Pad2''' || |
|||
|- |
|||
| 0xF4 || uint || '''Pad3''' || |
|||
|} |
|||
====SoundBankSource==== |
|||
{| class="wikitable" |
|||
|- |
|||
! Offset !! Type !! Variable !! Description |
|||
|- |
|||
| 0x00 || byte || '''streamed''' || |
|||
|- |
|||
| 0x01 || byte || '''pad1''' || ''0x33'' |
|||
|- |
|||
| 0x02 || byte || '''pad2''' || ''0x33'' |
|||
|- |
|||
| 0x03 || byte || '''pad3''' || ''0x33'' |
|||
|- |
|||
| 0x04 || int || '''sourceString''' || |
|||
|- |
|||
| 0x08 || int || '''indices''' || |
|||
|} |
|||
====ModelInstanceAsset==== |
|||
{| class="wikitable" |
|||
! Offset !! Type !! Variable !! Description |
|||
|- |
|||
| 0x00 || [[AssetID]] || '''modelPrototypeID''' || |
|||
|- |
|||
| 0x08 || [[AssetID]] || '''lightKitID''' || |
|||
|- |
|||
| 0x10 || uint || '''instanceParamCount''' || |
|||
|- |
|||
| 0x14 || uint || '''renderCustomizerCount''' || |
|||
|- |
|||
| 0x18 || uint || '''instanceParams''' || |
|||
|- |
|||
| 0x1C || uint || '''renderCustomizers''' || |
|||
|- |
|||
| 0x20 || short || '''shadowType''' || |
|||
|- |
|||
| 0x22 || short || '''shadowFlags''' || |
|||
|- |
|||
| 0x24 || float || '''shadowColorOverride''' || |
|||
|- |
|||
| 0x28 || float || '''shadowMaxDepthOverride''' || |
|||
|- |
|||
| 0x2C || float || '''shadowStartDepthOverride''' || |
|||
|- |
|||
| 0x30 || float || '''shadowMinBlurOverride''' || |
|||
|- |
|||
| 0x34 || float || '''shadowMaxBlurOverride''' || |
|||
|- |
|||
| 0x38 || [[AssetID]] || '''parentID''' || |
|||
|} |
|||
==List of asset types== |
==List of asset types== |
Revision as of 16:41, 19 September 2022
Classes of Assets
Base assets
Base assets start with a 0x10 byte header, defined by the xBaseAsset
struct:
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | long | id | |
0x08 | uint | baseType | |
0x0C | short | linkCount | Leftover from EvilEngine, unused in GoodEngine. |
0x0E | short | baseFlags |
Entity assets
Entity assets (also referred to as placeable assets) are base assets which have a 3D placement in the world. They start with a 0xF8 byte header, which is defined by the xEntAsset
struct (which extends from xBaseAsset
):
Offset | Type | Variable | Description |
---|---|---|---|
0x10 | byte | flags | |
0x11 | byte | subtype | |
0x12 | byte | pad | |
0x13 | byte | Targettable | |
0x14 | byte | Pad0 | |
0x15 | ? | moreFlags | |
0x18 | AssetID | surfaceID | |
0x20 | Vector3 | Orientation | |
0x2C | Vector3 | Pos | |
0x38 | Vector3 | Scale | |
0x50 | modelInstance | ||
0x90 | AssetID | animListID | |
0x98 | PhysicsDataStruct | ||
0x98 | float | mass | |
0x9C | float | friction | |
0xA0 | float | elasticity | |
0xA4 | float | linearDamping | |
0xA8 | float | angularDamping | |
0xAC | float | settleTimer | |
0xB0 | byte | magnetic_Charge | |
0xB1 | byte | pad1 | |
0xB2 | byte | pad2 | |
0xB3 | byte | pad3 | |
0xB4 | SoundSourcesPhysics | ||
0xB4 | SoundBankSource | SoundHit | |
0xC0 | SoundBankSource | SoundScrape | |
0xCC | SoundBankSource | SoundRoll | |
0xD8 | PhysicsData | ||
0xD8 | float | MinVelocity | |
0xDC | float | MaxVelocity | |
0xE0 | float | MinRun | |
0xE4 | float | MaxRun | |
0xE8 | float | MaxRise | |
0xEC | uint | Pad1 | |
0xF0 | uint | Pad2 | |
0xF4 | uint | Pad3 |
SoundBankSource
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | byte | streamed | |
0x01 | byte | pad1 | 0x33 |
0x02 | byte | pad2 | 0x33 |
0x03 | byte | pad3 | 0x33 |
0x04 | int | sourceString | |
0x08 | int | indices |
ModelInstanceAsset
Offset | Type | Variable | Description |
---|---|---|---|
0x00 | AssetID | modelPrototypeID | |
0x08 | AssetID | lightKitID | |
0x10 | uint | instanceParamCount | |
0x14 | uint | renderCustomizerCount | |
0x18 | uint | instanceParams | |
0x1C | uint | renderCustomizers | |
0x20 | short | shadowType | |
0x22 | short | shadowFlags | |
0x24 | float | shadowColorOverride | |
0x28 | float | shadowMaxDepthOverride | |
0x2C | float | shadowStartDepthOverride | |
0x30 | float | shadowMinBlurOverride | |
0x34 | float | shadowMaxBlurOverride | |
0x38 | AssetID | parentID |
List of asset types
The following is a list of all asset types found across all 7 games as well as which asset types are present in each game, signified by a checkmark (✔).
Asset | Type | Asset TypeID | Ratatouille | Wall-E | Up | ToS | UFC | FGUY | Hollywood | Notes |
---|---|---|---|---|---|---|---|---|---|---|
|
Base | 0xC72962FC | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |