Difference between revisions of "Making New Armor Using NifSkope"

formatting, rewriting etc, big update
imported>ShadowDancer
(fixed pics)
imported>Qazaaq
(formatting, rewriting etc, big update)
Line 1: Line 1:
{{Unfinished}}
{{Unfinished}}
==Introduction==
In this tutorial you'll create new armor by copying and pasting pieces of existing armors. For this we'll use the program [[NifSkope]]. At the end of this tutorial you'll be able to copy and paste pieces of meshes in NifSkope, delete parts and make parts of a mesh transparent. On the right is a simple armor made by mixing and matching pieces.


==STEP 1: What tools you need==
==STEP 1: What tools you need==
Line 9: Line 12:


Optional:
Optional:
*To edit DDS files: [[DDS Tools]]
*For transparency you need to edit DDS files: [[DDS Tools]]
 


==STEP 2: Getting your workspace ready==
==STEP 2: Getting your workspace ready==


[[Image:Cutandpastetut01.jpg|thumb|right|Setting the Texture Folder]]It's a very good idea to put all your textures and meshes related to body, armour and clothing into the Oblivion Data folder. Usually pathed at C:\Program Files\Bethesda Softworks\Oblivion\Data
[[Image:Cutandpastetut01.jpg|thumb|right|Setting the Texture Folder]]It's a very good idea to put all your textures and meshes related to body, armor and clothing into the Oblivion Data folder. Usually pathed at
Then you open up Nifscope and then at the top you go to "Render>Set Texture Folder"  and point it to the Oblivion Data folder. That way it won't have any problems finding the textures for meshes you are opening.
C:\Program Files\Bethesda Softworks\Oblivion\Data
Then you open up Nifskope and then at the top you go to "Render>Set Texture Folder"  and point it to the Oblivion Data folder. That way it won't have any problems finding the textures for meshes you are opening.


==STEP 3: Loading the armor==


Now open a new piece of armor in Nifscope. I like to open the meshes


==STEP 3: Playing with stuffz!==
\meshes\armor\arenaheavyblue\m\cuirass.nif
\meshes\armor\arenaheavyblue\f\cuirass.nif
because they have alot of pieces in them already, and they have all the skeletal nodes that armor pieces may need to link to!
[[Image:Cutandpastetut02.jpg|thumb|right|Copy Branch]]
==STEP 4: Adding a piece of armor==
[[Image:Cutandpastetut03.jpg|thumb|right|Paste Branch]]
Let's say I want to add those super cool Daedric Pauldrons to this arena armor.
First load up the Daedric Cuirass in the new window, either by double clicking the file or by going to File > New Window and loading the Pauldrons.
Now click on the Pauldrons and you'll notice the list to the left opens up and a NiTriShape block is highlighted. Right click that NiTriShape and choose "Block > Copy Branch".
Now go to the armor you originally opened and right click the left list and choose "Paste Branch".


Now open a new peice of armour in Nifscope. I like to open the meshes
Sometimes, it will give you an error when you try and copy the branch 'cannot link to node 'XXXXXX'. That's because the armors are using the same nodes, but they are named just a wee bit different. Just rename the most similar node in your original armor to the name it's looking for. e.g.: Biped Neck01 to Biped Neck1. It will paste the branch in properly now. And if you are paranoid you can always change the node's name back after you are done.
C:/Program Files/Bethesda Softworks/Oblivion/Data/meshes/armor/arenaheavyblue/m/cuirass.nif
C:/Program Files/Bethesda Softworks/Oblivion/Data/meshes/armor/arenaheavyblue/f/cuirass.nif
because they have alot of pieces in them already, and they have all the skeletal nodes that armour pieces may need to link to!


Now we need to go to "File > New Window", to load up another armour. If you open up another armour just by double clicking the icons, it won't save what you copy into the right clipboard and it can't paste the pieces from one file to another, so always use "File > New Window" to load another mesh.
The armor piece is in the file now, but that's not good enough. We need to make it part of the actual armor, by linking it to the skeleton. It's super easy, and we have 2 ways to do it.


