an autumn shade of azure (bluefall) wrote in masseffect,

Generating a face code for an ME1 Shepard

Edit 4/15/2012: So I learned a lot more about this process between 2 and 3 and have learned still more than that since people started looking into the issues with importing to 3. And it turns out that the facegen process is more complicated than I at first believed, and the ME1 sliders actually have a slightly different value range than ME2 sliders in some cases; and so many of these results will be off by a tick or two for some Sheps and *wildly* off for a few. Also, back-porting your code to ME1 won't yield a perfect, 1:1 match, though the difference should be difficult to notice, unlike ME2->ME3.

Unfortunately, even with these problems and even after ME3 1.02, this is still one of our more viable methods for getting a 3 Shep to look right :/


Ever posted a screencap of your awesome Shepard, been asked "hey, can I have that face code?" and had to say "sorry, it's an ME1 import"? Ever looked at one of your own imported Shepards and thought, "you know, he doesn't look quite right in ME2, if only I could just tweak his cheekbones a little further forward"? Ever gotten as far as Chora's Den and suddenly realized your Shep was a Jess, not a Jennifer, or should have AI Hacking instead of Medicine as a bonus talent, but it was too late to do anything about it because you could never, ever accurately reproduce her face if you restarted your game? In short, have you ever wished beyond all reason that there was a way to get a face code from an ME1 face?

Well, after many, many hours of frustration, math, fast-forwarding through the ME2 intro fifty-odd times, and dicking around with the Gibbed save editor, I've discovered an inefficient, pain-in-the-ass, but basically effective way to pull that off! Because I figure this is something other people might be interested in, and because I'd love to spare anyone else who wants to try this as much of that work as possible, I thought I'd share the process, since I'm happy to have found this comm and it seemed as good a first post as any. :)

Edit: femSheps take note - merdink has written and linked a PHP script that will automate this process! Saving you a great deal of math. Check out the comments section. :D


Face codes themselves are pretty easy to read once you get used to them, but you really don't want to try to calculate one by hand - particularly given the way that the game stores that information - so basically, what we're going to do is figure out the slider values for our original ME1 face (like, "fifth tick left of center on the neck thickness slider", "eighth tick over on the eye color slider"), then recreate that face in an ME2 new game and let the game itself generate the face code for us.

Okay. To begin, make sure you have a copy of the Gibbed save editor (Xbox users will also need to know how to transfer saves to a PC - I can't help you with this, but there are a few guides floating around out there).

Now, import your ME1 Shepard of choice into ME2 (keeping your imported face, naturally), and save this new game as soon as Miranda starts yakking at you about grabbing the pistol from the locker. Quit the game.

Fire up the Gibbed save editor, load the new save you just made, and find a pencil and some scratch paper. A calculator's not a bad idea either.

The info you're looking for is under the Raw tab; go to the Squad section, expand the Player entry, then Appearance, then Morph Head, then click the [...] button next to Morph Features to bring up the submenu.



There are two basic categories of Morph Features. First you've got... let's call them "static" features, like facial structure, skin tone, eye shape, hair color - these sliders let you cycle through several fixed, preset options. If you look at these choices in the in-game character generator, they might have anywhere between three and sixteen "ticks" on the slider you can pick between. We'll start with those, because they're easy.

For facial structure, scroll down a ways until you find the section with a whole bunch of race_x entries. You want to find the one that isn't 0 (might be 0.4, might be 1; the value doesn't matter, just that it isn't zero).



You'll notice there are nine different race entries, from "young black" to "liara." (A male character will have only six entries, ending with oldCauc). They correspond exactly to the nine ticks on the facial structure slider (or six, if you're male); if you're race_iconic, the seventh one down, the slider labeled "facial structure" should be on the seventh tick (from left to right, with the first tick being 1).

Eye shape is the same. There are nine (or eight, for males) possible eye shapes; if the fifth shape has a value greater than zero, your eye shape slider should be on the fifth tick.



