Skip to content

Mass Effect 3 Tutorial: Adding Hair to the Character Creator

beccatoria edited this page Jun 27, 2021 · 4 revisions

So you’ve found a hair mod. It’s super awesome. But it was made in 2013, when modding was way more limited, and it’s talking about replacing basegame files manually, using something called TexMod and save editing. Ugh, can’t someone just turn this into a plug-and-play DLC mod and add it to the character creator? Yes! Yes someone can, and that someone is you*.

*If it’s for personal use, or if you have permission. Paragon Shepard wouldn’t redistribute other people’s assets without permission. Be like Paragon Shepard.

This guide assumes you have a mesh in .upk format, and textures in .png or .dds format. If you don’t have those resources, or if importing your .upk during Step 4 causes a crash, please see Appendices at the end of this document.

1. Create your Starter Kit DLC Mod

Use ME3Tweaks’ Mod Manager to create an empty DLC mod starter kit. This allows you to package your mod as DLC instead of having to replace base game files. A DLC mod needs a bunch of specific files to be recognised, and the Mod Manager automates that process.

					Figure 1

You’ll need to fill in a bunch of information (see Fig 2), and then it’ll generate a mod folder in your Mod Library that you can drop your modified game files into. Note: it is not applying the mod to any game, just generating the mod in your library so you can apply it later.

					Figure 2

Right-click on your newly generated mod and open the mod’s folder.

					Figure 3

Move vanilla copies of the package files you want to modify into your mod’s CookedPCConsole folder. For this mod you will need copies of:

• BIOG_HMF_HIR_PRO.pcc (if you are editing Female Shepard’s hair)
• BIOG_HMM_HIR_PRO.pcc (if you are editing Male Shepard’s hair)
• BIOP_Char.pcc 

These can all be found in BIOGame\CookedPCConsole. However, if you are using the Genesis 2 DLC, it has its own BIOP_Char.pcc file which overrides the base game, and you’ll need to pull the file from BIOGAME/DLC/DLC_CON_DH1 instead. NOTE: if you can only see a “Default.sfar” file in the DLC_CON_DH1 folder, extract your DLC using the DLC extractor tool in ME3Explorer (which you will need to open in just a moment in Step 2.)

					Figure 4

We’re going to stick with FemShep’s hair for this tutorial, and I’m using the base game version of BioP_Char.pcc. The other files in the folder were automatically generated as part of the starter kit.

2. Clone a hair mesh into BIOP_Char.pcc

You will need to add your new mesh to both of the files. BIOP_Char.pcc holds the character creator information, and the mesh that is used for Shepard’s hair during the prologue. BIOG_HMF_HIR_PRO.pcc contains copies of all female hairstyles and is where Shepard’s hair is loaded throughout the rest of the game. (BIOG_HMM_HIR_PRO.pcc is the equivalent for male hairstyles.)

We are going to add the hair by cloning another entry, with a different hair mesh/texture, then replace them with our new hair mesh/texture combo.

First, open ME3Explorer – ME3Tweaks’ Fork. This can be accessed via the Mod Manager’s tools menu. Do not use the original ME3Explorer 3.0. This version is outdated, may break your game, and does not support the steps in this tutorial.

Nightly is the most recent version. Stable is, well, more stable. This tutorial uses Nightly, but Stable should work the same way for everything included here.

					Figure 5

When ME3Explorer is open, go to “Create Mods” on the left and the Package Editor will be near the top of the central pane.

Now, open TWO instances of the Package Editor. That’s right, open one, then open another. We’re going to be dragging and dropping things between them. Open BIOP_Char.pcc in one and BIOG_HMF_HIR_PRO.pcc in the other. Set both to Tree View (should be the default).

It should look something like this:

					Figure 6

On the left, in BIOP_Char.pcc, you’ll see I’ve expanded Export 15282 – “biog_hmf_hir_pro”, which is a package containing loads of hair packages, which can themselves be expanded to look at individual meshes and textures. You can see this on the right, in BIOG_HMF_HIR_PRO.pcc, where I’ve expanded a specific hairstyle to show its material, mesh and texture.

