Jump to content

How To Load Hair Models Made For Oblivion Into Fallout 3


Site Bot

Recommended Posts

Article link: How To Load Hair Models Made For Oblivion Into Fallout 3

 

Tutorial by Josef Grey and Throttlekitty

 

 

This tutorial will explain in detail how to load your favorite hair models made for Oblivion into

Fallout 3. This information is also good for loading completely new hair models into Fallout 3

(provided that you knew how to create a mesh and get it to work in Oblivion), as it contains

everything I've learned from the Nifskope community about the subject. Be aware that this isn't

as simple as just dropping some files into folders -- this is an advanced tutorial, and simply

getting an already completed hair model working in Fallout 3 goes beyond what it took to do the

same in Oblivion.

 

Before you begin the process be prepared to spend some time debugging, because

depending on the mesh that you want to load, some steps may vary to a degree. I will give

the best possible explanation that I can for each step, and I will try to cover all of the possible

problems one could have with this process, though I likely cannot account for every situation.

Before you begin, make sure you have the following programs and files:

  1. The latest version of Nifskope (1.0.16 at the time of writing this).
    Download link: http://sourceforge.net/project/showfiles.p...ckage_id=170735
     
  2. The Conformulator (a mod made for Oblivion that creates .egm files... more on that later)
    Download link: http://tesnexus.com/downloads/file.php?id=9360
     
  3. FOMM or another FO3 .bsa archiver program to access the Fallout 3 meshes and textures.
    Download link: http://www.fallout3nexus.com/downloads/file.php?id=640
     
  4. FO3Edit, a program that will enable you to manipulate the Fallout3.esm and create new plug
    ins. Other programs can accomplish this as well, so use what works best for you.
    Download link: http://www.fallout3nexus.com/downloads/file.php?id=637
     
  5. A hair mesh (.nif) along with its textures (.dds, _hl.dds, and _n.dds). Hair meshes made for
    Oblivion are your best option, as the base head mesh in FO3 is either exactly or nearly the
    same shape as in Oblivion. If you have another mesh you'd like to use, be aware that the
    structure of it may be wildly different than that of one that was made for intended use with the
    Gambryo engine.
     
  6. Oh yeah, you'll need a calculator too.

 

//STEP 1: UNDERSTANDING AND OBTAINING A FALLOUT 3 HAIR .NIF

 

Bethesda has changed a lot in the file structure it uses for its hair files since Oblivion, and

therefore there are parts of the old Oblivion .nifs that just aren't there anymore in the new .nifs.

Therefore, if you try to load an Oblivion hair mesh directly into Fallout 3, you'll probably get a

red and white box where the mesh would be, marking it as an error. To remedy this, you need

to transfer all of the useful information from the old Oblivion .nif that the engine won't recognize

into a nice and shiny .nif compatible for Fallout 3.

 

First though, there are a few *very essential* things to understand about the changes that

were made to the hair .nif files for Fallout 3. Fallout 3 uses two different version of the hair model

for every .nif file. The first is a 'No Hat' version that is what you see when your character is not

wearing a helmet or hat. This is the only version that was present in Oblivion, as when your

character put on a hat their hair just disappeared entirely. Fallout 3 however has a second

version of the model, called a 'Hat' version, which is used while your character is wearing a hat.

The difference is that the 'Hat' version is simply a geometric copy of the character's scalp,

except the texture of the 'No Hat' version is applied using a different UV map (the method by

which a 2D texture is wrapped around a 3D object). At the current point in time, there is no

method for using a *separate* texture for the 'Hat' version, which is a huge drawback for

modding hair into Fallout 3. This means one of two things, really: Either the texture for the

'No Hat' version must be re-UV mapped for the 'Hat' version, or you just go 'bald ala Oblivion'

while wearing a hat. Of course, your full set of options depends on your skills at texturing and

3D modeling, but all the same this is a pretty large mountain for the average modder, and is

