Skip to content

bfut/fcecodec

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fcecodec

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 header-only library written in C89. Python bindings are written in C++ (pybind11). Supported on Windows and Linux. Tested on macOS.

Installation / Documentation

Python extension module: /python/README.md
FCE format documentation: /src/fcelib/fcelib_fcetypes.h

Usage

/scripts contains ready-to-use scripts (Obj2Fce, Fce2Obj, etc.)
/scripts/doc_Obj2Fce.md is an OBJ/MTL to FCE conversion tutorial

fcecodec-example.ipynb fcecodec-example.ipynb

Key features

  • 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

References

FCE3 specifications taken from [1]. FCE4 specifications are loosely adapted from [1] and [2]. [2] was apparently based on [3].

[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]

Information

fcecodec License: GNU General Public License v2.0+
Website: https://github.com/bfut/fcecodec

About

FCE decoder/encoder - Python module in C/C++. Modern Need For Speed 3 & High Stakes car modding tool.

Resources

License

Stars

Watchers

Forks

Packages

No packages published