EvilEngine/FLY: Difference between revisions

From Heavy Iron Modding
Content added Content deleted
Battlepedia>Seil
(Created page with "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 ti...")
 
(Rename Flythrough to Fly, change wording, use zFlyKey struct from decomp)
 
(15 intermediate revisions by 6 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.
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]][3] || '''Camera rotation/speed up forward normalized something something''' igor help me with this
|-
| 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;
};