hopefully one that will have an easier path around it later on. Make note that this tutorial does

not go into UV mapping, so if you do intend on UV mapping a texture for this there are many

free tutorials that cover the subject with regards to your program of choice (Blender, Maya,

3DS Max, and Nifskope all have UV mapping editors). So now that you've been made

aware of the worst, it's time to get started with obtaining a Fallout 3 hair .nif.

 

This is the point where your .bsa archiver program will come into play, as you will need

access to a Fallout 3 hair .nif from the .bsa archives. Follow the instructions that came with your

archiver program (FOMM, FO3Archiver, etc) to unpack the 'meshes' archive into a separate folder

-- away from the Fallout 3 folder. Inside the meshescharactershair folder you will see all of the

.nifs used for Fallout 3. You will need to select one to use as your 'container' for all of the

Oblivion hair .nif data you're about to dump into it. For this tutorial, I'll be using the

hairmessy01f.nif for examples, as it is the one I've used for this process and have had no

problems with it. If you're replacing the male hair, use the hairmessy01.nif as it will be pretty

much the same structure-wise.

 

Now's the time for Nifskope... and where the ugliness begins. Go ahead and open in

Nifskope both the hairmessy01f.nif mesh and the .nif for the mesh you want to load into FO3.

 

 

 

//STEP 2: TRANSFERRING OBLIVION .NIF DATA TO A FO3 .NIF

 

First, maximize your Oblivion .nif window. At the top of the screen, you'll see the File, View,

Render, Spells, and Help options. Go to View and check 'Block List', 'Block Details', and 'Show

Blocks in Tree'. In the 'Block List' frame, you should now see an expandable branch called

'NiNode'. Expand it, and you'll see another branch called 'NiTriShape'. Expand that, and click

on the block (probably the last one on the list) called 'NiTriShapeData'. Now, down in the 'Block

Details' frame, the uppermost entry should be the 'Name' entry. Under the 'Value' column you

should see that it has a value in it -- likely the name of the mesh. Double click on its value

and delete it,leaving the 'Value' column empty.

 

SCREENSHOT 1

 

Now right click on the 'NiTriShapeData' block in the 'Block List' frame (the one we just edited),

and select 'Block > Copy'.

 

Go ahead and maximize hairmessy01f.nif, and select View and check the 'Block List',

'Block Details' and 'Show Blocks in Tree' if these aren't already checked. Expand the 'NiNode'

branch in the 'Block List' window to reveal two 'NiTriShape' branches. Expand the one with

value 'NoHat' to the right of it. At the bottom of the list is a block titled 'NiTriShapeData'. Right

click it and select 'Block > Paste Over'. You should now see the mesh in the viewing window,

along with what looks like a blue scalp. This blue model may be clipping through the hair

mesh, but it's not important.

 

Save the file to a new name at this point using the Save As option in the 'File' menu at the top

(just as a safeguard, mainly). Once that's done, select the block that you've just pasted in so

that you can see it's block details. This part is pretty confusing. Right click on the very top

entry in the 'Block Details' window -- it should be the 'Name' entry. Select the 'File Offset' option.

You will get a little popup window *that you should not close* with an integer value (don't worry

about the code in the parentheses to the right of it).

 

SCREENSHOT 2

 

Do the exact same thing for the very *last* entry in the 'Block Details' window. For my file it

is the 'Match Groups' entry. Another integer value will pop up under the last one.

 

SCREENSHOT 3

 

Subtract the first integer value from the second, obtaining the difference between the two.

*Note that this number is going to be different for every mesh, so there's no way I can say

what it will be.* This difference is actually the size of the data of the block, in bytes.

 

Now that you have the byte size, select the View menu at the top and click 'Show Blocks

in List'. You'll see that the 'Block List' window is now organized differently. At the very top,

you'll see the 'NiHeader'. Click on it, and about halfway down the 'Block Details' window you