Let's say I want to add those super cool Daedric Pauldrons to this arena armour!
==STEP 5: Linking the pauldrons to the skeleton==
First load up the Daedric Cuirass in the new window.
[[Image:Cutandpastetut04.jpg|thumb|right|Paste Over]]
Now click on the Pauldrons and you'll notice the list to the left opens up and a NiTriShape gets highlighted.
===Linking Method 1===
Right click that NiTriShape and choose "Block > Copy Branch" [[Image:Cutandpastetut02.jpg|thumb|right|Copy Branch]]
To add the piece while removing a piece from the original
Now go to the armour you originally opened and right click the left list and choose "Paste Branch" [[Image:Cutandpastetut03.jpg|thumb|right|Paste Branch]]
Highlight the NiTriShape of the branch you just pasted in, and right click and choose "Block > Copy".
Sometimes, it will give you an error when you try and copy the branch 'cannot link to node 'XXXXXX'. That's because the armours are using the same nodes, but they are named just a wee bit different. Just rename the most similar node in your original armour to the name it's looking for. ei: Biped Neck01 to Biped Neck1. It will paste the branch in properly now. And if you are paranoid you can always change the node's name back after you are done.
[[Image:Cutandpastetut05.jpg|thumb|right|NiTriShape]]
The armour pieces is in the file now, but that's not good enough. We need to make it part of the actual armour, by linking it to the skeleton. It's super easy, and we have 2 ways to do it.
Then click a piece of the armor you wish to sacrifice for this piece. The left list will expand showing the NiTriShape that piece belongs to. Just right click on that NiTriShape and choose "Block > Paste Over" (paste over only works if you are trying to paste over a block that's the same type as the block you copied.


1) To add the piece while removing a piece from the original
If you are trying to paste a NiTriShape over a NiTriStrip, just right click the NiTriStrip and choose 'Mesh > Triangulate' to turn it into a NiTriShape)  
Highlight the NiTriShape of the branch you just pasted in, and right click and choose "Block > Copy"
Then click a piece of the armour you wish to sacrifice for this piece. The left list will expand showing the NiTriShape that piece belongs to. Just right click on that NiTriShape and choose "Block > Paste Over" (paste over only works if you are trying to paste over a block that's the same type as the block you copied. If you are trying to paste a NiTriShape over a NiTriStrip, just right click the NiTriStrip and choose 'Mesh > Triangulate' to turn it into a NiTriShape) [[Image:Cutandpastetut04.jpg|thumb|right|Paste Over]]
Boom! You're new piece is in the armour and your original is Zapp'd!
Boom! You're new piece is in the armour and your original is Zapp'd!
See how my chest piece is gone and the pauldrons are on the shoulders? [[Image:Cutandpastetut05.jpg|thumb|right|NiTriShape]] I chose to replace the chest with the pauldrons. The pieces will always be placed in the right area when pasted in this way.
After the procedure you'll notice if you collapse the left list, there are all these blocks left at the bottom. [[Image:Cutandpastetut05.jpg|thumb|right|NiTriShape]] They aren't being used and to avoid clutter should be deleted. Just make sure to collapse the main NiNode so you don't delete anything in there by accident.


2) This is throttlekitty's way to add new pieces without sacrificing one! ohmy.gif
See how my chest piece is gone and the pauldrons are on the shoulders?  I chose to replace the chest with the pauldrons. The pieces will always be placed in the right area when pasted in this way.
Just like the above, copy the branch of a NiTriShape from a set of armour you like.
After the procedure you'll notice if you collapse the left list, there are all these blocks left at the bottom.  They aren't being used and to avoid clutter should be deleted. Just make sure to collapse the main NiNode so you don't delete anything in there by accident.
Now paste that branch in, just the same as above.
 
Now we need to show the block details. Go to "View > Block Details" to get a whole whack of info at the bottom.
 
Now click on the original armour's main NiNode and look at the details at the bottom. You need to find the name Children and right click on it, then choose "Array > Add Empty Link" [[Image:Cutandpastetut06.jpg|thumb|right|Add Empty Link]]
[[Image:Cutandpastetut06.jpg|thumb|right|Add Empty Link]]
You'll see that a list of indices expands and one at the bottom named 'none' is highlighted. Just double click 'none' and type the number of the NiTriShape's Branch you just pasted in. [[Image:Cutandpastetut07.jpg|thumb|right|Linking NiTriShape]]
===Linking Method 2===
The piece is magically added into the armour! Super sweet! And there are no junk blocks left over!
This is throttlekitty's way to add new pieces without sacrificing one! Just like the above, copy the branch of a NiTriShape from a set of armor you like. And paste that branch in, just the same as above.
 
Now we need to show the block details. Go to "View > Block Details" to get a whole whack of info at the bottom. Click on the original armor's main NiNode and look at the details at the bottom. You need to find the name Children and right click on it, then choose "Array > Add Empty Link".
 
[[Image:Cutandpastetut07.jpg|thumb|right|Linking NiTriShape]]
You'll see that a list of indices expands and one at the bottom named 'none' is highlighted. Just double click 'none' and type the number of the NiTriShape's Branch you just pasted in. The piece is magically added into the armor! Super sweet! And there are no junk blocks left over!




