Tuesday 13 March 2012

Face Effect - Tutorial for importing variables from ME2 to ME3 (Version 1)

The Face Effect
What does this method do? It provides a lengthy movement of data using Gibbed's Mass Effect editors to provide a closer approximation of your original Shepard than the YAML method. I've only done this with femShep, but I'm sure the process can be used with manShep.

It is worth mentioning that the closer you can get your Shepard in the ME3 character creator when you import using this method, the better results you have and certainly combining this with the YAML method might be prudent. This method works by changing variables tiny amounts. The rule of entropy is partly to blame for this error and only your eye will verify how much it looks like your Shepard.

For an example (note this example didn't set the hair and eyebrows because I was lazy, the tutorial explains this too):

Disclaimer
This is a temporary fix for the ME3 import bug. The fix is produced by a fan and so I don't accept any liability to loss of data or damage to hardware. The chances of this are remote but regardless, you choose to follow this
tutorial at your own discretion. In addition, back up your save files and profile files on ME2 and ME3, just in case.

Xbox saves
If you're a PC user, skip this section. If you're an Xbox user, Dimensio kindly found a link to get your save off of and back to the Xbox.
http://www.gamefaqs.com/boards/995452-mass-effect-3/62162976

Preparation
This method requires that you already have a save file. It expects that you import one from ME2 (and thus all your plot variables as well). It also requires that you watch the first cut-scene in order to have a controllable Shepard (this isn't entirely true, but it is easier to notice differences when you can control them).

Also, you will need two versions of Gibbed's Mass Effect save editor. One for ME2, one for ME3. Links below:
Mass Effect 2 Editor:
http://mod.gib.me/masseffect2/saveedit_rev25.zip  (official version, doesn't work for Xbox saves)
http://social.bioware.com/project/4373/&v=discussions#files  (modified version, works for Xbox saves)

Mass Effect 3 Editor:
http://svn.gib.me/builds/masseffect3/ 

Extract these in folders you can find. I personally used the desktop. Both applications have a pink square as an icon, if you're confused as to what you need to see. Finally, make sure to have your ME2 save on hand so you can import it into ME3.
  1. Start ME3, go to new game then click “Import ME2 Character”. You will be presented with something that isn't your Shepard and possibly a message saying “Face reconstruction required” click the box to get rid of it.
  2. Now choose the complexion, hair style and brow style that best represent your Shepard. This is important because changing it can be more difficult and requires knowledge I don't have right now. You may also want to add scars. I know they should have imported from ME2, but I'm not certain of this (I always used the regenerator). Everything else will be set later.
  3. Once the complexion, hair, eyebrow and scars are correct (or as close as you can get) accept and start the game. You can make adjustments to other things as well, but these may be reset anyway. This method gets you closer to the Shepard you had but a lot of the leg work can be done in the character creator as well.
  4. Play until you gain control of Shepard (don't worry, no spoilers :D)
  5. Save the game TWICE, as in, in two different slots. You'll end up with Save 0001 and Save 0002, hopefully. This is so you have a backup.
Variable Import Explanation 
This section is where the magic happens and is also very laborious. You'll be double clicking, pressing CTRL+C, double clicking then pressing CTRL+V a lot, so I have done this in stages and explained what you are changing as we go. We aren't copying all the data, only the bits I understand to get a result I think is not bad.
  1. Open Gibbed's ME2 save file editor and open the save with Shepard you want the appearance from.
  2. Navigate to the “Raw” tab, then scroll down until you find “Player”. Click the + next to it to open it up, then do the same for “Appearance” then “Morph Head”. You will have a set of collections ranging from “Accessory Meshes” to “Vector Parameters”.
  3. Open Gibbed's ME3 save file editor and open the save you just started ME3 with. Navigate to the “Raw” tab, then scroll down until you find “Player”. Click the arrow next to it to open it up, then do the same for “Appearance” then
  4. “Morph Head”. You will have a set of collections ranging from “Accessory Meshes” to “Vector Parameters”, like below:


So you'll notice these look rather similar huh? That's because the system governing a face morph is very similar, minus a view variables. To explain what you're looking at, these fields you won't be using:
  • Accessory Meshes are things like hoods and visors. For Shepards, these are governed by a separate system (it's more for companions).
  • Hair Mesh is the mesh of your hair. The data input here is what's called a constant because each mesh has a name. To this end, to get the hairs available to you, you needed to set this in ME3.
  • LODxVertices are “level of detail” vertices. I will be honest in not being sure how much these affect the face but from other games these variables may only be used for long draw distances. Nevertheless, the data isn't directly transferable without some frame of reference.
These fields you might be using:
  • MorphFeatures is something I'm not sure about. When I transferred these variables, it didn't seem to have any effect. You might try not bothering with them.
  • OffsetBones is the bones under the skin that control the FACE SHAPE. This is the most important bit really, but colour also is a factor.
  • ScalarParameters is effects on the face, stuff like lighting interaction (such as how glossy the hair is).
  • TextureParameters is a collection of data just like Hair Mesh. It uses named variables which hopefully you set in ME3. This would be things like your complexion, hair and brows styles.
  • VectorParameters controls colour, including skin tone, eye colour and makeup.
Now you know what everything does. Now onto the actual movement.

Import
I'll use VectorParameters as an example, but the principle applies to all the fields above. Remember the important ones are OffsetBones, ScalarParameters and VectorParameters.

First, open the VectorParameters collection by clicking the “..” button next to it in both editors. You'll end up like this.


This is the raw data controlling your face. For example EYE_IRIS_COLOUR_VECTOR controls the colour of Shep's iris. You see a list of variables on the left section and their values (such as RGB or XYZ) on the right.

If you put the two windows side by side, you might notice some differences! That's what you want to import. Highlight the variable, say Eye_Iris_Colour_Vector in both editors and open it up on the right. Double click on the first values (in this case A, which stands for Alpha) in the ME2 editor to select it all, press CTRL and C to copy it, double click on the same variable in the ME3 editor and copy it into the respective place (again, A). The diagram below might explain it better.


Good job, that's one variable. Now you might notice that the order of the ME2 editor is a bit random whereas the ME3 editor is ordered nicely. The process I work with is to pick the variable in the ME3 editor, find it in the ME2 editor then copy it over. A note, if you find that there is a variable in ME2 but not in ME3, or vice versa, don't worry too much about it; the unfortunate thing is this isn't a precise movement.

Now, do this for each variable in OffsetBones, ScalarParameters and VectorParameters. It can take up to an hour.

If anyone needs an explanation of what they're doing or some help, just let me know.

Credits

  • Gibbed - Most of the legwork for this method comes from Gibbed's save editors and so he should get the most credit for this; being able to interoperate and import data from saves when they're compiled must have taken ages to understand.
  • Clarian - A user who followed what I was suggesting on the Bioware social forums and helped delve into things I didn't understand.
  • Malcroix - A user on the Bioware social forums who's given this method credence by beating me to the jump and posting the full idea first!
  • Dimensio - A user on the Bioware social forums who very quickly provided a link to getting saves from the X360, a console I personally don't own.
Original link: http://social.bioware.com/forum/1/topic/323/index/9661093/126#9827561

15 comments:

  1. Thanks a ton for drawing my attention to the OffSet Bones values, this has improved my Shep a ton. There are still some artifacts to (e.g. the upper lip is way too large and protuberant), any tips on fixing that?

    Also, do you happen to know which variable corresponds to the "brow color" setting in the in game char-gen? It's not "HED_Brow_Tint_Vector", and I can't find any other candidates.

    ReplyDelete
  2. Hi Beanstalker.
    At the moment, it looks like very minor features are related to the LOD collection. That might solve the face completely if it were transferable, but it's a lot of values and they might now map perfect...

    In regards to the brow colour, you want to be looking at "HED_Addn_Colour_Vector" and possibly "blonde". ME3 sets both of these as the same thing (at least for me). More likely brow is "HED_Addn_Colour_Vector" and "blonde" is used for something else.

    ReplyDelete
    Replies
    1. You're right, both of these affect brow color (more on that below), but there must be an additional variable somewhere that controls brow "density", which is also controlled by the brow color slider.

      Anyway, after playing around a bit, here's what I found:
      BOTH variables affect different parts of the brows color. I *think* "blonde" is supposed to be the color of the hair itself, slightly shining through the make-up color defined by "HED_Addn_Colour_Vector".
      Also, while the variables are identical for me as well in ME3, interestingly the are NOT the same in my ME2 save.

      Delete
    2. addendum: it seems "HED_Brow_Tint_Vector" actually has to do with the eye shadow. interesting!

      Delete
    3. Eureka!
      The variable for brow density is "HED_Addn_Colour_02_Scalar". The similar name got me on the right track, so full credit to you!

      Also figured out an additional tidbit: "HED_EyeShadow_Tint_Vector" defines the color of the eyelid make-up, while "HED_Brow_Tint_Vector" is for the area between the eyes and the eyebrows. Unfortunately, I can't seem to get those colors to a nice saturated black. An RGB of 0/0/0 seems to correspond to no make-up at all, while the alpha channel doesn't seem to do anything. Perhaps there is an additional variable for the saturation?

      (I hope you don't mind me kind of spamming your comments. I just figure maybe it will give some small help to the people coming here for advice on their own face import "Lazerus project".)

      Delete
  3. It's cool. More information is good.

    In regards to eye shadow, you might want to consider "HED_EyeShadow_Tint_Scalar" in the ScalarVector collection. That might give some insight.

    ReplyDelete
    Replies
    1. Bingo! And "HED_Brow_Tint_Scalar" does the same for "HED_Brow_Tint_Vector".

      Oh, and I noticed one more thing: My maleShep, which uses the default face and was also originally created in ME1, can be imported just fine. This could provide some clue as to what causes ME3's import routine to choke, perhaps an edit of the ME2 could work around the bug.

      otoh, maybe ME3 "cheats" and just reads some variable that says "it's the default shep". The imported version looks COMPLETELY identical to the ME3 default Shep...

      Delete
    2. If you're referring to the poster manShep (the one on the box), then there is a reason he imports fine.

      In the save file, there is a boolean (true/false) value that says whether there is head morph to be used or not. Assuming it is false, in the case of the default manShep, it will use the basic manShep that is preset, just as you describe. If is true, it falls into the head morph collections and draws that (LODs) instead.

      So you're bang on.

      Delete
  4. Thanks for the great walkthrough. I think getting the face shape more precise is one of the biggest keys to making Shepard recognizable again. The other factor would be the eyes, which seem a little less defined in ME3's character creator, but they look better in-game. Still though, it seems that in the process of streamlining the eyes in ME3 that they may have condensed things in such a way that eye details we saw before (in ME2 and ME3)are gone or diminished, and new kinds of details were added in. I've noticed sort of different mechanics in the upper eyelids and the way the brow wrinkles. Can't decide if this is a "less is more" thing or due to rearranging and rebuilding.

    ReplyDelete
    Replies
    1. The eyes are really important to me personally; it's generally considered the most emotive and defining feature of a person, why not get it right?

      You also make mention of adding new details. I would say this is the case yes; there are several new variables in ME3 but some important ones are depreciated. What is interesting is that there are more LOD vertices, but only about 158 more. From a modelling perspective, 158 extra vertices won't make a lot of difference to the model quality, so I'm not sure as to the reasoning for this.

      Delete
  5. When using of the NPC hair meshes, is it possible to decrease it's glossiness as you would one of the stock hair styles? I've been playing around with the Scalar Vector properties, and it either has no effect or it simply turns the hair white.

    ReplyDelete
    Replies
    1. If you set the scalars "Hair_Spec_Aniso_Exp_Scalar" and "HAIR_Spec_Contribution_Scalar" to lower values, that might help. Both of those values are affecting the "specular" of the hair (which is controlling lighting interaction). I believe it well become less glossy. Not certain on that though.

      Delete
    2. Yeah, those are the values I've been messing with, no luck so far though.

      Delete
  6. I followed this guide but nothing changed in game, my Shepard looked exactly the same , not sure what I could have done wrong.

    ReplyDelete
  7. Thanks for the tutorial. I've got the overal shape of my femshep back but I cannot seem to change her eyes or mouth. Do I have to go back into the CC to change that?

    ReplyDelete