More specifically, NifSE uses the NifTools' incredible "C++ library for loading, modifying, and exporting NIF files," NifLib, to create new functions through OBSE's plug-in API. Much thanks to both the OBSE and NifTools teams for their hard work that has made this possible.
For v1.0 we have a staggering number of new functions, plus an entirely new backbone system for storing, manipulating, and saving nif files. There is no more hard-drive bloat, as the nif files are only very briefly written to disk for Oblivion to read when it needs them, and deleted again as soon as it is finished. Nifs are saved in the .obse co-save file, and recreated as needed. The old functions are both now considered deprecated (as is the undocumented function NifGetBackShield, which was never supported in the first place), but backwards compatibility has been maintained, and the old functions have been somewhat updated to use the new system and therefore no longer clutter the user's harddrive.
Downloads
- http://tesalliance.org/forums/index.php?/files/file/917-nifse/ (NifSE v1.1, v1.0 example plugin)
- http://tesnexus.com/downloads/file.php?id=21292 (NifSE v1.1, v1.0 example plugin)
- http://code.google.com/p/nifse/ (NifSE v1.1, v1.0 example plugin, source code)
Changelog (v1.1)
- Fixed crash if a BSA has a '%' in the filename.
- See NifSE changelog.txt included in download archive
Known Bugs (v1.1)
- A bug in Niflib prevents it from correctly writing Skin Partition Blocks (an important part of rigged meshes, such as clothing or armor) that use strips instead of triangles. Amorillia of the NifTools team and I are working on this.
- A bug in NiNodeCopyChild causes it to fail when the desired branch-to-copy contains references to blocks outside of the branch. This happens most often with skins (these skins seem to be the bane of NifSE's existence; they also caused the infamous sheathe-bug that caused problems from the first version of NifScript), which again, are an important part of rigged meshes.
- As a result of these two bugs, NifSE should not be used on rigged meshes. A bugfix v1.2 will be available ASAP to fix these bugs. Unfortunately, this will require modifications to Niflib that I cannot do myself.
- Beta 3 broke backwards-compatibility with functions that take arrays as arguments; these must now be compiled using OBSE v0020's compiler override. This means mods that were designed for beta 2 will not work, though only a little effort should be necessary to make them work. For this reason,
- To use Deadly Reflex 6, you must use the http://www.tesnexus.com/downloads/file.php?id=40336.
To Do List (roughly in order of when each is most likely to be implemented)
- Future versions
- Functions for working with collision blocks themselves.
- Get/Set Vertex colors
- Get/Set UV coordinates
- Animations
- Functions for working with collision blocks themselves.
Please post any ideas you have for the utility here!