You can also delete pieces you want from armours too. Just click the piece of armour you want to delete and you'll see a NiTriShape get highlighted on the list to the left. Right click that NiTriShape and choose 'Block > Remove'. This will cause a bunch of junk blocks to appear at the bottom. Just like the first method, collapse the main NiNode and delete those junk blocks. It doesn't need them anymore, they are just clutter.
Now you're done with pasting armor, you've successfully merged two armor pieces. But you're not done yet, first of all you need to make sure your armor doesn't crash the game. That is explained below. But first this, deleting a piece of armor.
After you have finsihed mixing and matching armour pieces, click on the main NiNode and go to the block details at the bottom. Remember the section in there called Children?
If we right click on that and choose 'Array > Remove Bogus Links' it will delete any bogus indices the main NiNode is looking for that don't exist anymore. I hope this helps with any crashing issues. I'm going to keep playing with that to make sure.


Not only can this all be done with armour, but it can be done with body parts, and clothing.
==Deleting a piece of armor==
Each armour takes up a space in the game (ie: Cuirass takes up upperbody and arms.)
Deleting pieces is easy, just click the piece of armor you want to delete and you'll see a NiTriShape get highlighted on the list to the left. Right click that NiTriShape and choose 'Block > Remove'.
If your new armour doesn't have everypart of the upperbody and arms covered, you will need to add either the arms and upperbody meshes in, or you can open other armours and use little pieces of the body that they have to fill in the gaps. If you don't have all the gaps filled, your armour is going to have an invisible person inside of parts of it! ohmy.gif
Don't worry about skin colour on the body parts you put in. The game will use the actors skin colour to colour those pieces properly!


Here is a simple armour I made by mixing and matching pieces.
This will cause a bunch of junk blocks to appear at the bottom. So instead, choose 'Block > Remove Branch'. This removes the block you right clicked on and all the children.
[[Image:Cutandpastetut08.jpg|thumb|right|NiTriShape]]


Sometimes when you put different armour pieces together you will get parts clipping through other parts. You can use transparency to hide those parts poking out.
==Filling up the gaps==
Each armor takes up a space in the game (e.g.: the cuirass takes up upperbody and arms). That part of the body is removed when the armor is equipped. If your new armor doesn't have every part of the upper body and arms covered, you will need to add either the arms and upper body meshes in, or you can open other armors and use little pieces of the body that they have to fill in the gaps.