(Don't be fooled by the naming inconsistency - eyes_slantDown is actually the sixth eye shape, even though it doesn't use the eyeShape_X naming structure. Likewise, for dudeSheps, eyes_SlantUp and eyes_SlantDown are 4 and 5, despite not following the eyes_Shape convention of the other six choices.)

Mouth shape is not quite as simple. FemSheps will see the following entries scattered through the list:
mouthShape_iconic (tick 1)
mouthShape_liara (tick 3)
mouthShape_ashley (tick 2)
mouthShape_oldAsn
mouthShape_oldBlk (tick 5)
mouthShape_yngBlk (tick 6)
mouthShape_yngCauc (tick 7)
mouthShape_yngAsn (tick 9)

If your femShep has none of these (they all =0), you've got mouth shape 4, 8, or 10 (all three are completely identical, just flip a coin. 4 was probably supposed to flag the unused _oldAsn, but who knows what's up with the other two).

DudeSheps will see this instead:
mouthShape_centerKleft (tick 1)
mouthShape_Diddy (tick 2)
mouthShape_overBite (tick 3)
mouthShape_underBite (tick 4)
mouthShape_thin (tick 5)
mouthShape_pinchedSides (tick 7)
mouthShape_Philtrum (tick 8)

If your dudeShep has none of these (they all =0), you've got mouth shape 6 or 9 (again, they're identical as far as I can tell).

Unfortunately, nose shape is far more complicated than it's worth, and makeup has me stumped at the moment, but the different noses and makeup colors are all distinct enough that you should be able to figure out the right one just by looking at your face as you're actually building it. I can tell you how to look up beard shape, hairstyle and complexion, but those are completely obvious to pick between so it's a waste of time to go digging for them.

Eyebrow shape can be tricky to eyeball, though, so let's look that one up. This setting is actually in a different menu; close the Morph Features window and open the Texture Parameters window, and find the entry that says HED_Brow.



There'll be a long string after the equal sign. Scroll over to check the very end of it.

FemShep eyebrows will be one of the following:
_AngularBrow (tick 2)
_ArchedHighBrow (tick 3)
_AssymBrow (tick 4)
_GroomedBrow (tick 5)
_PluckArchBrow (tick 6)
_ShortArchBrow (tick 7)
_SoftArchedBrow (tick 8)
_ThickBushyBrow (tick 9)
_ThickWispyBrow (tick 10)
_ThinArchedBrow (tick 11)
_ThinBrow (tick 12)
_WispyBrow (tick 13)
_FlatDiamondBrow (tick 14)
_ThinnerBrow (tick 15)
_SquareBrow (tick 16)

DudeSheps only get seven choices:
_ArchedBrow (tick 2)
_BushyBrow (tick 3)
_FatBrow (tick 4)
_FuzzyBrow (tick 5)
_ThickBrow (tick 6)
_UniBrow (tick 7)

If you have no eyebrows, you're at tick 1. I'd be really surprised if many Sheps have no eyebrows, though.

Anyway, close that up and go back to Morph Features; the easy stuff is over now, and we move on to what I'll call the "dynamic" features, like neck thickness, chin depth, facial gaunt, etc, which let you slowly rescale a single aspect of your face. Every single one of these sliders has 31 "ticks" - the exact center of the slider is the "default" height for a mouth, for example, and you can move it fifteen increments in either direction.

