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]. Unofficial FCE4M specifications, own work.
[1] D. Auroux et al. (1998) The unofficial Need For Speed III file format specifications - Version 1.0
[2] A. Sadhra (2015) NFS4Loader.h, OpenNFS
[3] Addict (1999) NFS4 FCE file format specifications
fcecodec License: GNU General Public License v2.0+
Website: https://github.com/bfut/fcecodec
Portions copyright, see each source file for more information.