fcecodec
is a Python extension module that decodes, encodes, and operates on
FCE data. FCE is a geometry definition file format.
The Python extension module is based on a dependency-free, header-only library written in C89.
Python bindings are written in C++ (pybind11). Supported on Windows and Linux.
Tested on macOS.
The intended usage is for transparent pre- and post-processing tasks specific to FCE. Exporting OBJ is supported in library, importing OBJ is fully supported via script.
Blender Import/Export Add-on: fcecodec_blender
Python extension module: /python/README.md
FCE format documentation: /src/fcelib/fcelib_fcetypes.h
/scripts contains ready-to-use scripts (Obj2Fce, Fce2Obj, etc.)
/scripts/doc_Obj2Fce.md is an OBJ/MTL to FCE
conversion tutorial
- Io: full FCE implementation (FCE3, FCE4, FCE4M) with validation
- Io: decodes/encodes transparently
- Io: exports to Wavefront OBJ
- Scripts: provides Python API
- Get/Set: exposes raw geometry data (vertices, normals, triangles, texcoords)
- Get/Set: exposes attributes (triangle flags, texpages, vert animation flags, colors, dummies, etc.)
- Op: inserts part from another mesh
- Op: changes part order, copies part, merges parts, deletes part
- Op: deletes triangles, vertices
- Stats: print stats
FCE3 specifications taken from [1]. FCE4 specifications are loosely adapted from [1] and [2]. [2] was apparently based on [3]. FCE4M specifications own work.
[1] D. Auroux et al. The unofficial Need For Speed III file format specifications - Version 1.0 [1998]
[2] A. Sadhra NFS4Loader.h via OpenNFS [2015]
[3] Addict NFS4 FCE file format specifications [1999]
fcecodec License: GNU General Public License v2.0+
Website: https://github.com/bfut/fcecodec
Third party licenses
sclpython.h: zlib License
fcecodec scripts: zlib License