BIOP_Char’s hair sub-package is full of hairstyles that might be used during character creation. BIOG_HMF_HIR_PRO has a wider variety, because it also includes NPC hairstyles like Ashley’s, EDI’s or Allers’.

You must copy over a hair mesh with the same number of bones as the hair mod you want to use. The mod documentation will probably tell you which one this is, or you will be able to see this by opening the .pcc file in Meshplorer (see Step 4). Allers’ hair (Hair_PROJessica) is a frequent candidate because it has a lot more bones and so can support more complex meshes (and all Allers’ actual appearances load her hair from other packages so this could be replaced safely, back when replacement was the only option).

We’re gonna use EDI’s hair as a base transfer, though, just...cus.

					Figure 7

Drag Export 1462 Hair PROEva (in the BIOG_HMF_HIR_PRO file) over to Export 15282 biog_hmf_hir_pro (in the BIOP_Char file). Choose Clone All References (Experimental). Ta-da! We have EDI’s hair at the bottom of BIOP_Char’s hair package.

					Figure 8

But we don’t want EDI’s hair, we want whatever awesome mod we’ve found. So we need to rename the package and its contents, and overwrite the existing mesh and texture.

3. Rename the imported hair

So first off, we need to rename the package to something unique. In the Package Editor, to go Tools-→Add New Name.

You can retain the basic naming convention – just change PROEva to something that represents the hair mod you’re using.

					Figure 9

Now that the new name has been added to the package, you can enter it as the Object Name in the pane on the right-hand side of the screen, then “Save all changes”.

					Figure 10

TIP: The CTRL+SHIFT+A shortcut will open the "Add New Name" dialogue box. Alternately, if you enter a new name directly into the Object name field and hit enter, the Package Editor should offer to add the name to the package for you.


You must add the name to the package, then change the Object Name, then save changes, for each entry. Yes, this is boring and fiddly. Turn Figure 11 into Figure 12.

					Figure 11

					Figure 12

SAVE YOUR CHANGES! FILE-→ SAVE. Make a note of the Export numbers for the mesh and texture(s) for use in Step 7.

4. Replace the mesh

A quick tour of the hair package. In Figure 12, Exp 29187 is the material – what the hair is made out of. We will not be editing this. Exp 29188 is the hair mesh (its shape). Exp 29189 is the texture. This hairstyle only has one texture. More on this in the next step.

Now, to actually replace the mesh. Right-click on the mesh and Open in Meshplorer.

					Figure 13

Find your new hair mesh – it should be at the bottom. The number of bones is highlighted in red. You can only import a mesh with the same number of bones. Right-click, Replace Mesh from UDK. You’ll get a little dialogue box with a drop down, but there will only be one entry in it. Choose that, watch your new mesh load. Save the file. Close Meshplorer.

					Figure 14

5. Replace the texture(s)

Most hair packages will have either one texture or none (because they use a texture saved elsewhere). The “Diff” texture is the primary texture all hair mods should come with. Rarely, a hair mod will also come with a “Norm” texture. If your cloned hair package doesn’t have enough texture entries, you will need to add them, by dragging and dropping textures from packages in BIOG_HMF_HIR_PRO.pcc into the correct hair package in BIOP_Char.pcc, and then linking the to the material. Follow the extra steps in the next box-out (Figures 15 and 16).


Adding Extra Textures to your Cloned Hair Package

We cloned the PROEva hairstyle, which comes with one diff texture and no norm texture. This is the standard setup. However, some hair packages have no textures, and some hair mods come with norm textures. In either case, you will need to add textures to your cloned package. Drag-and-drop an appropriate texture into the package to clone it, then rename it as you did with the other items in Figure 12.

You must then link the textures to the material. Choose the material instance (Export 29187 in Figure 13). Go to the Interpreter tab, then under TexterParameterValues, expand Item 0 (the diff texture entry) and enter the export number for the correct Diff texture (green highlight).

                                                            Figure 15

