Thursday, 15 March 2012

Face Codes (and why whatever you put, it won't be what you're after)

Picture by MrNiceGuy976 (

In Mass Effect 2, Bioware created the face code, a really awesome way to create a Shepard on any platform playing the game. The face code provides a string of characters, separated by '.' that set slider positions for the character creator. It's a great system and works really well.

The way this works is thus: your Shep's face has a series of values setting where parts of their face are. Consider the mouth. It has several values, including the left and right edges, top and bottom of both lips, position relative to the face, as well as set positions for when it is closed or a particular sound is being said. Now, in the character creator (even Mass Effect 1), the sliders adjusted these values. "Mouth Shape" sets all those values to preset locations set in the game. You can see these values in your save, using Gibbed's save editor.

All the Mass Effect games (and most character creators actually), use slider positions as preset locations then interpreted that data into what you see. "Mouth Shape 5" isn't saved, a myriad of values associated with that shape are saved.

Now, this is why in Mass Effect 1 compared to Mass Effect 2, having the same slider positions in both character creators had slightly different outcomes; the slider positions were associated with different presets. For example, Mouth Shape 5 gave the top lip a position of <6, 4, 160> in Mass Effect 1. In Mass Effect 2, the value of Mouth Shape 5 could have changed to <6.5, 4.1, 161>. In terms of geometry, that is a minor change, but it is noticeable. To counteract this, when you imported your Shepard from Mass Effect 1, that <6, 4, 160> for your mouth was transferred, NOT "Mouth Shape 5", and you weren't able to change the look of your Shepard to protect that data.

In Mass Effect 3, the same thing has happened. Consider the continued example:
  • Mass Effect 1's "Mouth Shape 5" gives the top lip a value of  <6, 4, 160>.
  • Mass Effect 2's "Mouth Shape 5" gives the top lip a value of  <6.5, 4.1, 161>.
  • Mass Effect 3's "Mouth Shape 5" gives the top lip a value of  <6.3, 4.2, 160.75>.
Now, remember the face code sets the slider position. The segment in the face code that sets the mouth shape will be set to "5". But "5" means something different in each game. That's why facial structure looks so different using the YAML method; slider positions mean different things.

To extrapolate this further, essentially, Mass Effect 1's slider positions sometimes sit BETWEEN slider positions in ME2 and ME3. This wasn't a problem in ME2, because the raw data was imported. Why is this a problem in ME3. Can you guess? Because the raw data is not being imported...


  1. Haha that's my picture :D

    It's good to know that at least you share the same opinion abou the face import process that I do- JUST IMPORT THE RAW DATA!!!

    1. I hope I'm not stepping on any toes by linking it. I thought it summed things up so well.

      And yeah. We have the data people. WE HAVE THE DATA!