Saturday, July 20, 2013

MOD: Fauxhawk Hairstyle for ME3



Note that this mod is PC only! You can't replace Meshes on the consoles.

Mesh replacement is still young, use at your own risk =)



This is the Female Hair PCC which includes the permanent replacement of the Mohawk Mesh only. Make sure you run AutoTOC in ME3Explorer after copying the PCC into your CookedPC folder. You will have to run texmod to apply the textures. TPF is also included in the download.


This .MOD will include the permanent replacement of the Mohawk Mesh only. This mod was created with SVN rev 466. It should return 2 updates after you run the job.
You will have to use Texmod to apply the textures. TPF is also included in the download.


Lastly, for those that would like to pick which mesh to replace themselves or that have issues installing via the above methods: I have also uploaded the UPK for manual replacement. Hair texture is also included in the download.


Installation


To use this hairstyle on Shepard, do not forget to edit the following values with Gibbed:

Mesh: BIOG_HMF_HIR_PRO.Hair_Mohawk.HMF_HIR_Mhk_MDL
Hair_diff: BIOG_HMF_HIR_PRO.Hair_Short02.HMF_HIR_PROShort_Diff
Hair_mask: BIOG_HMF_HIR_PRO.Hair_Short02.HMF_HIR_PROShort_Diff

If you have never used Gibbed or ME3Explorer before and/or are running into issues here are several useful links and guides that can help you out:

Gibbed - download
Modifying faces in Gibbed
Basics: Modding hair via Gibbed
Scalar / Vector / Texture

ME3Explorer - download
Guide: ME3Explorer first time setup information
Tutorial on how to install .MOD files
Tutorial on how to use PCC mods
Tutorial on manual mesh (upk) import

Troubleshooting


I have run the .MOD but I'm still seeing the old Mohawk mesh ingame.
a: Run the .MOD again. It will likely return with another AutoTOC update and work afterwards.

I have tried the .MOD but it causes my game to crash to desktop.
a: My advice would be to revert your BIOG_HMF_HIR_PRO.pcc to vanilla and try again. You can also try manually throwing away your modded PCC files and repair your install via Origin. This will force a redownload to revert your PCC's to vanilla state. Now overwrite your PCConsoleTOC.bin with your modded backup, then run the PCConsoleTOC.bin updater through ME3Explorer and try again. If you keep experiencing issues make sure you're using rev 473 or above, or consider the PCC release.

I have tried the PCC but it causes my game to crash to desktop.
a: Make sure you ran AutoTOC in ME3Explorer after having copied and replaced the PCC file. If you have, try overwriting your PCConsoleTOC.bin to your modded backup, then run AutoTOC through ME3Explorer. If you keep experiencing issues make sure you're using rev 473 or above, or consider the .MOD or UPK release.

I have tried the PCC but it causes my game to get stuck on loading.
a: This is most likely a PCConsoleTOC.bin error. Try overwriting your PCConsoleTOC.bin to your modded backup, then run AutoTOC through ME3Explorer.

I can load un-modded saves but modded saves crash to desktop.
a: This is likely a Gibbed save error. Make sure there are no extra spaces before or after the codes you have changed.

I have tried to replace a mesh with your upk but it causes my game to crash / does not work.
a: The UPK itself is tested and works. If you've watched the tutorial I linked above, and followed all steps to the letter I can not help you, visit the ME3Explorer forum and ask for help there.

My support begins and ends with the functionality of my mods. I do not cover the inner workings of the tools you'll need to get acquainted with to use mods beyond giving some general troubleshooting tips. Further problems with them are best discussed on their respective websites or support forums.

Credit


Many thanks to Apachii from the Skyrim Nexus (ApachiiSkyHair) for providing permission for me to use and share this hairstyle =)

Permissions


All permissions are specific to this mod. These permissions do not extend to any of my other mods.
This mod contain assets from other authors and can't be redistributed without permission from these authors.

1. You MAY alter this mod for personal use.
2. You MAY NOT redistribute (upload/share) this mod.
3. You MAY NOT use these assets in other mods.
4. You MAY NOT release compatibility patches for this mod.
5. You MAY NOT release localisations for this mod.
6. You MAY use this mod in other creative works (YT videos, 3D Renders, etc) that are subject to ad revenue.
The description of said work must mention that I am the creator of this mod and link to it's project page.

DISCLAIMER
MOD: Fauxhawk Hairstyle for ME3 is not associated with BioWare Corp. or Electronic Arts, Inc. This mod is supplied for free; I make no money from this project. This mod comes without any warranty, to the extent permitted by applicable law. This means you use it at your own risk; I am not responsible for any damage to your game or PC by use of this mod.