These are an enormous pain in the ass, because there isn't one value for "neck thickness" in Gibbed. Instead, you'll find "neck_wide" about a third of the way down the list, and "neck_thin" about twenty entries later (if you're a femShep, that is. DudeShep lists are better organized for some reason). If you set your neck thickness to the dead center of the slider, both values will be zero; otherwise, one will be zero, and the other will be an unhelpful decimal amount, signifying how far away from the center your slider is set.



So we divide the slider into two halves, with fifteen ticks on each side. Sticking with femShep neck thickness, if your neck is as thin as it can get, you'll see neck_thin=0.3. If your neck is as thick as it can get, you'll see neck_wide=0.3 instead. Your neck gets thinner as you move left and fatter as you move right, so the left side must have neck_thin values, and the right side neck_wide values. And if it takes 15 ticks to get from 0 to 0.3, each tick must be a 0.02 increment (0.3÷15=0.02); so if Gibbed displays a value of neck_wide=0.14, you divide that by 0.02, and get seven, which means push your slider seven ticks to the right of center. If Gibbed showed a value of neck_thin=0.12 instead, that would mean pushing your slider six ticks to the left of center.



Unfortunately, other sliders might go from 0.8 to 0 to 0.8, or 1 to 0 to 1, and there's no way to tell what the endpoints are just from looking at your save....
Fortunately, I've already looked up all the endpoints and done all the math, so here it is, in order, slider by slider, with the labels Gibbed uses for each pair of slider variables. Just look at the two labels for a given slider, find the one of those labels in Gibbed that isn't zero, divide by the indicated number, and count in the indicated direction. Anything you see in Gibbed that's not on this list (like teeth_Back or eyes_BallUp or whatever), you can safely ignore.

=======> HEAD
neck thickness
neck_thin: count left from center
neck_wide: count right from center
Divide by 0.02 for femShep (maximum value of 0.3 in either direction)
Divide by 0.02667 for dudeShep (max of 0.4)

face size
shape_skinny: count left from center
shape_chubby: count right from center
Divide by 0.02 for femShep (max of 0.3)
Divide by 0.03667 for dudeShep (max of 0.55)

cheek width
cheekBones_in: count left from center
cheekBones_out: count right from center
Divide by 0.0533333 (max of 0.8)

cheek bones
cheekDepth_front: count left from center
cheekDepth_back: count right from center
Divide by 0.0533333 (max of 0.8)

cheek gaunt
This one is weird. For dudeSheps, you're looking for mouth_cheekMass (count left from center) and cheek_Gaunt (count right from center).
For femSheps, though, there's only one value, cheek_Gaunt; it runs from 0 (far left of slider) to 0.8 (far right). A value of 0.4 is dead center.
Divide by 0.026667, add 1, and then count from left to right for femShep (far left tick would be 1, far right would be 31).
Divide by 0.06 for dudeShep and count in the correct direction from center, as normal.

ears size
ears_small: count left from center
ears_large: count right from center
Divide by 0.02667 (max of 0.4)

ears orientation
ears_in: count left from center
ears_out: count right from center
Divide by 0.02667 for femShep (max of 0.4)
Divide by 0.05 for dudeShep (max of 0.75)

=======> EYES
eye height
eyes_PosDown: count left from center
eyes_PosUp: count right from center
Divide by 0.0133 for femShep (max of 0.2)
Divide by 0.02 for dudeShep (max of 0.3)

eye width
eyes_narrow: count left from center
eyes_wide: count right from center
Divide by 0.02667 (max of 0.4)

eye depth
eyes_back: count left from center
eyes_forward: count right from center
Divide by 0.02667 for femShep (max of 0.4)
Divide by 0.04 for dudeShep (max of 0.6)

brow depth
eyes_browBack: count left from center
eyes_browForward: count right from center
Divide by 0.06667 (max of 1.0)

brow height
eyes_browDown: count left from center
eyes_browUp: count right from center
Divide by 0.033333 (max of 0.5)

=======> JAW
chin height
jaw_chinDown: count LEFT if you're a femShep, count RIGHT if you're a dudeShep
jaw_chinUp: count RIGHT if you're a femShep, count LEFT if you're a dudeShep
Divide by 0.02667 (max of 0.4)

chin depth
jaw_chinIn: count left from center
jaw_chinOut: count right from center
Divide by 0.02667 (max of 0.4)

chin width
jaw_chinWide: count left from center
jaw_chinThin: count right from center (note this is a reversal from the usual smaller->larger pattern!)
Divide by 0.06667 for femShep (max of 1.0)
Divide by 0.04 for dudeShep (max of 0.6)

jaw width
jaw_narrow: count left from center
jaw_wide: count right from center
Divide by 0.06667 (max of 1.0)

=======> MOUTH
mouth depth
mouth_back: count left from center
mouth_forward: count right from center
Divide by 0.0533333 for femShep (max of 0.8)
Divide by 0.03667 for dudeShep (max of 0.55)

mouth width
mouth_narrow: count left from center
mouth_wide: count right from center
Divide by 0.02 (max of 0.3)

mouth lip size
mouth_lipsThin: count left from center
mouth_lipsFat: count right from center
Divide by 0.06667 (max of 1.0)
Divide by 0.02667 for dudeShep (max of 0.4)

mouth height
mouth_down: count left from center
mouth_up: count right from center
Divide by 0.03667 (max of 0.55)

=======> NOSE
nose height
nose_Down: count left from center
nose_Up: count right from center
Divide by 0.02667 for femSheps (max of 0.4)
Divide by 0.0433 for dudeSheps (max of 0.65)

nose depth
nose_bottomIn: count left from center
nose_bottomOut: count right from center
Divide by 0.0433 (max of 0.65)

And with that, you're done with the tedious math, thank God.

Last, you want to look up colors. A lot of the skin/hair colors you can just eyeball, but the lighting and textures in the character generator can make some of them different enough between games to be tricky, and Gibbed can help with that too. Close the Morph Features submenu, scroll down a little, and open the Vector Parameters submenu.



The entries you're looking for are SkinTone, EYE_Iris_Colour_Vector, and HED_Hair_Colour_Vector. Each entry will have a set of four values (the RGB and alpha, if you're curious); match the values you see there to the following lists to find your Shep's slider positions.

