File information

Last updated

Original upload

Created by

Colourless

Uploaded by

Colourless

Virus scan

Safe to use

About this mod

This is the tool i wrote and used to generate the dismember partitionion for my nude models http://www.fallout3nexus.com/downloads/file.php?id=982

Permissions and credits
Nifty V1.0
----------
By Colourless

Nifty is a program to automagically update Fallout 3 models to fix up skinning problems after a model has been modified. In particular it updates vertex weights and model paritioning so they match an existing model.

For Fallout 3 model partitioing is extremely important. If the paritioning is incorrect, which it will be if you use Nifskope and probably all other Nif tool to generate them, then VATS and Dismemberment will not work properly.

Nifty is specifically designed to allow updating existing models and still have them work in game properly. That said, it could be used to automagically skin an entirely new model, IF the model doesn't vary too greatly from the models shipped with the game.


License
-------
Nifty is provided as is with no expressed or implied warrenties. Nifty uses the Niflib NIF File Format Library. Nifty can be used and distributed provided you do not violate the Niflib licence. The Niflib licence is in niflib_licence.txt


Usage
-----
nifty list <modified nif><br> - List shapes<br><br>nifty reskin <modified nif> <shape index name> <original nif><br> - Automagically fully reskin a shape. If a required weight or partition is not<br><span class="wbbtab"></span>specifically found for a vert or tri, nifty will attempt to calculate<br><span class="wbbtab"></span>reasonable values for them. (For now it just grabs the nearest)<br><br>nifty fixparts <modified nif> <shape index name> <original nif><br> - Automagically fix up the paritition of a shape to get dismemberment working<br><span class="wbbtab"></span>on a shape that has already been properly skinned<br><br><br>Technical Details<br>-----------------<br>When automagically regenerating the skinning, for each vertex in the model being fixed, Nifty uses the nearest vertex in an existing model to get the bones and weights needed.<br><br>When calculating partitions, for each triangle in the model being fixed, Nifty get the parition information from triangle that has nearest centre to one being allocated. Nifty masks the parition types to match the shape currently being worked on.<br><br><br>Partition Number Reference<br>--------------------------<br>As a reference these are the partition numbers used by Fallout 3 used on a biped and what they mean. Haven't examined non bipeds to see if there are differences.<br><br>0: Body<br><br>Dismemberables Parts of Limbs:<br>1: Head (you wont need this for people, the head is a separate model)<br>3: Left Arm<br>5: Right Arm<br>7: Left Leg<br>10: Right Leg<br><br>Meat left on limb after dismemberment:<br>101: Head <br>103: Left Arm <br>105: Right Arm <br>107: Left Leg<br>110: Right Leg<br><br>Meat left on body after dismemberment:<br>201: Head <br>203: Left Arm <br>205: Right Arm <br>207: Left Leg<br>210: Right Leg<br><br>Non Dismemberable Parts of Limbs (you need this for things to look good in VATS):<br>1000: Head (you wont need this for people, the head is a separate model)<br>3000: Left Arm<br>5000: Right Arm<br>7000: Left Leg<br>10000: Right Leg<br><br>I have no real idea what the unknown short in the paritions is. It looks it is some flags. Bit 1 is never set for 'meats' while it is always set for other partitions. I haven't noticed any pattern with Bit 8 however.<br><br>Hint to Defining your own partitions<br>------------------------------------<br><br>This is awkward but its a way of defining your own partition. If this is hard to understand, I'm sorry, but I'm not planning on doing anything else with this, and I don't particularly plan on supporting this piece of software. Hopefully someone else either uses this code to make something more user friendly or simialr functionality gets integrated into the niftools package.<br><br>* In your favourite nif editing program open your model.<br>* Split the mesh into individual trishapes representing the various parts from the above list you need.<br>* Save those into a new nif. <br>* Open the new nif in nifskope. to make sure that your model is correct. Normal human model will probably have 19 different parts. 1 Trishape for the Body, 2 Trishape for each limb, 2 Trishape for the meat caps for each limb and 2 Trishapes for the meat caps for the head<br>* Probably the best thing to do here is to use nifty to copy the paritioning from an existing model from the game. It doesn't matter which model. Nifty will make sure that the model has BSDismemberSkinInstances that work properly even if the actual partitions are complete nonsense. Run nifty like this: "nifty fixparts <your just created nif> -1 <some nif from the game>". <br>* Open the nif modified by nifty in nifskope. <br>* Edit the BSDismemberSkinInstance for each TriShape setting the body part numbers for the paritions to the number from the list above. Specifically here click on BSDismemberSkinInstance in the node tree for each trishape. In "Block Details" expand "Partitions" completely and set every "Body Part" to the correct value for that shape. <br>* Save that model out<br>* Try the model in the game and examine using vats to see if partitioning is ok. If its not ok, uh, sorry can't help you here. If it is correct follow on.<br>* Now its time to copy the partitioning back to your original model. Use "nifty fixparts <your original nif> -1 <your new correctly partitioined nif>" to fix all the trishapes in the original nif. <br>* Your nif should now work properly in game with partitioing working exactly as you want with no seams. If there is something wrong, uh, again, sorry can't help you out here.<br><br>Something a little extra, if your original model doens't have any partitioing information it is vitally important you use the following guidelines:<br>* All meat caps trishapes must have the word 'meat' in their name. <br>* All meat caps trishapes on the body must have 'meat' and 'body' in their name. <br>* You must not put 'meat' in the name of any trishape that is not a meat cap.<br>* Do not attempt to mix different types of meatcaps in the one trishape.</your></your></some></your></original></shape></modified></original></shape></modified></modified>