FTL file format: Difference between revisions
(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...") |
|||
Line 10: | Line 10: | ||
** 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 ( | ** 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 |
Revision as of 16:17, 16 December 2013
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 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
An FTL addon for Blender is currently in development. Full support for FTL import is planned.
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.