will see the entry 'Block Type Index'. Expand this. You will now see a list of 'Block Type

Index' entries.

 

What you need to do here is find the one with the *value* 'NiTriShapeData'. Once you see

it, count the number of blocks that it sits from the top. For hairmessy01f.nif it should be the 8th

block from the top. With the number in mind, collapse that branch and now find the entry 'Block

Size', which should be a little lower in the 'Block Details' list. Expand that. You should now see

a list of 'Block Size' entries with integer values. These integer values are actually the number of

bytes held in each block -- and the order of them is directly related to the order of the 'Block Type

Index' branch that we just counted out in the last step. Therefore, you want to count down from

the top of this list till you reach the number you counted down in the 'Block Type Index' branch.

For the hairmessy01f.nif, it was 8, so the 8th 'Block Size' entry shows the number of bytes for

the corresponding block-- the 'NiTriShapeData' block.'

 

Thoroughly confused by now I'm sure, you're probably wondering what this part is for. Well,

remember the byte size that you calculated a few steps back for the 'NiTriShapeData' block?

It's in the integer value of this 'Block Size' entry that you want to place it. Please note though

that if the number is the same number that you calculated before, then everything is in working

order. If it's not the same number, right click the 'Value' field and type the new one in.

 

SCREENSHOT 4

 

It's time to go back to the 'NiTriShapeData' block. To get there, change your View options

back to 'Show Blocks in Tree', expand the 'NiTriShape' block with the 'NoHat' value in it, and

select the 'NiTriShapeData' block. Partway down the list of entries in the 'Block Details' frame

is an entry titled 'TSpace Flag'. Change the value of this entry to '16' if it is not there already.

You should see some of the formerly grayed out entries 'light up' as they become active. Now

move the cursor into the viewing window, and right click on the hair mesh (not the blue scalp).

A pop up menu will appear -- you want to select 'Mesh > Update Tangent Space' from it. This

will allow your mesh to render properly in game without any funky lighting and graphical issues.

 

SCREENSHOT 5

 

We're now going to make the FO3 .nif point to the textures for the new hair mesh. Expand

the 'BSShaderPPLightingProperty' branch under the 'NoHat' version of the 'NiTriShape' branch.

There will be a block under the branch called 'BSShaderTextureSet'. Click on this, and now go

down to the 'Block Details' and expand the 'Textures' entry. You will now see a list of the

textures that this .nif uses in the form of 'TexturesCharactersHair...'. You want to keep this

format, so double click on the 'Value' field of each texture, replacing just the name of the file with

your respective new file (do this for all three: the .dds, the .hl, and the _n.hl). If you haven't

already done so, you should place the new texture files for the mesh in your

Fallout 3DataTexturesCharactersHair folder.

 

SCREENSHOT 6

 

As far as getting the 'NoHat' version of our mesh to function properly, we're almost done

with the .nif editing. We now have to correct the number of bytes the .nif requires for the

'BSShaderTextureSet' block, just as when we edited the number of bytes in the 'NiTriShapeData'

block.

 

As before, right click the top entry in the 'Block Details' of the 'BSShaderTextureSet' block