There are six skin tones. In Gibbed, in order, they'll look like
0.2120444, 0.08241421, 0.03994717, 1 (tick 1)
0.3736151, 0.1390225, 0.06381487, 1
0.5356417, 0.2195197, 0.1139209, 1
0.7592997, 0.3488649, 0.2083597, 1
0.8671356, 0.4478709, 0.3111805, 1 (tick 5)
0.9743003, 0.6054844, 0.4368128, 1

There are seven hair colors. In Gibbed, in order, they'll look like
0.9573697, 0.6592241, 0.3297291, 1 (tick 1)
0.1572807, 0.2976527, 0.147998, 1
0.08919351, 0.3488649, 0.1112994, 1
0.2157644, 0.08464151, 0.04455263, 1
0.1165758, 0.0563741, 0.03025652, 1 (tick 5)
0.04777576, 0.03025652, 0.02537128, 1
0.03702852, 0.03423021, 0.03423021, 1

There are thirteen eye colors, but the eye colors in ME2 are actually not quite the same as the eye colors in ME1 (generally the saturation in ME2 is lower), and the only way to preserve your original ME1 eyes in most cases is the direct import. And I'm afraid I simply don't have the patience to play ME1 thirteen times to get the numbers on the original thirteen shades. So, when making an ME2 face, just pick a new color that's close and that you like. If you want your old ME1 color back in ME2, write down the numbers under EYE_Iris_Colour_Vector, so you can change them to match later once you're actually playing the game and you've got everything else figured out. If you want to start again in ME1... wing it, I guess? :/

Alright, we're done, close up Gibbed!

Now, launch ME2, play through the intro yet again, and use all this info to perfectly recreate your ME1 face - then tweak it to your heart's content, upload it to a share site, or do whatever.

If you're planning to re-create the character in ME1, however, you should be aware that for dudeSheps, the hair sliders are in a different order in ME1 than ME2. The easiest, best thing to do (even if you have a femShep) is to enter your ME2 face code into this handy converter, which is much easier to use and read in ME1 than any face code.

Et voila! Thanks for sticking all that nonsense out! I hope that was helpful, and not too confusing and/or excessively time-consuming for anyone but the most cussheaded individuals like myself to be willing to use. :)
Tags: mass effect, mass effect 2, moderator post, tech support
  • Post a new comment

    Error

    Comments allowed for members only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 18 comments