Home Technical Talk

FACs Facial Animation System for 3ds MAX

Kinky
polycounter lvl 9
Offline / Send Message
Kinky polycounter lvl 9
Hi all,

Heres something ive had up my sleeve for a while but only just got around to presenting.

This is a plugin for 3DS MAX for easy facial animation and rigging. Please watch the video as it will do a much better job of explaining it than i can in text.
rP6Lp.jpg

[ame="http://www.youtube.com/watch?v=iYjIuyQFfRg&feature=plcp"]Youtube Link[/ame]

Features:

- Control facial poses with sliders based on the FACs system
- Store all animation key data on a single mesh object
- Adjust on a seperate layer without destroying your current pose
- Transfer poses and animations to other characters with totally different faces
- Based on Jeremy Ernst's toolkit developed for Gears of War 3

Included in the download is the rig you see in the video. The two example characters (fully attached to the rig) and the scripts and UI.

Download Here

Hopefully you guys get some use out of this. All i ask is that if you make any significant improvements to the toolkit that you get in contact with me so we can update it for everyone.

Thanks guys

Replies

  • monster
    Options
    Offline / Send Message
    monster polycounter
    Excellent tool! I'm downloading it now to check it out.

    Seems like it's pretty easy to transfer facial animation. Do you have a link to read more about FACs?
  • Kinky
    Options
    Offline / Send Message
    Kinky polycounter lvl 9
    Thanks mate.

    Just try wiki (and then the references)

    Careful though, this is some serious complicated science, it gets pretty confusing if you look into it too much.

    Also if youre interested....

    This is a PPW of Jeremy Ernst's Maya version that this is based on. Theres a video somewhere on YT aswell.
  • Demiurg
    Options
    Offline / Send Message
    Demiurg polycounter lvl 6
    Amazing ! I was reading this paper and I was very inspired about setup like this, but never has enough time to experiment with this.
    Thank you !
  • Mark Dygert
    Options
    Offline / Send Message
    Awesome thread! This looks amazing! I can't believe you put so much work into making it... wow!

    I was inspired by that same talk and started messing around with my own set up making improvements, but never got as far as you did. I normally have the morphs wired to a control board and load/save the positions of the animated circles to transfer poses and animation.

    I normally use 2 axis controllers to drive a few morphs at the same time which greatly reduces the number of individual sliders and allows for a slightly more natural flow to the animation.
    FaceControlRig.gif
    The center point is zero for all morphs (Snapping the circ to the spline box brings all morphs back to zero which is typically a root pose).
    Moving the circ up, drives both eyebrows up.
    Moving the circ down, drives both eyebrows down.
    Moving it left or right, drives each eyebrow down independently.

    I will sometimes add point helpers inside the box and snap the circ to it, if its a pose I will be using often, or need to hit that exact pose later when coping keyframes is impossible. I was working on a library system but never got it fully functional.

    I have a 2 axis controller for the upper eyelids, another for the lower lids, another for smile/frown and another for the eyes which controls eyes wide and blink. This is helpful in exaggerating what you can do with the eyelids controls.

    I also use SM Facial Control board, which has a nice compacted interface for individual sliders (like speech phonemes). Click/Drag in the bar to set the key and other various controls for zeroing and maxing out the channels. Here is the Source code that Shibu later released because the original was encrypted maxscript.

    Oh I also use Transmographier that is EXTREMELY helpful in mirroring morph targets in real time (unlike the junky copy/paste mirror morph tool inside of max). So all 6 of the eyebrow morphs that went into rigging up that circ came from one morph, "Left Eyebrow Up" technically 2 but "Left Eyebrow Down" is just a reversed Up morph with some slight tweaks. It saves an incredible amount of time when you only have to manipulate half of the face and its great that it updates the other side in realtime as you work. Why Autodesk hasn't bought this little gem and stuffed it into max I'll never know, I really don't ever want to make morphs without it. OH... AND it allows you to pipe in a asymmetrical mesh... Grant Adam really knocked one out of the park with this script.
  • Kinky
    Options
    Offline / Send Message
    Kinky polycounter lvl 9
    Awesome post as always Mark.

    Ill admit that the UI was a slightly rushed affair as i was doing this at work and needed to do it as quickly as possible. Theres probably different ways to do the UI that would be more efficient, i just used Ernst's UI layout.

    Would love to see if you can do something impressive with what i started if you get the time. I was hoping that other tech artists would see the potential in this and we could really push it.
  • acitone
    Options
    Offline / Send Message
    Kinky, I haven't taken the time to read the full thread but it seems that I cannot download the file from RS. Is there any way you could upload it to another site? Thanks for this.
  • acitone
    Options
    Offline / Send Message
    Mark, if you could shed some light on the use of that Transmographier modifier I'd appreciate it. From what you're saying I'm getting basically an idea that you can manipulate only half of a copy of your mesh for morph target creation, and the Transmographier will be able to create symmetry. That sounds really useful.
  • Mark Dygert
    Options
    Offline / Send Message
    I love transmographier, it saves me so much time and allows me to make great asymmetrical morph targets while still working symmetrically. The lack of tools like this in Maya and (native max) are really a huge set back to the morpher/blendshape workflow. I'm excited that going into the next hardware cycle morphers will be used more often. Naughty Dog is already using them in the Last of Us on the PS3, so I can't wait to see what they do with a lot more processing power. If we get to use other tools like GDeform and joint angle deformers, then we're going to see some really amazing stuff happening.

    This is what the Transmographier UI looks like.
    3dsmax%20Transmographier.jpg

    Transmographier-workflow.gif
    With Transmografier you start out with a mesh that is perfectly symmetrical, then copy it and call it DEFAULT, this will be the "Undeformed Symmetrical Mesh" target in Transmographier (top of UI) that all of the morphs will target. Anytime it wants to know where a vert was on the original it will check this mesh.

    Making Left, Right and Both Morphs
    1. Copy the default mesh apply edit poly and transmographier modifiers
    2. In the edit poly modifier, start making your changes by editing one side, I do left first and I turn off the transmographier modifier so it only shows the left side.
    3. Copy your mesh, turn on transmographier and use the Flip Operation to make the Right morph.
    4. Do the same for Both, only set the Operation to Mirror
    Note: you can toss another edit poly on top of your stack and do another minor asymmetry pass, sometimes it looks a little weird when things are perfectly mirrored.

    When you go to do the next series, copy the last morph mesh, delete all of the modifiers and strip it down to the base "editable poly" shape. Apply fresh versions of the modifiers and on you go. If you get tired of moving the meshes and setting up the modifiers maxscript comes in REALLY handy.

    Optional: If you want asymmetry, you can push and pull a copy of the default mesh into the shape you want and pump that into the asymmetry slot at the bottom. But its important that you only push and pull don't edit the geometry by adding or removing verts, edges or faces, it will stop being a valid morph target of you change the number of verts or cause them to be renumbered.

    The Stack for Left Right Both morph targets look the same, only the Operation settings in transmographier change to mirror and flip.
    • Edit Poly For another minor asymmetry pass
    • Transmographier DEFAULT target, Asymmetry target, Mirror and flip operations
    • Edit Poly Push/pull to the left side happen here
    • Morpher Use this to dial in other morphs, this comes in handy when doing eyelids, or when you need to open the mouth.
    • Editable Poly Base shape, don't edit this.
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    Nice looking suite you got there, would love to try it, but it seems like the download link is bugged? (EI: the only file is a 0.00KB file and I cannot download it).
  • Mark Dygert
    Options
    Offline / Send Message
    It looks like the link on his site is also down =/
    http://matthewdean3d.wix.com/portfolio

    I dropped him a email through his contact link, hopefully it will be back up soon. I'll have to hunt around and see if I have it somewhere, when I have the time.
  • acitone
    Options
    Offline / Send Message
    That's a great guide Mark, that makes it easy to understand, thanks. This will really save a lot of time instead of having to do both sides of the mesh on every morph target. I just downloaded the modifier from the website.

    So Maxscript can be used to setup the morphs and modifier stacks automatically after the first series of morphs are created? Can you share some wisdom on that? I'm going to look at the "Facial Rigging" lessons from Paul Neale that may also shed some light. That script would really help when you got a bunch of morphs to do.

    It's great that some developers/game engines can now use morph targets for facial animation since it's able to provide deformations better than bones-only facial animation.

    I was able to grab the Facial Animation system from Kinky thru PM. Here's the link, he said it's temporary

    https://dl.dropboxusercontent.com/u/13423559/FACs%20Facial%20Animation%20Suite.rar.
  • Ace-Angel
    Options
    Offline / Send Message
    Ace-Angel polycounter lvl 12
  • almighty_gir
    Options
    Offline / Send Message
    almighty_gir ngon master
    now if only someone would write a script similar to the one used on Farcry3 so that i could just use 1 rig for every head i make with minimal effort in skinning...

    http://www.fxguide.com/featured/far-cry-3-digital-survivors/?ua=ipad
  • jfeez
    Options
    Offline / Send Message
    jfeez polycounter lvl 8
    For anyone wondering, heres a pdf of the gears 3 face rigging from a quick google search. For anyone with vault access the actual presentation is on there, really good watch.

    https://docs.google.com/viewer?url=http%3A%2F%2Fwww.unrealengine.com%2Ffiles%2Fdownloads%2FJeremy_Ernst_FastAndEfficietFacialRigging2.pdf

    Havent had a chance to play with your script yet but looking forward to when im back at my pc =)
  • skyrick
    Options
    Offline / Send Message
    skyrick polycounter lvl 7
    +1 for a new link please :neutral:
  • Mark Dygert
  • dg3duy
    Options
    Offline / Send Message
    dg3duy polycounter lvl 7
    +1 for a new link for file
    FACs_Facial_Animation_Suite.zip
Sign In or Register to comment.