(the entry's name should be 'NumTextures'). Click 'File Offset'. This time, you need to go to the

first entry of the Block Details window in the next sequential block (denoted by the number to the

left of the block name in the 'Block List' window). BSShaderTextureSet is block 4 for the

hairmessy01f.nif file, so you should click on block 5 ('NiMaterialProperty') directly below it in the

'Block List' window, and get the 'File Offset' of its first entry in the 'Block Details' window. As

before, take the second integer value that was output into the popup window and subtract the

first from it to obtain the byte size of the 'BSShaderTextureSet' block.

 

Once again, go to 'View' and select 'Show Blocks in List'. Click on the 'NiHeader' in the

'Block List' window, expand the 'Block Type Index' and count the number of entries to the one

with the value 'BSShaderTextureSet'. If you're using hairmessy01f.nif, it should be the 5th one.

Now expand the 'Block Size' entry just as before and input the new integer value into the 'Value'

column of the corresponding 'Block Size' entry.

 

Make sure that your math is correct, save the file as the name that you intend to use for

your hair mesh (for example 'ShortHair.nif'), and close Nifskope. We now have to make

a .egm file so that the new hair mesh will morph to fit the character's head.

 

 

 

// STEP 3: CONFORMULATING

 

Open the Conformulator and click 'Select' for the head file. Navigate to the 'meshes' archive

that you extracted earlier and follow this path to find the female head shape file:

 

meshescharactersheadheadfemale.tri

 

If your hair mesh is going to be for males, use:

 

meshescharactersheadheadhuman.tri

 

Once you've selected the head file, click 'Select' for the hair file. For this file, you want to

select the original .nif for the hair that you want to add to Fallout 3 (not the .nif you just made --

the Conformulator is a program designed for making .egms for Oblivion, so it only works for

.nifs that will work for Oblivion).

 

Set the settings to 'Quality: Nearest Face', 'Tri file: None', and leave the rest set to default.

Click 'Conformulate'. It will output a .egm file in the directory that you took the hair file from.

Move the .nif file that you made in Nifskope along with the new .egm file that you just produced

to the DataMeshesCharactersHair folder in your Fallout 3 directory. Change the name of

the .egm file to the following:

 

'NameofNifFilenohat.egm'

 

Where 'NameofNifFile' is the name of the .nif file that you produced, minus the extension.

 

You now have a complete 'No Hat' version of the hair mesh and textures. However, you still

need to create the new hair style so that it appears as a new entry in the Hair Style menu in

the game. To do that, you'll have to make a .esp (Elder Scrolls Plug-in File. I know, this is

Fallout...).

 

 

 

// STEP 4: MAKING A .ESP USING FO3EDIT

 

Upon opening FO3Edit, you'll be prompted to select a master/plugin file to load. Just

check the Fallout3.esm file and click 'Ok'. Once the program is finished loading, you will

see Fallout3.esm as an expandable entry in the left frame. Expand it, scroll down to the

'Hair' entry and expand that. Here you will see all of the default hair meshes used in

Fallout 3. To create a new .esp, it will require choosing one to insert the data for your new

mesh into and thereby making it into a new entry entirely. Don't worry though, this process

will not replace the entry you choose to insert the new data into; we're just going to use a

copy of it as a container for the new information. For this example, let's just use

'hairmessy01' (which you will see as the 'Editor ID'). Scroll down and right click to open

a pop up menu, from which you want to select 'Copy as new record into...'.

 

SCREENSHOT 7

 

You will be prompted to enter a new EditorID for the entry. Make it something similar to

the file name that you chose for your mesh. A window will pop up directing you to choose

where to place the new entry. Check 'New File' and click 'Ok'. The program will then ask

you to name the .esp file (which can be named whatever you like). You will now see your

newly created .esp file under the master file (Fallout3.esm) in the left frame. Expand it and

click on the entry for your hair mesh.

 

There are four values in the frame on the right side of the screen that you will need to

edit. To edit them, right click on the area containing the information that you want to

change and choose 'Edit':

  1. 'FULL - Name': Change this to the name that the hair style will be called *in game*.
     
  2. 'MODL - Model Filename': Edit just the file name to match your newly made .nif.
     
  3. 'ICON - Texture': Edit just the file name to match the .dds texture for your new mesh.
     
  4. 'DATA - Flags': Enter '1' if the mesh can be used by both genders. '101' if it can be used by
    males only. '11' if it can be used by females only.

Now expand the Fallout3.esm again and scroll down to the 'Race' entry. Expand that,

and right click the first race that you would like the new hair style to be used by. On the

