EvilEngine/FLY: Difference between revisions

From Heavy Iron Modding
Content added Content deleted
m (Seil moved page FLY to EvilEngine/FLY)
(Rename Flythrough to Fly, change wording, use zFlyKey struct from decomp)
 
Line 1: Line 1:
<onlyinclude>
<onlyinclude>
{{#vardefine:typeid|FLy}}<nowiki/>
{{#vardefine:typeid|FLY}}<nowiki/>
{{#vardefine:name|Flythrough}}<nowiki/>
{{#vardefine:name|Fly}}<nowiki/>
{{#vardefine:type|[[Binary]]}}<nowiki/>
{{#vardefine:type|[[Binary]]}}<nowiki/>
{{#vardefine:basetype|}}<nowiki/>
{{#vardefine:basetype|}}<nowiki/>
Line 10: Line 10:
{{AutoAssetInfobox}}
{{AutoAssetInfobox}}


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.
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 64 (0x40 hex) 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>
<source lang=cpp>
struct zFlyKey
struct zFlyKey
{
{
int32 frame;
int32 frame;
float32 matrix[12];
float cameraNormalizedRight[3];
float32 aperture[2];
float cameraNormalizedUp[3];
float32 focal;
float cameraNormalizedBackward[3];
float cameraPosition[3];
float aperture[2];
float focal;
};
};
</source>
</source>

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;
};