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.
[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
Seems like it's pretty easy to transfer facial animation. Do you have a link to read more about FACs?
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.
Thank you !
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.
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.
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.
This is what the Transmographier UI looks like.
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
- Copy the default mesh apply edit poly and transmographier modifiers
- 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.
- Copy your mesh, turn on transmographier and use the Flip Operation to make the Right morph.
- 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.
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.
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.
http://www.fxguide.com/featured/far-cry-3-digital-survivors/?ua=ipad
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
https://jeremyernst.files.wordpress.com/2011/03/jeremy_ernst_fastandefficietfacialrigging.pdf
http://www.gdcvault.com/play/1014366/Fast-and-Efficient-Facial-Rigging
FACs_Facial_Animation_Suite.zip