EvilEngine/CAM: Difference between revisions
Battlepedia>Seil (→Format) |
m (Seil moved page CAM to EvilEngine/CAM) |
||
(10 intermediate revisions by 3 users not shown) | |||
Line 1:
<onlyinclude>
{{#vardefine:typeid|CAM}}<nowiki/>
{{#vardefine:name|Camera}}<nowiki/>
{{#vardefine:type|[[Base]]}}<nowiki/>
{{#vardefine:basetype|0x07}}<nowiki/>
{{#vardefine:games|Scooby BFBB TSSM Incredibles ROTU RatProto}}<nowiki/>
{{#vardefine:sourcecode|[https://github.com/bfbbdecomp/bfbb/blob/master/src/Core/x/xCamera.h xCamera.h]}}<nowiki/>
{{#vardefine:image|}}<nowiki/>
</onlyinclude>
{{AutoAssetInfobox}}
This asset defines cameras. Usually, the game takes control from you to display a certain camera for a moment, such as when talking to NPCs or showing you something elsewhere in the level.
==Format==
Cameras are [[
{| class="wikitable"
! Offset !! Type
|-
| 0x8 || [[Vector3]] || '''
|-
| 0x14 || [[Vector3]] || '''
|-
| 0x20 || [[Vector3]] || '''
|-
| 0x2C || [[Vector3]] || '''
|-
| 0x38 || [[Vector3]] || '''
|-
| 0x44 || short || '''
|-
| 0x46 || short || '''
|-
| 0x48 || float || '''
|-
| 0x4C || float || '''
|-
| 0x50 || int
* 0 - None
* 1 - Interp1
* 2 - Interp2
* 3 - Interp3
* 4 - Interp4
* 5 - Linear
* 6 - Interp1Rev
* 7 - Interp2Rev
* 8 - Interp3Rev
* 9 - Interp4Rev
|-
| 0x54 || unsigned int || '''
|-
| 0x58 || float
|-
| 0x5C || float
|-
! colspan="3" | Follow only
|-
|
|-▼
| 0x64 || float || '''Distance'''
|-
| 0x68 || float || '''Height'''
|-
| 0x6C || float || '''Rubber Band'''
|-
| 0x70 || float || '''Start Speed'''
|-
| 0x74 || float || '''End Speed'''
|-
! colspan="3" | Shoulder only
|-
| 0x60 || float || '''Distance'''
|-
| 0x64 || float || '''Height'''
|-
| 0x68 || float || '''Realign Speed'''
|-
| 0x6C || float || '''Realign Delay'''
|-
| 0x70 || byte[0x8] || null
|-
! colspan="3" | Static only
|-
| 0x60 || unsigned int || '''Unused''' - yes this is actually called "unused"
|-
| 0x64 || byte[0x14] || null
|-
! colspan="3" | Path only
|-
| 0x60 || unsigned int || '''[[Asset ID]]'''
|-
| 0x64 || float || '''Time End'''
|-
| 0x64 || float || '''Time Delay'''
|-
| 0x68 || byte[0x10] || null
|-
! colspan="3" | Static Follow only
|-
| 0x60 || float || '''Rubber Band'''
|-
| 0x64 || byte[0x14] || null
|-
! colspan="3" |
|-
| 0x78 || unsigned int || '''Valid Flags'''
* byte 1 usually 0
* byte 2 usually 1
Line 47 ⟶ 110:
* byte 4 usually 0x8F (143) or 0xC0 (192)
|-
| 0x7C || [[AssetID]][2]
|-
|
* 0 - Follow
* 1 - Shoulder
* 2 - Static
* 3 - Path
* 4 - Static Follow
|-
|
▲|-
|-
! colspan="3" | Events
Line 64 ⟶ 130:
* [[List of Events#End Conversation|End Conversation]]
* [[List of Events#Switch|Switch]]
{{Assets}}
{{AutoGameNavs}}
[[Category:Asset]]
|
Latest revision as of 22:33, 15 September 2022
This asset defines cameras. Usually, the game takes control from you to display a certain camera for a moment, such as when talking to NPCs or showing you something elsewhere in the level.
CAM | |
---|---|
Camera | |
Type | Base |
Base Type | 0x07 |
Games used | Night of 100 Frights Battle for Bikini Bottom |
Source code | xCamera.h |
Format
Cameras are base assets, so they start with their 0x8 byte header, then are followed by:
Offset | Type | Description |
---|---|---|
0x8 | Vector3 | Position |
0x14 | Vector3 | Normalized forward vector |
0x20 | Vector3 | Normalized up vector |
0x2C | Vector3 | Normalized left vector |
0x38 | Vector3 | View Offset |
0x44 | short | Offset Start Frames - usually 30 |
0x46 | short | Offset End Frames - usually 45 |
0x48 | float | FOV - (degrees) |
0x4C | float | Transition Time - (seconds) Time it takes to move the camera to this position. |
0x50 | int | Transition Type - usually 0, 1, 2, 5, or 6
|
0x54 | unsigned int | Flags - usually 0 |
0x58 | float | Fade Up - usually 0 |
0x5C | float | Fade Down - usually 0 |
Follow only | ||
0x60 | float | Rotation |
0x64 | float | Distance |
0x68 | float | Height |
0x6C | float | Rubber Band |
0x70 | float | Start Speed |
0x74 | float | End Speed |
Shoulder only | ||
0x60 | float | Distance |
0x64 | float | Height |
0x68 | float | Realign Speed |
0x6C | float | Realign Delay |
0x70 | byte[0x8] | null |
Static only | ||
0x60 | unsigned int | Unused - yes this is actually called "unused" |
0x64 | byte[0x14] | null |
Path only | ||
0x60 | unsigned int | Asset ID |
0x64 | float | Time End |
0x64 | float | Time Delay |
0x68 | byte[0x10] | null |
Static Follow only | ||
0x60 | float | Rubber Band |
0x64 | byte[0x14] | null |
0x78 | unsigned int | Valid Flags
|
0x7C | AssetID[2] | Marker IDs - usually both null |
0x84 | byte | Cam Type - usually 0, 2, or 3
|
0x85 | byte[3] | Padding (always 0) |
Events | ||
0x88 | Event[numberOfEvents] | Events |