COMMUNICATIONS
All inquiries regarding this mod must be directed to Ottemis via the following locations:
http://www.nexusmods.com
http://me3explorer.proboards.com
http://daitools.freeforums.org/
ottemis@hotmail.com

AUTHOR ABSENCE
All permissions associated with this mod must be continued to be observed regardless of my presence or absence. If any permissions in this document are dependent upon contacting me, then those permissions are revoked in my absence.

BioWare Continuity Network may keep a copy of this mod within their archives for historical purposes, provided all authorship and credit information is retained and the contents of the mod are not altered in any way.


Monday, July 15, 2013

Tutorial: Porting hairstyles using 3ds 2012

To the effect of being able to edit and successfully import hairstyles into Mass Effect 3, ELE has taught me the basics of using 3dsMax 2012. This tutorial covers what she's taught me, and what we've learned about hair conversion since.
Now obviously the use of 3dsMax is no picnic, so it is very conceivable this won't make much sense to you the first time you try and you will be fiddling with the controls quite some. Be bold!
If you encounter start-up issues, give it some time. Look up some more advanced tutorials etc. What I'm about to put down here will be extremely basic and will expect you to take initiative in getting to know the program.

Getting started

Depending on the source, your hairstyle will have a certain extension. Start by installing the 3ds Max Nif Importer-Exporter (Bethesda) and the ActorX Importer AND exporter for 3dsMax 2012(Mass Effect).

Note: I am using Bethesda files as an example, but any mesh works on the same principles. The nif importer plugin only works for 3DS versions 2012 or below.

Once you've started up 3ds this is what you will see.  I advise you click and watch the first link in the startup screen, it's only a few minutes worth of video.

startup1

What we're going to do first (though this is completely optional) is revert to one viewport instead of the standard four. Go to view, viewport configuration, layout. Click the first option, apply, ok.

Let's import a model. Seeing as we're looking into editing hair, how about we grab the female head from ME3, we'll need it to align new hair to later. To make this easy I've uploaded the file here.
This is a psk file, so we'll need to use the ActorX importer you installed. 
Go to MaxScript in the top navigation bar, select run script in the dropdown menu. Browse to the location where you saved ActorXImporter.ms, select it and hit open.

startup2
Now, in the window that pops up, hit Import PSK... and browse to the location where you saved the female head, select it and hit open. You'll be treated to a top view of the model.

Try moving around the mesh. You can click and hold the left mouse-button to drag your screen and use the scrollwheel to zoom in and out when the viewport is active. In the top right corner of the viewport you'll see a cube that lists all faces, click the faces to snap to them or hold and drag on a corner to rotate and tilt manually. With the wheel under the cube you can rotate view. Try clicking next to the head to deselect it and then re-selecting it and play with the rotation and zoom controls. Take some time to get familiar with it =)
In the top left corner of your viewport you'll notice it says [Top][Realistic], click on them to change them (personally I use [Perspective] but vary on the second). You can try different ones and see how they affect the model. 

Before we continue past this section, change your view/position to something similar to this:
startup3

Picking a hairstyle

As we've installed an importer for nif files we're going to limit search to Bethesda game mods. This would include Skyrim, Oblivion, Morrowind and the Fallout Series. Most of these mods use ported hairstyles that originate from other games, most commonly the Sims franchise. Conveniently, you can browse the Nexus sites for these games to check available mods.

Skyrim Nexus
Oblivion Nexus
Fallout3 Nexus
Fallout New Vegas Nexus

I'm going to use the Skyrim ApachiiSkyHair Pack for purpose of this tutorial. Specifically I'll be working with hairstyle number 21 which is a long female hairstyle with a braid and ponytail. Download whichever hair you want to work with, or use the same one I'm using if that's easier for you.

Importing and editing

Files with the .nif extension you can import using 3dsMax's import function. Click the 'start' icon in the topleft corner on the navbar and simply pick Import.
hair1

Browse to the location of the mesh you want to import and select the correct file, in my case that's: ..\ApachiiSkyHair_v_1_5_Full-10168-1-5-Full\ApachiiSkyHair_v_1_5_Full\Data\meshes\actors\character\character assets\hair\apachii\female\hair21.nif

Now on the popup window for nif import, uncheck Import Skeleton and hit Import. Your viewport will now realign itself with the newly added mesh! It should show up screen-filling. If you're wondering where the head mesh went, select your viewport and scroll to zoom out:
hair2

Now there are several things to note here. The orientation of the mesh is important! As we are modding Mass Effect, the hair needs to be aligned with the position of the head.
Note: The difference between location of the hair and head completely depends on which game the hair was meant to work with. If you for instance port Sims hair, it's conceivable the initial location is different from what I'm showing you here.  

