Friday, 20 April 2012

Lazarus Project - A Face Effect Tutorial

Premise

Hello everyone. It's time for me to provide a tutorial regarding the currently in the works fix for ME2 to ME3 face import dissatisfaction. As you may know, user woodbyte on the Bioware Social Forums has produced an excellent tool for getting femSheps from ME2 to ME3 to look more like they should. So far we've had some great results.

Before I begin, this program itself is still in development. In addition, it is only directly compatible with PC saves at present, though X360 saves are possible via workaround or if you're willing to wait, will be available later without a workaround. PS3 is stuck, unfortunately. In addition, this process has only been directed at female Shepards thus far. Male Shepards will be coming eventually. It does not change any of your story progress, only the face.

Background
The Lazarus Project works by finding the values of vertices on your ME2 face and "maps" them to the corresponding vertices on the ME3 face, then saves. A vertex is a point where two lines meet. By using multiple vertices one can create a "face" or side, enclosed by lines. You can think of this like a cube which has 8 vertices and 12 lines going between them enclosing 6 faces. If you move a vertex, the cube will look different. This is the reason ME3 faces look different; each vertex is in a different place. Lazarus moves those vertices to places they were in ME2.

Files and Programs You Need

You will need a couple of programs to attempt this. It would be wise to download and install them in the order I am providing them. If you get confused, feel free to ask for help in the comments below.

  • Microsoft .NET Framework 4 (available here)
    • You may already have this. It's a library of code used to create programs with some programming languages.
  • Microsoft XNA Framework 4.0 (available here)
    • Similar to .NET, this is a library specifically for programs like games or 3D applications. Lazarus has a 3D element, and so needs this library.
  • Any good archive extraction tool. I use PeaZip (available here). WinZip or WinRar will be fine too.
    • This is for extracting Lazarus when you download it.
  • Lazarus Project Version 0.1.1 (available here)
    • This is the core program. However it is not fully up to date as a package. Right click and select "save as" to download the "me3-lazarus-0-1-1.zip" file, then extract all the files inside to a folder you make. Lazarus doesn't need to be "installed"; you can get rid of it at any time.
    • Before you go further, go to the directory you extracted the files to and rename "LazarusProject.exe" to something else, like "LazarusProject(old).exe". We're about to replace it, but you might like the old one too.
    • Do the same for "lod_mapping.xml". Rename it to "lod_mapping(old).xml". Again we're replacing it in a moment, but you might want to continue using it.
  • Lazarus Project executable r18 (available here)
    • This is an updated version of the core program. Right click "LazarusProject.exe" and select "save as", saving it in the same place you extracted the previous files.
  • Lazarus Project map r17 (available here)
    • This is an updated version of the map, which is like a list of vertices to copy. Right click "lod_mapping.xml" and select "save as", saving it in the same place you extracted the previous files.

Make A Character

Before working with Lazarus, you'll want to actually make a Shepard! Go through the normal process of importing an ME2 character into ME3 by starting ME3, choosing "New Game" then "Import ME2 Character". In the customization screen, you can just accept what you get. It's a good baseline. Start the game, then at the first available opportunity, save the game. You'll need an ME2 save AND and ME3 save for Lazarus to do it's work.

Working with Lazarus

Now that you're all installed, go to the directory you extracted to and open "LazarusProject.exe". You should get a screen like this:


On the left, click "Open ME2" and find the save file you just imported into ME3. Next, click "Open ME3" on the right and select the save you just made in ME3. You'll see something like this appear:


Pretty huh? That's the Shepard's facial structure in both games. You'll notice some boxes at the bottom. The ones you should care about are:
  • Adjust OffsetBones - this will copy the bones under the face as well for possibly better animation and structure.
  • Adjust ScalarParameters - this will copy things like skin and hair luminosity and reflectiveness.
  • Adjust VectorParameters - this will copy things like eye and hair colour.
Check the boxes you want, then select "Save ME3". A message will pop up. Click OK. It's telling you the face has been copied to Save 1000 for the character you just made.

You should now be all done. Enjoy!

X360 Workaround

At present, Lazarus only operates on PC saves at present, but you can do this with an X360 too by following the below guidance. Beware that by performing this you are breaking the Terms of Service for your X360.
  • Follow this tutorial, for getting your save off of your X360 and back again when finished (available here). Thanks to Dimensio for this.
  • Now you will need versions of Gibbed's Mass Effect save editors.
  • Open up Gibbed's ME2 save editor and load your .xbsav you got off your X360. Save it as a .pcsav.
  • Open up Gibbed's ME3 save editor and load your .xbsav you got off your X360. Save it as a .pcsav. 
  • Perform the guidance above using Lazarus.
  • Open up Gibbed's ME2 save editor and load your .pcsav you editted with Lazarus, then save it as an .xbsav again.
  • Open up Gibbed's ME3 save editor and load your .pcsav you editted with Lazarus, then save it as an .xbsav again.
  • Transfer the .xbsav back to the X360.

Caveats, Bugs and Issues

