FTL file format: Difference between revisions

From Arx Libertatis Wiki
Jump to navigation Jump to search
(Created page with "This format is used for game resources such as props, items and characters. The game's loader for the format is in '''graphics/data/FTL.cpp'''. The format header is '''graph...")
 
mNo edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
This format is used for game resources such as props, items and characters.
{{Stub}}
 
'''.ftl''' files are used for game resources such as props, items and characters.
 
They are parsed in [https://github.com/arx/ArxLibertatis/blob/ArxFatalis-1.21/Sources/DANAE/ARX_FTL.cpp#L575 <code>ARX_FTL_Load()</code>] in Arx Fatalis 1.21.
 
'''.ftl''' files were created using the [[DAmnable but Necessary Arx Editor]] from raw [[THEO Game Maker]] [[THEO file format|'''.teo''' files]], but those are not shipped with the game.


The game's loader for the format is in '''graphics/data/FTL.cpp'''.
The game's loader for the format is in '''graphics/data/FTL.cpp'''.
Line 10: Line 16:
** Vertices (including colour and normal), faces and UVs
** Vertices (including colour and normal), faces and UVs
** Texture map names
** Texture map names
** Named vertex groups for specifying bone influences (only one bone per vertex is supported)
** Named vertex groups for specifying bone influences (multiple bones per vertex are supported, but there doesn't seem to be any weighting information)
** Action points (points of interest on the model, where things can be attached, etc.) that reference vertices to specify coordinates
** Action points (points of interest on the model, where things can be attached, etc.) that reference vertices to specify coordinates
** Vertex selections for conditional geometry rendering
** Vertex selections for conditional geometry rendering
Line 29: Line 35:


= Use in Modding =
= Use in Modding =
An FTL addon for Blender is currently in development. Full support for FTL import is planned.
Arx Libertatis includes a Blender add-on that supports import and export of the FTL format (among others). Unlike the original Arx Fatalis, Arx Libertatis can load uncompressed FTL data from a file. The Blender add-on imports both the compressed and uncompressed varieties; it exports only uncompressed FTLs.
 
As regards FTL export, the team is currently undecided whether it's worth implementing. It's possible that engine support for a different format alongside legacy FTL would make more sense in the long run.

Latest revision as of 18:06, 4 January 2024

This article is a stub - you can help by expanding it. See the Wiki FAQ.

.ftl files are used for game resources such as props, items and characters.

They are parsed in ARX_FTL_Load() in Arx Fatalis 1.21.

.ftl files were created using the DAmnable but Necessary Arx Editor from raw THEO Game Maker .teo files, but those are not shipped with the game.

The game's loader for the format is in graphics/data/FTL.cpp.

The format header is graphics/data/FTLFormat.h.

Contained Data

The FTL format contains the following data:

  • Geometry, rendering and control:
    • Vertices (including colour and normal), faces and UVs
    • Texture map names
    • Named vertex groups for specifying bone influences (multiple bones per vertex are supported, but there doesn't seem to be any weighting information)
    • Action points (points of interest on the model, where things can be attached, etc.) that reference vertices to specify coordinates
    • Vertex selections for conditional geometry rendering
    • Origin coordinates specified by referencing a vertex; the reason for including this is unclear, because it's always zeroes anyway
  • Cylinder (purpose unknown)
  • Something labelled progressive data (not used in the game)
  • Clothes (not used in the game)
  • Collision spheres
  • Physics box

An FTL file has only one object, without an object hierarchy or kinematics information.

Adequacy

The format appears to have had a conflicted development history. This is evident from dead-end features and data redundancy.

It is also unnecessarily complicated in that it uses PKWARE compression (even though the game assets normally reside in compressed archives anyway) and, in its raw form, includes a checksum. Otherwise, it is easy to parse.

Lack of extensibility is a serious shortcoming: the format does not provide storage for custom data that could be interpreted by future iterations of the engine in arbitrary ways.

Use in Modding

Arx Libertatis includes a Blender add-on that supports import and export of the FTL format (among others). Unlike the original Arx Fatalis, Arx Libertatis can load uncompressed FTL data from a file. The Blender add-on imports both the compressed and uncompressed varieties; it exports only uncompressed FTLs.