If you have a Norm texture, then select Item 0 and choose “Add Array Element” (Green). This will create Item 1. Change the blue entry to HAIR_Norm. Then amend the export number highlighted in red to reflect the new Norm texture’s export number.

                                                              Figure 16

In the Package Editor, navigate to the texture that needs replacing, and choose the texture tab in the right-hand pane. Figure 17 shows the texture highlighted in yellow and the texture tab in green.

					Figure 17

Next, set the box highlighted in blue to “Create new TFC” (this stands for Texture File Cache and this will create a file in your DLC folder where any new textures will be stored). Then hit “Replace from File” (in red). Choose your .png or .dds texture file.

You will be asked to name your new TFC file and a suggested name will be provided based on your DLC mod’s name.

					Figure 18

If you import any more textures into your mod (if you are importing multiple hairstyles or your hair mod has a Norm texture, etc.) next time you can choose your new TFC directly from the blue box in Figure 17.

Congratulations! You have finished importing your chosen mod into the BIOP_Char file!

NOW SAVE YOUR FILE. SAVE IT.

6. Clone the hair mod back into BIOG_HMF_HIR_PRO.pcc

As mentioned at the start, the hair mod (properly named, with mesh and textures imported) needs to exist in both BIOP_Char and BIOG_HMF_HIR_PRO.pcc. Currently it’s only in BIOP_Char.

In Step 2, we cloned a vanilla hairstyle from BIOG_HMF_HIR_PRO into BIOP_Char. Now we’re going to reverse that and clone our properly modded hairstyle back into BIOG_HMF_HIR_PRO. Fortunately this will be a lot quicker as we won’t need to rename anything or reimport any meshes or textures.

Once again, open two instances of the Package Editor and open up one file in each.

					Figure 19

Drag and clone the mesh as shown in Figure 19. The modded hair package should appear at the bottom of the list.

The modded hair is now present, with the correct mesh and textures, in both files.

But currently, it’s just sitting hidden. There’s no way to access it via the character creator. So that’s what we’re gonna fix next!

7. Editing the Character Creator

For this we’ll be back working with BIOP_Char only. Towards the top of the file tree, there is an Export titled “BioChar Player”, which you can expand in order to edit various parts of the character creation options. As highlighted in blue in Figure 20 below, there is a high level division between options for Male and Female Shepard. We are working with FemShep.

					Figure 20

The right-hand pane (Interpreter tab) has a number of options. Expand the file tree as shown in Figure 20. Items 0 through 12 correspond to the 13 vanilla hair options available to FemShep during Character Creation. We need to add one. Select the final entry (Item 12) and “Add Array Element” (highlighted in red).

					Figure 21

The new Item 13 will be an identical copy of Item 12. We will need to rename and redirect some things so that it points to the new modded hair instead. The items highlighted in red need to be renamed fitting the conventions you established during Step 3. The item highlighted in blue needs to be redirected towards the modded hair mesh using the Export number you took note of during Step 3.

Figure 22 shows the changed names, and highlights in yellow where new new names/Export numbers need to be added and set.

					Figure 22

Next, the textures need to be set. For this, the Hair Textures Struct array needs to be expanded (see green highlight, Figure 22).

After expanding this, you will see 11 items, which are all different types of textures for different types hairstyles. Items 0 – 3 are all to do with scalps. This is pretty much what it sounds like – close-cropped hairstyles that don’t need 3D meshes. They’re very uncommon for FemShep but comprise most of MaleShep’s vanilla hairstyles. Some shorter hairstyles mix scalp hairstyles and meshes (for instance a Mohawk with a Buzz Cut). However, most FemShep hairstyles will completely cover the area of the scalp texture, so these Items can be ignored and left on whatever default setting you’ve cloned.

Items 8 through 11 all refer to “SpecShift” textures. I’m going to be super honest that a) I have no idea what those are and b) I’ve never seen any hairstyle – mod or otherwise – use them. Leave them be.