Aside from the X360 and PS3 compatibility issues, Lazarus also has a problem with a particular mouth shape. In ME1 or ME2, if you picked "Mouth Shape 1", you'll have issues. Instead, it is suggested you use "Mouth Shape 7" instead, which looks the same. You will need to create a new Shepard in ME2 in order to change this.
If your character is from ME1, you can use the "YAML" method to find a good face code for your Shepard, then change the mouth. You can follow this tutorial from step 5 onwards to do this.

16 comments:

  1. I have considered writing documentation explicitly dedicated to extraction and re-insertion of XBox 360 save files so that readers will not have to sort out the relevant information from the more complex procedure of attempting to recover an importable save file. Should I cease being too lazy to do so, I will inform you so that you may update your information.

    ReplyDelete
    Replies
    1. Thanks. Honestly I think you put it as succinctly as possible with that tutorial and it's real appreciated; I don't own an X360 myself and while it seems like a tiresome process to get the save off and back on, at least it's possible (unlike PS3).

      Delete
  2. Ihnoc, just a quick heads-up to say that the linked executable didn't play nice with my 64bit copy of Win 7. Can't say for sure that 64bit is the reason why not, but that's what it seemed to be suggesting in the error message. Will reply to myself if I get any more information.

    ReplyDelete
    Replies
    1. I'm personally running 7 64bit Professional. I had problems with some compatibility with the new lod map and .exe when downloading them and replacing the base files, which might be what you got too. You need to make sure you're using the newest lod map and newest .exe. It took be a couple of tries to understand what was going on to be honest.

      The issue, as I gathered it, is that the format for the lod map has changed because it now includes vectors and scalars, as well as collapsing vertices. What I've linked SHOULD be correct, but if you can't get it going, feel free to e-mail me and I'll see if I can do it for you :D.

      Also, that you mention 7 as a cause, have you tried it on a different OS? You might be right, I'm not certain either :D

      Delete
    2. The lod_mapping.xml hasn't changed since the first public release.
      It is the result of a direct class serialization (VertexMapping) which I haven't touched in a while:
      http://code.google.com/p/me3-lazarus/source/browse/trunk/LazarusProject/VertexMapping.cs

      And I'm also running 7 64-bit so I am at a loss as to what the problem might be.
      Anyway, thanks for this awesome tutorial, Pheonix. I'm going to put a link to it in the project description, ok?

      Delete
    3. Feel free. It's why I wrote it after all.

      Also, can you explain direct class serialization? Assume I understand the concepts of OOP.

      Delete
    4. http://en.wikipedia.org/wiki/Serialization

      In this instance, I used the DataContractSerializer in .NET to lazily read/write to an .xml file the class which contains the map information (all it takes is a few annotations of the class fields). Not the best way to save a program's state by far (large file), but it is simple and I've abused it quite a lot on my college projects.

      Also, it's very robust. You can add/remove members to the class without breaking compatibility with older versions most of the time.

      Delete
    5. I'm hampered by lack of knowledge here, but whenever I try to boot your .exe up, it tells me it's not compatible with my version of Windows. I did have it running when Ihnoc first posted about it, so something about getting the upgrades has caused it to throw its toys out of the pram.

      As I see that Ihnoc/Phoenix is offering to help users get this fixed, I'm going to take him up on that offer and send through some saves. Let me also thank you both (again) for taking the time to work through this horrendous farce of a situation. I appreciate all your efforts!

      Delete
    6. Ok, just figured out what the problem was.
      I went through the tutorial step by step and noticed a few problems with download links.

      The r18 executable and r17 mapping Save-As links are wrong. You will just be downloading a couple of web pages. :P

      For working links open the "LazarusProject.exe"/"lod_mapping.xml" links and then rightclick->saveas "View raw file" on the sidebar.

      Delete
    7. Or follow http://social.bioware.com/forum/1/topic/323/index/11073023/1#11073023

      Delete
  3. Hi! I'm kinda new in modding and I was wondering how exactly do you change mouth shape 1 to 7? Do I have to do it in ME3's CC or do a gibbed ME2? If through a gibbed ME2 save, could you provide instructions on how to do it? Thanks for helping us get our Sheps back, and especially newbies to modding such as myself :)

    ReplyDelete
  4. Hello !!

    I tried to use the Lazarus Project for my Shepard because the one in ME3 looks like the one in ME2 but, it's not MY Shepard.

    I follow each step and this is the result : http://imageshack.us/f/827/masseffect3201206141044.jpg/

    I would like to know if there is a fix for this issue or something.

    Thank you anyway !

    ReplyDelete
    Replies
    1. Unfortunately, Lazarus is only compatible with female Shepards. Running a male Shepard through will only result in the confused mess in the image above.

      Delete
  5. Don't know if you're still checking this blog, but I just tried using LP. It looks like I've hit a problem that no one else has encountered. I followed each of your steps, in order and got the program running. However, there is no "Save ME3" button anywhere! I have saved loaded up from both ME2 and ME3 and the facial structure is displayed in both windows. I've tried check and unchecking boxes, expanding the window...every little thing I can think of. And where the "Save ME3" button is suppored to be, there's just nothing.

    Any ideas?

    ReplyDelete
    Replies
    1. I've got the same problem :(

      Delete
    2. I'm encountering the same problem! Does anyone know of a fix?

      Delete