Difference between revisions of "Making New Armor Using NifSkope"

no edit summary
imported>ShadowDancer
(fixed pics)
Tag: Manual revert
 
(12 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{Unfinished}}
{{Update}}
==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.


==STEP 1: What tools you need==
==STEP 1: What tools you need==
Line 8: Line 10:
*To unpack the textures and meshes: [[:Category:Tools: BSA Unpackers|BSA Unpackers]]
*To unpack the textures and meshes: [[:Category:Tools: BSA Unpackers|BSA Unpackers]]


Optional:
==STEP 2: Getting your workspace ready==
*To edit DDS files: [[DDS Tools]]
 
[[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
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, this means you will see the textures in nifscope, instead of completely white meshes.
In Nifscope version 1.0.21 you'll have to go to "Render > Settings...", this will open a new window and then go to the "Rendering" tab.
 
==STEP 3: Loading the armor==
 
Now open a new piece of armor in Nifscope. I like to open the meshes
 
\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!
 
==STEP 4: Adding a piece of armor==
[[Image:Cutandpastetut02.jpg|thumb|right|Copy 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". This will copy the whole NiTriShape. If you expand the NiTriShape (or NiTriStrip), you will see it contains certain data and properties. These will also be copied when using "Copy Branch". If you use "Copy", that specific item will be copied and nothing more.
[[Image:Cutandpastetut03.jpg|thumb|right|Paste Branch]]
Now go to the armor you originally opened and right click the left list and choose "Block > Paste Branch".
 
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.
 
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.
 
==STEP 5: Linking the pauldrons to the skeleton==
===Linking Method 1: Replace===
[[Image:Cutandpastetut05.jpg|thumb|right|NiTriShape]]
To add the piece while removing a piece from the original,
highlight the NiTriShape of the branch you just pasted in, and right click and choose "Block > Copy".
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.
[[Image:Cutandpastetut04.jpg|thumb|right|Paste Over]]
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)
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?  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.  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.


==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
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.


===Linking Method 2: Adding===
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.
[[Image:Cutandpastetut06.jpg|thumb|right|Add Empty Link]]
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". If this option isn't available, you should increase the value of Num Children (can be found just above the Children List) by the amount of armor pieces you have added (or want to add). At first, nothing changed, now click on the button beneath, what seems to be a refresh button (located at the right of the Childrens List). You can also right click the Childrens List and click "Array > Update".
[[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!
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.
===Linking Method 3: Easy Adding===
This is the ZuTheSkunk's method, probably the easiest and most effective of those.
Just as before, open an armor in Nifscope that contains a piece you want to copy. Click the NiTriStrips (or NiTriShape) with the piece to copy and choose "Copy Branch". Now open the armor in which you want the piece copied. Click the NiNode ("0 NiNode") on the top of the list, open it, and click ON HIM to choose option "Paste Branch".
And that's it. No more things to do! Your piece has been added without any problems and should be shown correctly on your character.
==Deleting a piece of armor==
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'.
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.
==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 or 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.


==STEP 3: Playing with stuffz!==
==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.


Now open a new peice of armour in Nifscope. I like to open the meshes
===Removing Bogus Links===
C:/Program Files/Bethesda Softworks/Oblivion/Data/meshes/armor/arenaheavyblue/m/cuirass.nif
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.
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.
You can also do everything at once, by going to 'Spells > Optimize > Remove Bogus Nodes'


Let's say I want to add those super cool Daedric Pauldrons to this arena armour!
===Strippify NiTriShapes===
First load up the Daedric Cuirass in the new window.
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 NiTriStrips. 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'.
Now click on the Pauldrons and you'll notice the list to the left opens up and a NiTriShape gets highlighted.
Right click that NiTriShape and choose "Block > Copy Branch" [[Image:Cutandpastetut02.jpg|thumb|right|Copy Branch]]
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]]
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.
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.


1) To add the piece while removing a piece from the original
===Update Tangent Space===
Highlight the NiTriShape of the branch you just pasted in, and right click and choose "Block > Copy"
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.
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!
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
==It is not working!==
Just like the above, copy the branch of a NiTriShape from a set of armour you like.
(Nifscope version 1.0.21)
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]]
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]]
The piece is magically added into the armour! Super sweet! And there are no junk blocks left over!


If the piece of armor isn't on its place in Oblivion and when trying to watch it in CS (Construction Set) in the Render Window, the CS crashes, then try this:


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.
If you have linked everything correctly (the new piece of armor is in the Childrens list of the "0 NiNode"), make sure the order is also correct.
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.
Your Childrens List is probably like this:
Each armour takes up a space in the game (ie: Cuirass takes up upperbody and arms.)
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.
Non-added NiTriShapes and NiTriStrips
[[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.
Non-added NiNodes


Added pieces.


==Transparency Time==
You should change the order of the list so that all the NiTriShapes and NiTriStrips are at the top of the list and the NiNodes beneath them. You can change the values by double clicking them. Now change the value of the last item in the list (this should be an added piece) to match the value of the first NiNode (the one that comes immidiatly after the Non-added NiTriShapes). No change the value of the first NiNode to match the value of the added armor.


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
Your list should now look like this:


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.
Non-added NiTriShapes and NiTriStrips


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)
Added pieces.


First click on the piece you want to add transparency. The left list expands to show it's NiTriShape.
Non-added NiNodes
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.
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.
==See Also==
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
*[[Working With Nifs 101 : An Introduction]]
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.
*[[NifSkope Alchemy]]
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


Here's what my dude looks like with no chest piece on his ebony armour!
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!
[[Category:Tutorials]]
[[Category:NifSkope Tutorials]]
Anonymous user