Most of your work will be on Items 4 through 7 – the textures for the actual hair mesh itself.

					Figure 23

Item 4 is the main hair Diff texture (red highlight). Enter the Export number (that you noted down in Step 3) as the property (yellow highlight). Item 5 is the Norm texture. Most mods won’t have one, in which case enter 0 as the property (green highlight). If you do have a Norm, enter the Norm’s export number instead. Item 6 is the mask (blue highlight). Very, very few hairstyles have a specific mask texture (though Mohawk does). If there’s no specific mask, enter the Diff texture’s export again here. Item 7 is the Tang texture. This is almost never used, and should be set to null.

OH GOD, WE’RE ALMOST DONE.

Now we need to explore a different branch of the file tree. This time expand “Textures: Object array” as shown in Figure 24.

					Figure 24

This contains a list of all the textures. Hit “Add Array Element” then add the Diff texture’s Export number and set it. Add the Norm texture too if you have one.

LAST BIT.

This time we’re expanding “MorphCategories: Struct array”. We are looking for the section that tells the Character Creator how many “steps” to add to the hair slider. That is, how many hairstyles it displays. It’s currently set to 13, which means hairstyle number 14 (our modded hair) won’t show up. Set this to 14. See red highlighted areas in Figure 25.

							Figure 25

YOU MAGNIFICENT BEAST, YOU DID IT. NOW SAVE YOUR WORK.

8. Add more hair?

You can if you like. Repeat the steps described above to add as many hairstyles as you’d like for Shepards of either gender!


A note on MaleShep

The methods described above will also work for MaleShep, though BIOG_HMM_HIR_PRO should be substituted for BIOG_HMF_HIR_PRO, and the work in the character creator will need to be done under the Male Shepard’s section. This is basically similar, but some of the sliders are in a slightly different order.

It is worth bearing in mind that scalp textures may be more important with some shorter MaleShep hairstyles. If you feel the default scalp style of the hairstyle you copied initially isn’t working for the modded hair mesh, you can check other vanilla hairstyles and copy the Export numbers for their scalp textures by looking through the various Hair Component entries (see Figures 20 and 21).


9. Apply mod with Mod Manager!

Test your mod! Hopefully it works!

If it doesn’t work because Shep’s fabulous new hair is either see-through or dayglow or horribly dull, this is a texture issue you may be able to fix, and you should read Appendix E and F.

If it doesn’t work for some other reason, welcome to the wonderful world of modding. Go back through the steps to see if you’ve made an error or a typo. If that still doesn’t work, and you haven’t tried to stab yourself in the eye yet, try asking at the ME3Tweaks discord.


APPENDIX

This tutorial assumes you have a mesh in .upk format and textures in either .dds or .png formats. But there are several reasons you may not, in which case, here’s how to get hold of them.

A. The mod ships with a .pcc file (usually BIOG_HM(M/F)_HIR_PRO.pcc)

Open the .pcc file in ME3Explorer’s Meshplorer tool. Find the modded hairstyle. Right-click, “Export Mesh to UDK”. Now you have a .udk file!

					Appendix: Figure 1

Next, right-click, Open in Package Editor. This will open the Package Editor on the mesh and the texture should be immediately below it. Click on the texture, choose the Texture tab in the right-hand pane (blue highlight). Export to PNG (red highlight). Now you have a .png texture file!

					Appendix: Figure 2

B. The mod’s textures are in .tpf or .mem format

You can use Mass Effect Modder to extract the .dds files. Launch Mass Effect Modder from the Mod Manager’s tools menu.

					Appendix: Figure 3

In Mass Effect Modder, under the Mass Effect 3 header, go to Mods Manager → Extract Mods and choose the texture file shipped with the mod. It will ask you to designate a folder where the extracted .dds files will be saved.

					Appendix: Figure 4

C. The mod’s mesh is in .mod format.