Before we start moving the hair though, we will be removing the skin attached to the hair mesh. We will have to regenerate the skin later, but for now it can interfere with the edits we are about to make so it will have to go.
Select the hair and on the right side of your interface, you'll notice it says skin, above editable mesh.
Right-click and select delete in the dropdown menu.
Note: If you'd rather not reskin from scratch and are working with a Mass Effect mesh, right-click and select cut in the dropdown menu instead. You can paste it back in when you're done editing the mesh.

Navigate around the meshes to get a better view of their position relative to each other. As you can see, the hair is:
1. too small in comparison to the head
2. facing the wrong way
3. at the wrong height

What I've noticed is that when you scale up a mesh, it will automatically move up. So we're going to tackle these three discrepancies in the order they are listed to make sure we don't do unnecessary double work.
To scale up the hair, select it by left clicking it, right-click to open the drop-down menu and select Scale. Your cursor will change icon to a tiny triangle. Now in the viewport ontop of the hair mesh, left-click and hold while moving your mouse up, you'll notice the hair will both scale up and move up simultaneously.
hair3


Now to rotate the hair, select it then right-click to open the drop-down menu and select Rotate. Left-click and hold on the mesh and move your mouse to the left or right to rotate.

To move it along the X/Y/Z axis, select it then right-click to open the drop-down menu and select Move. You can try to reposition the mesh with your mouse but I would advise using the X/Y/Z boxes at the bottom of the viewport. There are little arrows next to the input boxes so you can easily move along any axis in small increments.

Use all three (Move, Rotate, Scale) to reposition the hair until you are happy with it's location. You'll want to rotate your view often so you can check for clipping issues more easily (note the ears) and to see how big the gap between the hair and the skull is at several points.

Note: You shouldn't touch the location of the head. If you accidentally move it at any point revert with control-z or select the headmesh, right-click and select move in the drop-down menu, then enter 0 (zero) for X,Y and Z on the bottom navbar.

On my example below you can see I switched to [Perspective][Realistic], as it emphasizes the shadows nicely on the edges of the mesh, so I can easily see the distance between elements. Note how nicely the mesh wraps around the ear. This isn't always the case, I'll cover repositioning of individual elements below this section.
hair5


















Having done what you can just moving and rescaling the entire mesh, it's time to rework individual parts to fit around the head better.When you have the mesh selected you'll notice on the right of the viewport the selection menu is visible. At the top it shows icons for five ways of selecting parts of your mesh. Vertex, Edge, Face, Polygon and Element. For now select Element. When you click through the various parts of the mesh, you'll notice entire strands lighting up bright red as you select them. You can move them over any axis using the arrows that show up in the middle of the selected element.
hair7
Whenever you would like to move certain parts of an element, it is advised to pull that particular element out, then select vertex under selection to move the vertices. This way you don't run risk selecting vertices on different elements than the one you're looking to alter. You can select multiple points by either left-click dragging your mouse over an area or by clicking individual elements while holding control.
If you would like to push or pull an entire area of the mesh out, you can do this by using soft selection. The number belonging to falloff under Affect Backfacing determines how much of the surrounding area is affected. You can see how big the area affected is when you pick vertex under selection. The colour the vertices of the surrounding area determines how much they are influenced.

Here I'm using Polygon selection to push in an area of the mesh closer to the skull, closing the gap by using the y axis arrow. I'm using a Falloff of 5. This is trial and error depending on the area you want affected. Result is on the right.
By selecting a vertex or element and pressing delete, you will completely remove it. Note that this might look weird on the textured mesh ingame. There are some instances however where this is necessary, which I'll illustrate later in this tutorial.

Texturing your mesh

Adding a diffuse and normal

Some might prefer to edit meshes with it's textures applied so I'll add a little section on how to do this. While having your mesh selected press M. This will open up the Slate Material Editor. Double-click your mesh name under Scene Material (1), this will open up the Navigator and fill View1. You'll want to move the active area in View1 via the Navigator (2), position it so the red/green blocks are visible. Now in View1, double-click on the top box (3) that has "textures" and "bitmap" in the name. This will open up the Bitmap Parameters (4). When you click on the texture path right under the header, this will open a file-picker (5). Browse to the textures that came with the mesh download. In the case of my hair the path would be:
..\ApachiiSkyHair_v_1_5_Full-10168-1-5-Full\ApachiiSkyHair_v_1_5_Full\Data\textures\actors\character\hair\apachii\Raonjena\

texture1


