Skip to main content
GameDev.net gamedev.net
🔒 Locked

NifTools: Looking for Maya/3DSM Plug-In Writers & File Format Decoders

Started by Shon Oct 26, 2005 at 11:56 PM 6 replies 2.7k views
Original Post
Shon
Shon
Team name: NIF File Format Library and Tools (NifTools) Project Project name: NIF File Format Documentation - Decoding the NIF file format itself and storing it in a database that anyone can browse at our website. Niflib - Our C++ library for loading, modifying, and exporting NIF files. Has a Python wrapper using SWIG. 3D Package Plug-ins - Enable various 3D packages to import and/or export NIF files. So far Blender and Maya 6.5 support has been started, but we would like to support more. A chart showing what each plug-in currently supports is on our home page. Niflyze - A command-line utility that analyzes one or more NIF files and outputs a text file that explains their contents in English. Brief description: Our aim is to build software that enables users to create and edit content stored in the NetImmerse File Format. These NIF files store the 3D models used in several popular PC games based on the NetImmerse/Gamebryo game engine. So far, our efforts have principally been focused on NIF version 4.0.0.2; the version used by TES3: Morrowind. We plan to work on Civilization IV and TES4: Oblivion when it is released, as well as other versions of the format eventually. We do not encourage violation of EULAs and so therefore we rely on examining files produced by the officially released exporters only. We do not support reverse-engineering of game binaries or using the copyrighted material from one game as a component of a Mod for another.. Target aim: Open Source Freeware - BSD license. Compensation: This is a volunteer project to create free software. Donations are also not accepted. Technology: Maya uses C++ and Blender uses Python. Our web-based NIF file documentation system is written in PHP. NIFlib, the library we hope will form the core of most future plug-ins, is written in C++ (including exceptions, abstract interfaces, and multiple inheritance). Preliminary documentation has been written for the library. We are also currently maintaining a Python wrapper for the library using SWIG.. Talent needed: We're looking for anyone who has something to offer. Namely:
  • People skilled at hex-editing file formats and figuring out what they store.
  • People who have background with 3D game engines/math and might offer insight into what unknown values could mean.
  • People who have one of the popular 3D modeling packages, either free or commercial, and are willing and able to write a translator plug-in for it.
  • People who have created a plug-in for such a package before and could offer advice, guidance, and/or help with one of the currently active plug-in projects (Maya, Blender)
  • People who have a working copy of a commercial NIF exporter that can create sets of files (an original 3DS Max file and an exported NIF file) for comparison.
Note, you certainly don't have to be all these things at once! Team structure: Founder/Admin: Mannon - Brought us all together, does admin type stuff on the forum and SourceForge site. Been here since the beginning. Currently active developers: Shon (me) - Niflib, Niflyze, and the Maya Plugin (I could use some help!). Here since April. Brandano(longer than me), amorilia(June), m4444x(September) - Blender Plug-in. amorilia also wrote our database-driven online documentation system. There are also many helpful people on our forum and on our old mailing group who have contributed immeasurably to our efforts. I wish I could list them all. Developers also have come and gone, but the above are the ones currently active. Website: http://niftools.sf.net Contacts: Please come post on our forum if you're interested in helping out! You may also e-mail me directly at: shon -at- liztail -dot- com. Additional Info: Please see our SourceForge site for more details! Here are some direct links to content of interest: Home Page Forum SourceForge Project Downloads NIF File Format Browser Niflib Documentation Screenshots Feedback: ENCOURAGING ONLY --Shon [Edited by - Shon on October 28, 2005 3:41:42 PM]
--Shon
mirex
mirex
Interesting, just my field. I'll look on your forums.
Shon
Shon
Great! =)

--Shon
--Shon
mirex
mirex
Heh, I'll parasite on your thread a little ... if there is someone interested in the 3D file analyse / engineering he could also join our File Format analysis boards ... http://ffab.mypage.sk cheers
Shon
Shon
I guess there's no harm ;P Hopefully they'll be interested in both =)

As an update, I've added Civilization IV to the description above. Some other popular games that use NIF files are Dark Ages of Camelot, Zoo Tycoon, and Freedom Force. CivIV already has a big modding community built up from the previous moddable Civ games, and Elder Scrolls and Freedom Force have large communities as well, so while we don't accept donations, there are a lot of people interested in what we're doing =)

I also changed the title a bit to attract the eye of people who know how to write plug-ins. We have come a long way already, at least on Morrowind's version of the format, and I could really use some help with the Maya plug-in. Someone willing to start a 3DS Max plug-in would be really great as well =)

--Shon
--Shon
PlayerX
PlayerX
You've already mentioned you've concentrated on one particular version of the NIF file format, but you'll probably want to mark your file format browser with the version it is listing because each section of a NIF file varies from version to version. An example is the NiTriShapeData section. Prior to versions 4.1.0.0 this section used 4-byte booleans to indicate data items included, but after that these became single byte booleans.

NiTexturingProperty is even worse, it changed format at 4.1.0.0 and again at 4.1.0.15.

Ah the joys of trying to document a proprietary file format. :)
Shon
Shon
Have you been researching the format too? =)

We do have plans to figure out how to include different versions in the database, but you're right that we should have the version number that's currently in there marked. We're hoping that it doesn't change so much that the inheritance structure is different from version. If that's true, then we should be able to put a field for the expiration and start of each attribute.

--Shon
--Shon
Shon
Shon
As an update to the version not being specified - Amorilia has updated our file format documentation system so that we can start entering data about multiple versions of NIF files =) You can click links along the top to select which version you want to look at. Right now most of the attributes are still set to show up the same in all versions, but we can now clamp their existence to a starting and ending version number. So as we test newer versions and find that changes have been made, they can now be reflected in our doc system =)
--Shon

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.