This is more complex, but also fortunately, rare. Basically in this instance, you cannot directly extract the .upk from the .mod file. You would need to open Mass Effect Modder. Choose Convert Mod (see underneath the blue highlight in Appendix: Figure 4), which will provide a .mem file. Install that .mem file into a vanilla version of Mass Effect 3 using Mass Effect Modder’s Mods Installer (see above the blue highlight in Appendix: Figure 4).

Then you’d need to open the newly modded BIOG_HM(F/M)_HIR_PRO.pcc with Meshplorer and follow the instructions in Appendix Section A to extract the .upk file.

D. I have a .upk but Meshplorer crashes when I try to import it.

Yeah, some older mods .upk files just don’t work with the modern toolset. A lot of older mods ship with both the .upk and a pre-modded .pcc file. If so, I recommend extracting via the method described in Appendix Section A.

If that’s not an option, download the final Unreal Development Kit that was released. Open the mesh that’s giving you trouble in UDK, then re-export it. My experience has been that this fixes about 90% of troublesome mesh files.

The final Unreal Development Kit (February 2015) is currently available for download here:

https://www.moddb.com/engines/unreal-development-kit/downloads/february-2015-unreal-development-kit-udk

E. I have a texture but it looks too dark/glows like it’s irradiated in-game.

Your textures may not be formatted correctly for highlights. If the hair is dark and dull, highlights may be absent. If the hair is neon, you need to tone them down. This can be done by editing the texture’s RGB channels. Instructions follow on how to fix this using GIMP (which is available, free, here: https://www.gimp.org/).

Open your texture file in GIMP. Choose Colours-→Components-→Decompose. Choose RGBA as the colour model and make sure “decompose to layers” is checked. Click okay. You should now have a greyscale image with four layers.

					Appendix: Figure 5

The alpha channel will be black and white, this is the shape of the hair. Do not amend this.

The blue channel should be entirely black. If it is not, this will be one of the reasons you have dayglow hair. Black it out now.

The green channel should be the brightest, and a complete image of the hair texture. You may need to brighten or dim this, but you will be amending this channel least.

The red channel is the highlights, and it should be a much darker version of the green channel (because you only want a few highlights). This is where you’re likely to have to do the most work. If it is blacked out, I find it easiest to copy the green channel, paste this as a floating layer above the red channel, and then anchor it to the red channel. This can then be darkened until it looks correct. If over-exposed highlights are present on the red channel already, you can either try to correct this directly, or black it out and start from scratch with a copy of the green channel.

The image above is the basic long hair texture from the vanilla game – HAIR_Long_Diff. You can find this in the BIOG_HMR_HIR_PRO.pcc file in the “global” package near the top of the tree view. I recommend extracting and decomposing this to have a look at the ideal levels for the green and red channels and to use as a comparison when editing mod textures.

When you are finished with your editing work, choose Colours-→Components-→Compose. Set RGBA as the colour model. The correct channels should be chosen by default, but you can amend them if necessary. Click okay and this will open a new version of the texture, which should be in shades of vibrant green. Use this! Hopefully it will look better in game!

F. My hair is see through!

Try opening up the texture and adjusting the alpha threshold and the opacity. In GIMP this can be found under Layers-→Transparency-→Threshold Alpha. Be warned, this effect will raise the opacity to 100% by default, and it will not have been set that high initially. You can also lower the value setting. The texture has an alpha mask that is, basically, the “shape” of the texture. Lowering this value will enlarge the mask area.

Both of these steps will reduce transparency and “feathering” for the hair. It will fix your see-through haircut, but at the cost of being blockier, and darker in terms of colouring. The darkness can be compensated to some degree by editing the texture (see Appendix E). The blockiness is just a balancing act.

It is sometimes possible to edit specific sections of the mask (for instance to fix transparency issues at the back of the head, without losing the feathering effect at the fringe), but not always as sometimes the same section of texture is used across many places on the head. Trial, error and luck. Or at least, that’s the best you’ll get out of this tutorial!

Clone this wiki locally