pop up menu that opens, select 'Copy as override into...' and select your new .esp when

it asks you what file you want to copy the entry into.

 

Go to your .esp in the left frame and select the newly added entry under the

expandable 'Race' branch. Scroll down in the right frame until you see an entry called

'HNAM - Hairs'. This is where all of the playable hair styles for that specific race are stored.

To add your new hair style, right click in the blank area to the right of the words

'HNAM - Hairs', but in the column for your new .esp (should be filled largely with gray text,

whereas the column for the master file Fallout3.esm should contain purple text). Select

'Add' from the pop up menu.

 

SCREENSHOT 8

 

A new entry will appear with the value 'NULL...'. Right click on this value and select

'Edit' from the pop up menu. A box filled with zeros will appear, in which you need to type

the code for your hair entry's 'FormID'. The FormID is the number contained in the left-most

column of the left frame for your new hair style's entry.

 

SCREENSHOT 9

 

Repeat the last few steps to allow more races to use your new hair style. Once you are

finished, close the program and it will prompt you to 'Save changed files'. Make sure your

file is checked and click 'Ok'. Lastly, make sure that the newly created .esp is in the 'Data'

folder of your Fallout 3 directory. If all went well, you should now have a newly added

functioning hair style that will be available via the Gene Projector or Barber Shop menus

in game. Of course, at this point your character will look pretty odd in a hat, as the game

will either render the 'No Hat' version of the hair mesh, or you will be left bald under your hat.

For more information on the 'Hat' version of the mesh, continue on to the final step.

 

 

 

// STEP 5: MORE ON THE 'HAT" VERSION OF THE MESH

 

I'll admit the information that I can give here is limited, as currently the only way I've

discovered for getting a good looking 'Hat' version of a hair mesh is by re-UV mapping one

texture to fit two different meshes (the mesh for the 'NoHat' version of the hair and the 'Hat'

version of the hair). Granted, this may take considerable skill with regards to texturing,

however that is something Bethesda developers are not short on and thereby no doubt the

reason that they chose to go this route. If you decide to go ahead and re-UV map, then

here is what you will need to do to complete the 'Hat' version of the mesh. Be aware that

since you could use one of many UV editors, I have to be general with the following

steps.

 

When editing the UV map, be aware that you want to edit the UV map for the 'Hat'

NiTriShape only. Therefore, you will want to export the 'Hat' NiTriShape in Nifskope to

a obj. file. Load the .obj into your preferred development environment and make the

necessary changes to the UV map. Save the file, and import the file to a 20.0.0.5 .nif file.

 

In the 20.0.0.5 .nif file, 'Copy' the NiTriShape and 'Paste Over' the NiTriShape that you

originally exported in your hair style .nif. You will have to 'Update Tangent Space' again

by right clicking on the mesh in the viewing window (Note that this time you are updating

the tangent space of the 'scalp' shaped mesh, which is the mesh for the 'Hat' version, so

you want to right click on that and select 'Mesh > Update Tangent Space'). Be aware that

if you cut a UV when UV editing, you will have to edit the 'Block Size' for the

NiTriShapeData because this will effectively change the vertex count.

 

The last step in Nifskope is to change the textures that the .nif points to for the 'Hat'

NiTriShape. To do this, simply repeat the steps for changing out the textures back in

Step 2. One thing to note however is that you will also need to change the 'Block Size'

for this block just as you did when you changed the textures for the 'NoHat' version.

 

The 'BSShaderTextureSet' block that contains the texture information for the 'Hat'

version is not the same 'BSShaderTextureSet' block that contains the texture information

for the 'NoHat' version, even though the block has the same name. To tell them apart,

use the assigned block number shown to the left of the block name in the 'Block List'

window. For the hairmessy01f.nif file, block 10 is the block for the "Hat' textures, whereas

it was block 4 for the 'NoHat' textures.

 

Again, double check to make sure that your math is correct with regards to the 'Block