If you don't have all the gaps filled, your armor is going to have an invisible person inside of parts of it! Don't worry about skin color on the body parts you put in. The game will use the actors skin color to color those pieces properly.
==Optimizing the file==
There are a number of things you can do to avoid crashes and make to make sure the armor doesn't lag the game. Not all of these are necessary, but they are recommended.
===Removing Bogus Links===
After you have finished mixing and matching armor pieces, click on the main NiNode and go to the block details at the bottom. Remember the section in there called Children? If we right click on that and choose 'Array > Remove Bogus Links' it will delete any bogus indices the main NiNode is looking for that don't exist anymore. Not only can this all be done with armor, but it can be done with body parts, and clothing.
You can also do everything at once, by going to 'Spells > Optimize > Remove Bogus Nodes'
===Strippify NiTriShapes===
NiTriShapes are less efficient than NiTriStrips so to make sure your armor runs as efficient as possible you'll have to convert all NiTriShapes to NiTriShapes. You can do that individually by right clicking a NiTriShape and going to 'Mesh > Strippify'. But you can also strippify them all at once by going to 'Spells > Optimize > Strippify all TriShapes'.
===Update Tangent Space===
Here I will only say you need to do this, you can read more about it in [[Working_With_Nifs_201_:_Meshes%2C_Data%2C_and_you#The_Extra_Data|Working with Nifs 201 - The Extra Data]]. Go to 'Spells > Batch > Update All Tangent Spaces' to update all the tangent spaces in the file. This is to avoid crashes among other things.


==Transparency Time==
==Transparency Time==
Sometimes when you put different armor pieces together you will get parts clipping through other parts. You can use transparency to hide those parts poking out. To apply transparency to pieces that you either want to avoid poking through other pieces, or you just want to make a V-Neck Sweater or something silly.


Now to apply transparency to pieces that you either want to avoid poking through other pieces, or you just want to make a V-Neck Sweater or something silly. ohmy.gif
First use the method above to add a body mesh underneath, if your armor should have some skin under the parts you are going to cut out. Otherwise you're going to be able to see through the person in those areas.


First use the methods above to add a body mesh underneath, if your armour should have some skin under the parts you are going to cut out. Otherwise you're going to be able to see through the person in those areas.
First click on the piece you want to add transparency. The left list expands to show it's NiTriShape. Right click that and choose 'Node > Attach Property' and pick NiAlphaProperty. Boom! A new block appears called NiAlphaProperty.


This is how to apply transparency to a piece (you'll need photoshop and that .dds plugin I mentioned up top, in order to control transparency)
http://img200.imageshack.us/img200/1032/tut99nw.jpg


First click on the piece you want to add transparency. The left list expands to show it's NiTriShape.
Right click NiAlphaProperty and choose 'Flags'. Set that so that 'enable testing' is checked off and 'Alpha Test Function' is changed to 'greater' or 'always'.
Right click that and choose 'Node > Attach Property' and pick NiAlphaProperty.
Boom! A new block appears called NiAlphaProperty. http://img200.imageshack.us/img200/1032/tut99nw.jpg
Right click NiAlphaProperty and choose 'Flags'.
Set that so that 'enable testing' is checked off and 'Alpha Test Function' is changed to 'greater' or 'always'. http://img167.imageshack.us/img167/7696/tut101gc.jpg
Now that piece has transparency properties which are controlled by it's texture map's alpha channel.
It's best to duplicate that texture map the piece is using and rename it. Then point to the new texture by opening up the block NiTexturingProperty within the NiTriShape of that piece. You'll see a place to point to a new file name there.


Now to apply transparency.
http://img167.imageshack.us/img167/7696/tut101gc.jpg
One good thing to do is right click on the pieces NiTriShape and choose 'Texture > Export Template'. That will give you a template map you can overlay onto the texture map to make it a little easier to figure out where to add transparency. http://img186.imageshack.us/img186/5205/tut116ib.jpg


Now open up the texture map and the template map (if you made one) in photoshop. Put the template map over the texture and set it's 'Layer Style > Blending Properties' to Overlay.
Now that piece has transparency properties which are controlled by it's texture map's alpha channel. It's best to duplicate that texture map the piece is using and rename it. Then point to the new texture by opening up the block NiTexturingProperty within the NiTriShape of that piece. You'll see a place to point to a new file name there.
You may need to resize the template map to the same dimensions as the texture first. You'll get an image like this. http://img224.imageshack.us/img224/3967/tut128fx.jpg
 
Now you can select the areas you want to be transparent. Use whatever tool you like, I prefer the polygonal lasso, but I'm a nutcase.
Now to apply transparency. One good thing to do is right click on the pieces NiTriShape and choose 'Texture > Export Template'. That will give you a template map you can overlay onto the texture map to make it a little easier to figure out where to add transparency.
When you've selected the areas you want to be transparent, click on channels and go to the alpha channel. It should be all white, you want to make just the areas that you want tranparent black, so use the selection you made to blacken those areas (you can use shades of gray to make parts semi-tranparent too).
 
Here's my alpha channel to cut the chest part out (I've overlapped it onto my texture map to show you better what parts are where... http://img170.imageshack.us/img170/3899/tut123ib.jpg
http://img186.imageshack.us/img186/5205/tut116ib.jpg
 
Now open up the texture map and the template map (if you made one) in photoshop. Put the template map over the texture and set it's 'Layer Style > Blending Properties' to Overlay. You may need to resize the template map to the same dimensions as the texture first. You'll get an image like this.
 
http://img224.imageshack.us/img224/3967/tut128fx.jpg
 
Now you can select the areas you want to be transparent. Use whatever tool you like, I prefer the polygonal lasso, but I'm a nut case.
When you've selected the areas you want to be transparent, click on channels and go to the alpha channel. It should be all white, you want to make just the areas that you want transparent black, so use the selection you made to blacken those areas (you can use shades of gray to make parts semi-transparent too).
Here's my alpha channel to cut the chest part out (I've overlapped it onto my texture map to show you better what parts are where...
 
http://img170.imageshack.us/img170/3899/tut123ib.jpg
 
Here's what my dude looks like with no chest piece on his ebony armor!


Here's what my dude looks like with no chest piece on his ebony armour!
http://img204.imageshack.us/img204/6834/te...garmour29yj.jpg
http://img204.imageshack.us/img204/6834/te...garmour29yj.jpg


It can be very tricky to do, but it takes practice and patience. Stick with it and it can be really fun!
It can be very tricky to do, but it takes practice and patience. Stick with it and it can be really fun!
==See Also==
*[[Working With Nifs 101 : An Introduction]]
*[[NifSkope Alchemy]]
Anonymous user