nifly by ousnius
C NIF library for the NetImmerse File Format (NetImmerse, Gamebryo, Creation Engine).
Created with a clean-room design.
Also check out NiflySharp for a native C# / .NET version of nifly that uses source generation based on nifxml.
- Reading and writing NIF files (NetImmerse, Gamebryo, Creation Engine)
- Cross platform (Windows, Linux, macOS)
- No external dependencies (tests optional)
- Includes basic functionality often used for 3D meshes
- NIF blocks unknown to the library are kept untouched
- Lots of other helper functions
- Current file support:
- Fallout 3
- Fallout: New Vegas
- Fallout 4
- Fallout 4 VR
- Fallout 76
- The Elder Scrolls IV: Oblivion
- The Elder Scrolls V: Skyrim
- The Elder Scrolls V: Skyrim Special Edition
- The Elder Scrolls V: Skyrim VR
- Starfield (initial support, no mesh/morph files)
- C 17 compiler support required
- Use the included CMake lists for building - or simply include the headers and source in your project
- (optional) To get Catch2 for running the tests, install its CMake package (or get it via vcpkg):
git clone -b v2.x https://github.com/catchorg/Catch2.git
cd Catch2
cmake -Bbuild -H. -DBUILD_TESTING=OFF
cmake --build build/ --target install #with admin elevation (or sudo) depending on your cmake prefix path
- half - IEEE 754-based half-precision floating point library (v1.12.0) for 16-bit floats
- Miniball (v3.0) for generating bounding spheres
- Catch2 (v2.x branch) for running tests