Sizes'. Save the file (perhaps move the original copy to a different folder as a safeguard

and save this file to the 'MeshesCharactersHair' folder, because if there's an error at this

point, the .nif file may not open and will crash Nifskope).

 

The last step is to make a copy of the .egm file that you made in the Conformulator, and

rename it so that it reads:

 

'NameofNifFilehat.egm'

 

Where 'NameofNifFile' is the name of the .nif for the hair style, minus the extension.

 

If need be, you can make additional UV mapping adjustments using the UV Editor inside

Nifskope. To make use of it simply right click on the NiTriShape 'Hat' version, and select

'Texture > Edit UV' from the pop up window.

 

Your hair style should now function properly when your character is not wearing a hat as

well as when he or she is wearing a hat.

 

 

 

 

 

Disclaimer - This tutorial was made for fallout3nexus.com. If you wish to post this

tutorial elsewhere or use it for anything other than personal use, you must ask the

permission of the author before doing so.

Link to comment
Share on other sites

Thanks for this manual.

I have a problem with alpha channel, in Nifskope hair look normal, but in game one big bug. I don't know - what wrong?

NiAlphaProperty Flag - 4845, Treshold - 0.

Textures and mesh - from "babehair" for Oblivion.

Vertex Colors - enabled, all #ffffffff

 

screenshots:

http://img224.imageshack.us/img224/2381/untitled1yf7.jpg

http://img123.imageshack.us/img123/5760/screenshot28uf0.jpg

Edited by Yoshikinakota
Link to comment
Share on other sites

When i started editing the nif, i wasnt able to change the Tspace flag value. Its still shows up gray and i cant change.. Can i change that somehow ?
Link to comment
Share on other sites

  • 1 month later...

Holy moly!! I wanted to attempt adding the soya hair (the nice one) to Fallout but darn this is quite the enterprise... :(

 

Anyone trying to do this atm? ^^;;

 

Edit: Okay I tried it myself and I got as far as before attempting to re uv map the hat version (gulp), and my hair is A) too long in the front and B) the scalp underneath the blue part of the mesh is poking through?!!?

 

http://img.photobucket.com/albums/v260/ash...ScreenShot2.jpg

Edited by Cynthe
Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...
  • 6 months later...

An really nice tutorial tutorial there! Too bad i don't got any Oblivion hair I want to add... yet.

Got an small question though, does is work to follow some of the steps

in the tutorial for to i.e adding new body mesh and such?

Link to comment
Share on other sites

  • 5 years later...

EDIT: Answered by Voodoo MacGee on my images. Thanks for the help.

Okay all is going good except this part:

It's time to go back to the 'NiTriShapeData' block. To get there, change your View options

back to 'Show Blocks in Tree', expand the 'NiTriShape' block with the 'NoHat' value in it, and
select the 'NiTriShapeData' block. Partway down the list of entries in the 'Block Details' frame
is an entry titled 'TSpace Flag'. Change the value of this entry to '16' if it is not there already.
You should see some of the formerly grayed out entries 'light up' as they become active. Now
move the cursor into the viewing window, and right click on the hair mesh (not the blue scalp).
A pop up menu will appear -- you want to select 'Mesh > Update Tangent Space' from it. This
will allow your mesh to render properly in game without any funky lighting and graphical issues.

I am doing exactly what you said but 'TSpace Flag' is not showing in the titles.

I am using messhair01f just as you (no hat) I am using KKK002_v0.2 as the hair converted for FO3. do the dds have to be exactly like these? .dds, _hl.dds, and _n.dds

the hair im converting uses, KKKHair04, KKKHair04_hh, KKKHair04_hl, KKKHair04_n

Sorry dont know how to add images to forum so here's a pic in my images. I am at this part looking for 'TSpace Flag'.

http://www.nexusmods.com/fallout3/Images/40602/?

Edited by BloodMercenary
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...