Once selected, you'll notice the little icon in View1 changed, but no textures are applied to the mesh yet. Now, double-click the box that has "Norm" in the name from View1. Click the texture path behind "Normal:" in the Parameters box. This will open another menu in the same area that looks exactly like the one you just saw for the first texture (4). Again, click the texture path directly under Bitmap Parameters and browse to the texture location. This should be the same as the first one, and it should default to that location now. You should now see the texture applied to your mesh!
texture2



















Adding a working alpha

Open up the Material Editor again with M. Double-click the main box, select Blinn in the dropdown menu under Shader Basic Parameters and check 2-Sided.
alpha3

On your diffuse texture box, check Image Alpha under Alpha source (1). Select the box for the diffuse texture, hold shift and drag and drop to duplicate it (2).
alpha1
Now drag and drop a ColorCorrection box (3) from the Material/Map Browser into View1 (4). Doubleclick it and change the dropdown values for all the channels to Alpha on the right under Basic Parameters (5).
Click and drag the bubble on your duplicate diffuse (6) and connect it to the bubble on the ColorCorrection box (7). Now connect the other bubble on the ColorCorrection box (8) to the bubble on the main box next to Opacity (9).
alpha2

Weighting your mesh

Basic

Now for the fun part. Remember when we removed the skin at the beginning of this tutorial? We'll be adding it back in now.
It's function is weighting the mesh down according to the bones your mesh is linked to.

You can use whichever mesh you plan to replace ingame and take it's bones for your project. This way the mesh will import without issues and cause no crashes ingame.
The game can become unstable when the number of bones on the mesh you are replacing isn't equal to your new mesh and meshplorer currently does not allow it anymore and will throw an error. Knowing that, use either the human skull, any of the CC hairstyles or for instance Allers hair to steal bones for your weighting dependent on which mesh you plan to replace ingame.

Now on most hairstyles we can simply add a 'head' bone that will automatically affect the entire mesh.
This means that when the characters' head animates, the hair will move with it at the same angle. This is fine for short bobs and updo's but can cause clipping on longer styles. It's also adequate for testing purposes, as we'll need to go ingame a couple of times and test out our hair and subsequent changes on (an unwilling) Shep.
Select your mesh. Above Editable Mesh on the right of the viewport you'll notice it says Modifier List with a dropdown arrow. Click it and type in "skin". This will jump you down, select Skin there. Now under Parameters press the Add button next to "Bones:", highlight Head in the popup window and press Select.
weighting1



















To actually see what just happened, press Edit Envelopes right under Parameters, you'll see the entire hair mesh turn bright red. Red indicates that it is fully affected by the selected bone, which in this case is the Head bone. You'll notice it also displays the actual bone inside of the mesh with axis arrows attached to it.
weighting2



















Intermediate

Using skin-wrap we can copy the weights of another mesh onto the one we've created. In terms of meshes that generally have the same shape and are not horribly complex, this method will do nicely.
What we want to do is find an existing mesh that has about the same length, let's say.. Allers hair. To make this easier, I have uploaded the hairstyle here.

As explained earlier, psk files are opened through the ActorX Importer under MAXScript, Run Script. Import the hair you just downloaded. Now select your own mesh. In the Modifier List type in "skin" and select Skin Wrap.
weighting3



















Under Parameters, you'll see an empty box with an Add button below it. Click it and select the other mesh. In this case it should add HMF_HIR_PROJessica_MDL to the previously empty box now.
Click Add again to remove the highlight, make sure Weight All Points is checked, then click the Convert To Skin button at the bottom of the Parameters box. You'll now have skin and skin wrap listed above editable mesh, you can remove skin wrap.

Advanced

For the masochists among us, manual weighting explained in short. I want to use the bones that come with the Allers mesh, so I'll be opening that one again and deleting the hairmesh. As before, ActorX Importer under MAXScript, Run Script.
We'll add the Skin modifier, then add two bones to the envelope: Head and LeftCollar.
weighting4

Select Skin above Editable Mesh, In the list of Bones, select Head. Click on Edit Envelopes so you can see which area of the mesh the bones affect. As you might have noticed, the Head bone affects the entire mesh, we'll want some of the lower parts affected by the Collar-bone so we minimize clipping, so select LeftCollar now. See where the bone is? Right on our ponytail.

