EvilEngine/FLY: Difference between revisions

From Heavy Iron Modding
Content added Content deleted
Battlepedia>Igorseabra4
No edit summary
(Rename Flythrough to Fly, change wording, use zFlyKey struct from decomp)
 
(14 intermediate revisions by 5 users not shown)
Line 1: Line 1:
<onlyinclude>
A '''Flythrough''' defines a path for the camera to move around a level. It is made up of individual points, each point defining the transform for the camera at a specified time. The time is measured in frames. 30 frames = 1 second.
{{#vardefine:typeid|FLY}}<nowiki/>
{{#vardefine:name|Fly}}<nowiki/>
{{#vardefine:type|[[Binary]]}}<nowiki/>
{{#vardefine:basetype|}}<nowiki/>
{{#vardefine:games|BFBB TSSM Incredibles RatProto}}<nowiki/>
{{#vardefine:sourcecode|[https://github.com/bfbbdecomp/bfbb/blob/master/src/Game/zCamera.h zCamera.h]}}<nowiki/>
{{#vardefine:image|}}<nowiki/>
</onlyinclude>
{{AutoAssetInfobox}}

A '''Fly''' asset defines a path for the camera to move around the scene. It is made up of keys containing the camera's transform, aperture, and focal length for each frame. Each frame lasts ~0.0333 ms (30 FPS).

Fly assets contain all of the data necessary for [[EvilEngine/DYNA/game_object:Flythrough|game_object:Flythrough]], which is the in-game [[object]] that overrides the in-game camera.


==Format==
==Format==
Flythroughs are stored in little-endian. There is no header, it is simply made up of the following struct which repeats until the end of the file. The total length in frames is the frame number of the last struct in the file. Each entry is 0x40 bytes long.
A Fly asset is stored in little-endian on all platforms. It has no header and is made up of contiguous zFlyKey entries. Therefore, the number of entries is the asset's size / <code>sizeof(zFlyKey)</code> (64 bytes).

<source lang=cpp>
struct zFlyKey
{
int32 frame;
float32 matrix[12];
float32 aperture[2];
float32 focal;
};
</source>


{{Assets}}
{| class="wikitable"
{{AutoGameNavs}}
! Offset !! Type !! Description
|-
| 0x00 || int || '''Frame number'''. Usually starts at either 1 or 0, and increments by 1 with each point
|-
| 0x04 || [[Vector3]] || '''Normalized Camera Left'''
|-
| 0x10 || [[Vector3]] || '''Normalized Camera Up'''
|-
| 0x1C || [[Vector3]] || '''Normalized Camera Backward'''
|-
| 0x28 || [[Vector3]] || '''Camera Position'''
|-
| 0x34 || [[Vector3]] || '''Unknown'''
|}


[[Category:Asset]]
[[Category:Asset]]

Latest revision as of 17:23, 13 December 2022

FLY
Fly
TypeBinary
Games usedBattle for Bikini Bottom

The SpongeBob SquarePants Movie
The Incredibles

Ratatouille Prototype
Source codezCamera.h

A Fly asset defines a path for the camera to move around the scene. It is made up of keys containing the camera's transform, aperture, and focal length for each frame. Each frame lasts ~0.0333 ms (30 FPS).

Fly assets contain all of the data necessary for game_object:Flythrough, which is the in-game object that overrides the in-game camera.

Format

A Fly asset is stored in little-endian on all platforms. It has no header and is made up of contiguous zFlyKey entries. Therefore, the number of entries is the asset's size / sizeof(zFlyKey) (64 bytes).

struct zFlyKey
{
    int32 frame;
    float32 matrix[12];
    float32 aperture[2];
    float32 focal;
};