Site Bot Posted December 1, 2008 Share Posted December 1, 2008 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'tas simple as just dropping some files into folders -- this is an advanced tutorial, and simplygetting an already completed hair model working in Fallout 3 goes beyond what it took to do thesame 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 givethe best possible explanation that I can for each step, and I will try to cover all of the possibleproblems 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: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 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 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 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 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. 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 needto 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 modelfor every .nif file. The first is a 'No Hat' version that is what you see when your character is notwearing 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 nomethod 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 and3D modeling, but all the same this is a pretty large mountain for the average modder, and ishopefully 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 madeaware 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 yourarchiver 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 'ShowBlocks 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 'BlockDetails' frame, the uppermost entry should be the 'Name' entry. Under the 'Value' column youshould 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 withvalue 'NoHat' to the right of it. At the bottom of the list is a block titled 'NiTriShapeData'. Rightclick 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 hairmesh, 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 worryabout 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 itis 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 Blocksin 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 youwill see the entry 'Block Type Index'. Expand this. You will now see a list of 'Block TypeIndex' entries. What you need to do here is find the one with the *value* 'NiTriShapeData'. Once you seeit, count the number of blocks that it sits from the top. For hairmessy01f.nif it should be the 8thblock 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 ofbytes held in each block -- and the order of them is directly related to the order of the 'Block TypeIndex' 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 thoughthat if the number is the same number that you calculated before, then everything is in workingorder. 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. Nowmove 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. Thiswill 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 godown 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 withyour 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 thefirst entry of the Block Details window in the next sequential block (denoted by the number to theleft 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. Asbefore, take the second integer value that was output into the popup window and subtract thefirst 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 onewith 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 makea .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' archivethat 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 producedto the DataMeshesCharactersHair folder in your Fallout 3 directory. Change the name ofthe .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 stillneed to create the new hair style so that it appears as a new entry in the Hair Style menu inthe 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 willsee 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 newmesh into and thereby making it into a new entry entirely. Don't worry though, this processwill not replace the entry you choose to insert the new data into; we're just going to use acopy 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 opena 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 choosewhere 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 andclick 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':'FULL - Name': Change this to the name that the hair style will be called *in game*. 'MODL - Model Filename': Edit just the file name to match your newly made .nif. 'ICON - Texture': Edit just the file name to match the .dds texture for your new mesh. 'DATA - Flags': Enter '1' if the mesh can be used by both genders. '101' if it can be used bymales 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 thepop up menu that opens, select 'Copy as override into...' and select your new .esp whenit 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 typethe code for your hair entry's 'FormID'. The FormID is the number contained in the left-mostcolumn 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 gamewill 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 onetexture 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 thereason that they chose to go this route. If you decide to go ahead and re-UV map, thenhere is what you will need to do to complete the 'Hat' version of the mesh. Be aware thatsince you could use one of many UV editors, I have to be general with the followingsteps. 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 toa 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 youoriginally exported in your hair style .nif. You will have to 'Update Tangent Space' againby right clicking on the mesh in the viewing window (Note that this time you are updatingthe tangent space of the 'scalp' shaped mesh, which is the mesh for the 'Hat' version, soyou want to right click on that and select 'Mesh > Update Tangent Space'). Be aware thatif 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 inStep 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 informationfor 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, whereasit was block 4 for the 'NoHat' textures. Again, double check to make sure that your math is correct with regards to the 'BlockSizes'. 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 thispoint, 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, andrename 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 insideNifskope. 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 aswell 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 thepermission of the author before doing so. Link to comment Share on other sites More sharing options...
Yoshikinakota Posted December 1, 2008 Share Posted December 1, 2008 (edited) 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.jpghttp://img123.imageshack.us/img123/5760/screenshot28uf0.jpg Edited December 1, 2008 by Yoshikinakota Link to comment Share on other sites More sharing options...
akbaa Posted December 2, 2008 Share Posted December 2, 2008 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 More sharing options...
Cynthe Posted January 9, 2009 Share Posted January 9, 2009 (edited) 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 January 11, 2009 by Cynthe Link to comment Share on other sites More sharing options...
WickedTrain Posted January 30, 2009 Share Posted January 30, 2009 I like your tutorials.Will you be doing one on "How To Load NPC Meshes/textures Models Made For Oblivion Into Fallout 3"??I tried importing them but Fallout 3 does not seem to see them. Link to comment Share on other sites More sharing options...
zxdong262 Posted February 11, 2009 Share Posted February 11, 2009 (edited) a questionnitrishapedata has no namebut a int value=0 insteadcan not continue.......thx in advance-------------------------sorry,miss some parts Edited February 11, 2009 by zxdong262 Link to comment Share on other sites More sharing options...
JimboUK Posted August 20, 2009 Share Posted August 20, 2009 (edited) An excellent guide, even I was able to follow it and I'm hopeless. Thank you. http://img193.imageshack.us/img193/4783/77173497.jpg Edited August 20, 2009 by jim_uk Link to comment Share on other sites More sharing options...
Mekii Posted August 20, 2009 Share Posted August 20, 2009 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 stepsin the tutorial for to i.e adding new body mesh and such? Link to comment Share on other sites More sharing options...
BloodMercenary Posted September 10, 2014 Share Posted September 10, 2014 (edited) 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. Nowmove 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. Thiswill 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.ddsthe hair im converting uses, KKKHair04, KKKHair04_hh, KKKHair04_hl, KKKHair04_nSorry 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 September 11, 2014 by BloodMercenary Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now