Scroll down to Weight Properties and uncheck Paint Blend Weights. Now you'll see a little wrench-tool icon there, click on the Paint Weights button right under it. When you move your mouse over the mesh now, your cursor will change. There are two ways we can adjust the brush: in size and strength/opacity. To adjust the size, hold control and shift while you drag and hold your left mouse-button up or down. You'll notice the brush changing size and it affecting the displayed radius number. To change the strength of the brush, hold shift, control and alt while you drag and hold your left mouse-button up or down, you'll notice the value for strength changing.
Now let's paint some weights! Red is fully affected, yellow less so, blue etc. A softer brush will allow you to create smoother transitions. You can switch between head and leftcollar if you make a mistake. You'll notice that whichever area you painted over on the leftcollar is now reflected on the head. Aim for something like this:
weighting5



 

Exporting and testing your mesh ingame

First, delete the head mesh out of your project, you can leave the bones. Just select the head and hit delete. Now to export your hair, click the utilities tab on the right navbar.
Click on More..., select ActorX and hit OK.
export1



















This will open an export menu in the right navbar. Select an output folder and type in a name for your mesh. Scroll down and uncheck bake smoothing groups, now you can hit Save mesh/refpose.
export2

Now watch the following tutorial by WarrantyVoider for the remaining steps on how to get your mesh into the game. For reference, the PCC files containing the hair are as follows:
BIOG_HMM_HIR_PRO_R.pcc (male) and BIOG_HMF_HIR_PRO.pcc (female)

Note:
Do NOT skip a step when importing and saving va the UDK. You will need your mesh to be a UPK package, not a PSK when you import into the game via ME3Explorer.  



Converting the hair texture

I use photoshop for this. As Mass Effect uses it's own system for the recolouring of hair to conform to CC colours, you'll need to convert your texture to work correctly in the engine.
There's a simple way of doing this. Open the texture in Photoshop, add a new layer and paintbucket it #008e00. Now doubleclick the layer and select Multiply as the blend mode.
Save as a DDS: DXT5 with integrated alpha. If you can't you're probably lacking the plugin, you can get it here =)

To create a texmod .TPF for the hair, the identifier to replace the deprecated ME2 custom cute hair textures is 0x487289A3. For a tutorial on creating a texmod .TPF, check here.
To use the custom cute textures on the Shep that's testing the Mesh, use Gibbed and change the texture values for Hair_Diff and Hair_Mask to BIOG_HMF_HIR_PRO.Hair_Short02.HMF_HIR_PROShort_Diff 

Note: If you have any transparency issues ingame, you'll have to check the alpha channel on your texture. It might be that the contrast is too low and your white's not really white in which case the game will make the entire hair slightly transparent.

 

Troubleshooting texture problems

When you go ingame to check your mesh, there are several potential problems with mesh-imports that aren't always easy to spot in 3dsMax.
ingame1


















This picture shows the first I want to cover nicely. This weird lighting issue you are seeing has to do with duplicate strands overlaying eachother in the mesh. There are a few tricks to spotting these early and ways of fixing the issue.

In 3dsMax, when you have enabled the alpha texture layer, you might have noticed a weird transparency issue with some of the elements. It's easy to spot on this particular mesh as the elements are quite large on the top of the head.
troubleshoot1



















If you haven't applied textures at all, switch to [Perspective][Consistent Colors] and you might notice weird blotchy spots on the mesh. It SHOULD be evenly tinted in either white or grey per element.

Thirdly and consistently, when you select the mesh and use the Element selection tool, you'll notice when clicking some strands that they are in fact dark red instead of the normal bright red. I'll emphasize the difference with an image comparison below:
troubleshoot2



















From what I can gather, the darker colour indicates the back of an element. When the back is exposed in Mass Effect 3's engine, the lighting on it sort of inverts itself which causes the weird blackness. It can also cause weird streakyness in thinner strands with alpha transparency. Seeing how some strands will either curl around and reveal all sides from one perspective or show it's back some other way, you'll have to decide on a case by case basis whether to completely remove or simply edit elements when trying to fix this issue.

Simply click on an element and it will cycle through both overlayed elements. Select the darker red one and hit delete. You'll need to be careful you don't create any bald spots while deleting strands.
Also check out the following method of dealing with these strands by andrastessanctifiedgirdle on Tumblr who explains how to easily flip them as an alternate to deleting or moving them.

If you still see some areas of the hair ingame where the strands don't look right, make a couple of screenshots so you know where this is happening and go back into 3ds.
In much rarer cases you'll notice that when you pull a strand out, it will be weirdly connected and stretch another strand as you pull! Control select the second strand as well, then pull them both further out. You'll want to switch from element to polygon selection and select those stretched bits and delete them. They are sometimes connected to another normal strand but not always, if they are let the normal elements be.
troubleshoot3


Note: Save your project as a max file, so you preserve the skin and weighting settings between exports. This will be better to load in inbetween small edits then working with your exported mesh.
ingame3
Fixed!

Have fun and good luck =)