NifSkope/Modeling Tutorial: Fixing the armor incorrectly displayed in 1st person

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search

Let's say that you are making a new armor or want to change some NPC-only piece of armor to be usable by player. The examples of the NPC-only armors are Mythic Dawn's armor (easy example) and Syl's dress from SI (advanced example). If you ever tried to make them "playable" (i.e. usable by player) without changing their meshes, then you probably noticed weird things happening when you switched to 1st person view - invisible hands/arms, or parts of the armor clipping through the screen when using a bow for example. This tutorial shows how to fix this kind of thing.

Tools used in this tutorial


Requirements[edit | edit source]

  • A .nif file of the armor you want to edit. It doesn't matter is it custom made or is it some vanilla one extracted from the game files.
  • BSA Unpacker (if you want to edit the vanilla armor).
  • NifSkope
  • Blender (only necessary for the advanced part).
  • Shivering Isles expansion pack (only if you want to use Syl's dress from the Advanced tutorial).

Note that while this tutorial is intended to be possibly understandable even for a complete newbie, it will be certainly helpful if you already have the basic knowledge of the NifSkope and (optionally) Blender.

Tutorial[edit | edit source]

This tutorial assumes that you have a .nif file of your armor. If you don't, and you want to edit some vanilla armor, then you need to use BSA Unpacker to extract it from the BSA files.

Basic tutorial (when only NifSkope is necessary)[edit | edit source]

For the basic tutorial, we will use vanilla Mythic Dawn armor as an example; you can extract it from the "Oblivion - meshes.bsa" in your Oblivion\Data folder, it will be at "meshes\armor\mythicdawn". Open the "mythicdawnm.nif" in NifSkope.

Now let's take a look on the list seen on the left; don't worry if the armor is completely white, textures will be properly displayed in-game. Click on the "+" next to the "0 NiNode". Now you can see a bunch of "NiTriShape" things with "UpperBody" on the right. Each NiTriShape (or NiTriStrips) represents some part of the mesh, meaning parts of the armor in this case. Now, if you're wondering why is the armor invisible in the 1st person, then you just got the answer: all of these NiTriShapes are called "UpperBody".

Why does it matter? It appears that the game is programmed to always hide all NiTriShapes/NiTriStrips called "UpperBody" (or "UpperBody:X", where X is a number) when player switches to 1st person view. When all parts of the armor are called that way, then it means that the entire armor will be rendered invisible in this view!

It applies only to "UpperBody" and "UpperBody:X". If a NiTriShape/NiTriStrips is called in any other way, like "LowerBody", "Arms", "Foot", "Hand" or e.g. "MysteriousLittleSheep", then it will be displayed in the 1st person no matter what. If you were using some custom made armor and noticed that the pauldrons are clipping through the screen, then it's most likely that they are NOT called "UpperBody" in NifSkope.

Now, if you want to make the hands visible in the 1st person view, you need to change the names of their respective NiTriShapes to anything other than "UpperBody" (naming them "Arms" is recommended). Take a look on the render window, i.e. the part where the armor is shown. You can navigate in it by L-clicking somewhere and moving the mouse while keeping the button pressed; you can zoom in and out by using scroll button; it can also be helpful to move the mouse around while keeping the scroll button pressed. You need to L-click on the arms or hands. You will see that it's now covered with white net, and some particular NiTriShape is highlighted - that way you learned which NiTriShape is responsive for that part of the mesh. You could also do it by L-clicking on the NiTriShapes from the list and checking which part of the armor gets covered with white net.

Now, all you have to do is to double-click on the "UpperBody" and change this word into something else - press Enter or click anywhere once you've done it. Since the arms are in this case divided into three parts (forearm, bracer and the hand), you need to rename all of their NiTriShapes in order to properly fix the armor. Now save the armor. That's it - now the arms are properly displayed in the 1st person view!

In short[edit | edit source]

If a NiTriShape/NiTriStrips is called "UpperBody" or "UpperBody:X" (where X is a number), then that NiTriShape/NiTriStrips will NOT be displayed in the 1st person view, while all others WILL be. In order to make arms and hands shown in the 1st person and keep everything else hidden, you need to name arms/hands "Arms", "Hands" or just anything other than "UpperBody", while the parts meant to be hidden must be called "UpperBody" or "UpperBody:X".

Advanced tutorial (using Blender is necessary)[edit | edit source]

Advanced tutorial assumes that you already learned the contents of the Basic one and learned the basics of using the NifSkope (see the "In short" part if you're impatient). Also, if you never installed Blender before, you need to read this tutorial first.

For the Advanced tutorial, we will use vanilla Syl's Dress (Shivering Isles expansion pack is required) as an example; you can extract it from the "DLCShiveringIsles - meshes.bsa" in your Oblivion\Data folder, it will be at "meshes\clothes\seduchess". Open "dress.nif" in NifSkope.

Now click on the dress. You should immediately notice that the entire dress is considered to be a single NiTriShape, except for the hands and skin parts. With the unchanged version, you will see in-game that your hands are floating without the arms. If you will change the name of the dress' NiTriShape to be using any other name than "UpperBody", then yes, arms will be displayed in 1st person... but, when using a bow or performing some attacks, you will see that these "bolts" around the neck are clipping through the screen. Using only NifSkope, there's no possible way to remove them and still keep the arms. You need to divide the arms and the rest of the dress into two separate NiTriShapes. Time to use the Blender!

Open Blender. You are able to navigate here by moving the mouse around with scroll button pressed; you can also zoom in and out with this button; having Shift pressed when navigating can also be helpful. R-click on the box, press Delete, and confirm when a message pops up. Do the same with the two black shapes visible on the screen. Use File->Import->NetImmerse/GameBryo. Choose the .nif file that contains the dress. Click OK. It may take a while before the mesh is loaded. Once it is loaded, R-click on the dress and then find "Object" (NOT "Object Mode"!) on the bar below the render window; click it and choose "Duplicate" from the list (you could do it also by pressing Shift+D). Once you've done it, don't move your mouse anywhere, L-click instead! If it happened that you did moved the mouse and the copy of the dress is misplaced, just delete it and try again. Now, click on the "Object Mode" and choose "Edit Mode" from the list. You may want to save at that point (File->Save).

Now you can see that the dress is covered with yellow net. R-click somewhere on it, and it will turn black with pink spots. These spots are called vertices. Yellow vertices are selected, while the pink ones are not. Lines between the vertices indicate where vertices are connected between themselves. Together, vertices and lines create polygons, i.e. various triangles from which the mesh is built. Now, if you were looking closely on what we were doing during the previous paragraph, then you probably noticed that we duplicated the entire dress while keeping it in the same place as the original. What we want to do now is to remove arms from one version, and everything aside the arms (not counting the skin) from the second. And do it in such a way that once we've done it, these two versions will together create a full dress, but with arms and the rest of the dress being considered a separate parts.

First version, only arms...
...and second version, with everything else.

In order to remove vertices, you need to press B, L-click somewhere and select a bunch of vertices while keeping the Left Mouse Button pressed (if it happens that you pressed B more than once, just click anywhere with no vertices present and try again). If you selected them properly, hit Delete and confirm by clicking on the "Vertices". You don't need to delete vertices each time you select a bunch of them, you can keep selecting another vertices that way and delete them later - however, this makes less room for the mistakes. R-clicking on any vertice will unselect all other ones and select that particular one. When you L-click with Shift selected, you can either select or unselect additional single vertices. Be wary of any possible mistakes; if you see that you removed something that you did not wanted to remove, or just made any kind of unwanted action, use CTRL+Z until that removed part is brought back or until the mistake is fixed. If it happens that you made that mistake too long ago, it is possible that the Blender will show a message "No more steps to undo"... in this case, you have to start from the beginning!

Once you are done with one version, you can switch to another one by choosing "Object Mode", R-clicking on the part that you removed in the first version (i.e. arms or rest of the dress), and choosing "Edit Mode". Your goal is to remove vertices in such a way that after removing them and checking both versions, you will get something similar to what's shown on the screenshots. Since Syl's dress has such a unique appearance, it will be quite painful to fix it properly, especially if you never used Blender before. But think about it differently: if you will manage to fix that one correctly, you will be able to do this the same way with just any kind of armor!

Once you manage to do it right, go to the Object Mode, press A twice so the entire dress will be outlined in pink, and use File->Export->NetImmerse/GameBryo to export it - give it a proper name and hit OK. Once again, it may take a while. Once it is done, open your exported .nif, fix the arms by giving them different name than "UpperBody" and save. That's it, you just fixed the dress to be correctly displayed in the 1st person!

In short[edit | edit source]

If arms are connected to the another part of the armor in such a way that they both create a single NiTriShape/NiTriStrips, you need to use Blender to divide them into two separate NiTriShapes/NiTriStrips. E.g. if the entire armor is a single NiTriShape/NiTriStrips, then you must divide it into two separate NiTriShapes/NiTriStrips, with arms as a one NiTriShape/NiTriStrips and the rest of the armor as a second. Only then you can apply the solution from the Basic tutorial.