Corrective Blendshapes, 3 Joint Jaw, Pose Deformers
Maya: Rigging Foundations
– Corrective Blendshapes
– 3 Joint Jaw Setup
– Pose Deformers
IMPORTANT NOTEThe corrective blendshape part of this page is an old tutorial. I now use Shapes 2 which has a free personal learning edition. The foundations of this class are still correct. But the scripts used are very difficult to use in comparrison to SHAPES 2.
The Triple Jaw still works, though the drag and drop facial rig will set this up for you.
Corrective blendshapes are handy to fix issues with skinning that cannot account for things like volume preservation. Skinning will never account for flesh squashing and stretching so we can make nice correctives to have this all work properly.
It’s important to get our skinning as good as possible before moving onto corrective shapes. Corrective shapes should be used as little as possible.
Manually Creating Corrective Blendshapes without a Plugin
We can create corrective shapes without a plugin in Maya but it is not a nice way to work. It’s worth knowing to see how the Extract Delta plugin works…
1 Duplicate the mesh at the bind pose with everything zeroed.
2. Unlock the attributes
3. Move the duplicated mesh to the side
4. Create a blendshape on the original mesh with “front of chain” in the options
5. Test the blendshape it should make no change to the original mesh.
6. Pose the character in the pose we want to correct
7. Tweak the blendshape mesh until the posed mesh looks good.**
Step 7 is very tricky in practice.
Creating Corrective Blendshapes with ExtractDeltas Plugin
Extract Deltas is a maya plugin that allows us to sculpt/model on a regular object rather than the object in the default pose. It’s a much better way of working. You can find the plugin here.
Using The Extract Deltas Plugin
1. Click on the skinned mesh in the pose we want to fix
2. Run the Copy icon (icDuplicateSkin) icon
3. Move the new mesh away from the original
4. Sculpt the corrected shape
5. Select the skinned mesh then the corrected shape and click the ExtractDeltas icon.
6. move the new blendshape away from the original
7. Select the new blendshape then the original and create a blendshape with “front of chain options”
8. Test the blendshape
Couple of things to remember with this plugin. It seems to need a clean mesh to work on, no history except a tweak node, and bindskin node. Other nodes can cause issues, so create all the corrective in one go and hook to a blendshape last.
*Corrective Blendshapes without a plugin Note
Beware there are a number of tutorials claiming that this can be done without a plugin using the parallel mode in the blend shape options and by combining two blendshapes with a -1 and +1. This seems to work on the surface but falls down when parent joints are rotated above in the chain. Instead use the plugin.
Michael Comet’s Pose Deformer also does a similar thing though in quite a different way, I’ve only found this for PC though and not Mac as it has not been officially updated for many years.
Automating Corrective Blendshapes with Driven Keys
We can automate the corrective blendshapes with driven keys to the rotation of the joint. Please note some problems can occur involving gimbal/euler rotations. Please see Pose Based Reader/deformers to get around this problem or tweak the rotation orders.
Some extra info on correctives…
Installing The Extract Deltas Plugin
Usually professional plugins have an installer, but ExtractDeltas is free so we install manually to the plugins directory.
The plugin directory varies on operating systems and the plugin files will be different for operating systems too. Plugins files are restricted to your OS. For example…
.mll = windows
.bundle = MacOSX
Plugin Locations for Each OS
On Linux, the default plug-in location is:
On Windows, the default plug-in location is:
On Mac OS X, the default locations are:
/Users/Shared/Autodesk/maya/2013 (use this one)
/Applications/Autodesk/maya2013/Maya.app/Contents/MacOS/plug-ins (more tricky to use)
Maya will check these locations for valid plug-ins. We need to load the the plugins into Maya by
1. Restarting Maya
2. Enabling with Window > Settings/Preferences > Plug-in Manager
Simply find the plugin click load and auto load for it to be available every time we start maya.
Installing The Extract Deltas Scripts
There are two scripts that come with the Extract Deltas Plugin. We use these to run the plugin. Installation is easy.
1. copy the two scripts into the scripts directory
2. Create shelf icons
The Scripts directories are found here, simply replace andrewsilke with your username…
MacOSX here: /Users/andrewsilke/Library/Preferences/Autodesk/maya/scripts
Windows 7 something like: C:\Documents and Settings\andrewsilke\My Documents\maya\scripts
We create a shelf icon with .mel
Copy Skin Command:
Extract Deltas Command:
Installing The Extract Deltas Icons
Simply put the icons in the following directories. We can hook them up to the shelf buttons by right clicking the shelf icons.
MacOSX here: /Users/andrewsilke/Library/Preferences/Autodesk/maya/2014-x64/prefs/icons
Windows 7 something like: C:\Documents and Settings\andrewsilke\My Documents\maya\2014-x64\prefs\icons
EXTRACT DELTA BUG FREE WORKFLOW
Here’s a workflow for the extract deltas plugin. Daisy chaining blendshapes and methods for achieving bug free meshes.
1. Extract Deltas likes a clean history on the bound mesh. Just the skin node and a tweak node.
2. Extract Deltas requires squeaky clean meshes. So we export to obj then re import.
3. We Daisy Chain Blendshapes so we can easily recreate shapes.
Cleaning A Mesh with Bugs
To clean a mesh one of the safest ways is to export to .obj then reimport the cleaned the mesh back into maya. There’s also .mel script to help us do this automatically which is handy for modelling and cleaning quickly.
Script: OBJ Import/Export 4.0.0 (maya script) by knurbs
Also use Mudbox to see if there’s errors, mudbox is good at spotting errors and problems.
Cleaning An Already Skinned Mesh
If a mesh causes problems after skinning here’s a workflow to fix.
Duplicate the mesh at bind pose, export to obj, import and rename. Then rebind and copy the old skin weights to the new mesh.
1. Duplicate the skinned mesh at the bind pose, make sure it hasn’t changed from the default bound pose. We can detach the mesh from the joints to be sure. Mesh > Detach Skin
2. Export the mesh as an .obj
3. Import the same .obj mesh back into maya, the mesh should now be clean.
4. Smooth bind the mesh to the same joints. The weighting can be left at defaults because we’ll use the old mesh to transfer the old weighting back on. Just check that the bind method is set to “interactive” as per usual.
5. Select the old mesh and the newly imported obj mesh.
6. Skin > Edit Smooth Skin > Copy Skin Weights (options)
7. In the options window go edit > reset settings
8. Change the Surface Association to “Raycast”
9. Change the Influence association 1 to “name”
Please note play with the settings, “One to One” can also work. Be sure that the skinned joints are exactly the same on both meshes, no extra joints. Should be the same as the original you are copying from.
10. Press Copy
We should have a clean mesh with the same skin weighting as our old mesh.
Daisy Chaining Blendshapes
We daisy chain corrective blendshapes to aid in further changes that won’t destroy driven keys.
There’s three connecting objects…
1. The corrective blendshape/s,
2. A clean mesh with no skinning
3. The skinned mesh itself
The blendshapes are connected as follows
Multiple corrective blend shapes -> Clean Mesh for Blendshapes -> Skinned mesh
The last link between the “Clean mesh for Blendshapes” and “Skinned Mesh” can be deleted and recreated easily without disturbing the driven key setups.
Channel Box > Edit delete node (with blendshape node selected)
We can add new blendshapes with…
Edit Deformers > Blend Shape > Add (options)
3 JOINT JAW SETUP
Continuing on from last weeks facial blendshapes, lets have a look at the 3 joint jaw setup. A nice handy way of creating squash and stretch in the jaw that offers a lot of flexibility with a very simple joint hierarchy. When combined with corrective blendshapes we can get some really nice stuff happening and for little effort.
How Does this Jaw Setup Work?
The jaw setup has 3 joints all in the same place for the jaw, all parented to each other. Each joint is skinned to a different part of the face.
1. Jaw Top Lip
2. Jaw bottom Lip
3. Jaw Chin
For slight variation we add a couple of null joints into the parenting structure, to get some extra control out of the face. So the hierarchy looks like this. All Joints and nulls have exactly the same pivot.
– Top Lip Rotate All (null)
—- Jaw Top Lip (skinned joint)
—- Jaw Rotate All (null)
——- Jaw Bottom Lip
——- Jaw Chin
Adding Correctives To the Jaw Setup with Mudbox
With the 3 Joint Jaw Setup we want to get our skinning as good as possible. Once our skinning is done we’re still going to miss a bit of the natural squash and stretch that happens in the face. We can also use some correctives to fix any problems with the deformation.
Corrective should be done as a last pass and not to fix major problems.
The following is a good workflow using the sculpting package Mudbox. We could easily model the blendshapes in Maya, but Mudbox’s sculpting tools give us a little more flexibility. You could also use ZBrush or any sculpting package in this step.
This workflow depends on the Extract Deltas free plugin in the above section. We use this to create the correctives.
Step 1. Create a Range of Motion Animation on the face hitting each extreme individually.
Step 2. Duplicate the face mesh at the default bind pose
Step 3. Duplicate the mesh at each of the extremes. ctrl d + unlock the attributes. Name each shape. (I use the extract deltas copy script here but its very easy to do manual)
Step 4. Send the duplicated default mesh at bind pose to mudbox, export all the extreme shapes as objs
Step 5. In Mudbox add sculpt layers (right click import) Add each extreme shape. Now we have a regular blendshape setup.
Step 6. Turn all the meshes off and correct each one by one. Sculpting the corrective fixes.
Step 7. Export all the fixed shapes back to Maya
Step 8. Use the extract deltas plugin to create the “front of chain” blendshapes. Name everything.
Step 9. Select all the Extract Delta corrective fixes and the skinned face last and add a blendshape, make sure “front of chain is in the options”*
*If problems with the meshes zeroing the meshes exporting them as an obj and then reimporting. Usually I export each shape as an obj from mudbox and import them into maya. I’ll be going back to that method as the following demo had troubles. The send to Maya/Mudbox feature is highly flakey. If in doubt export to objs!
Step 10. Automate the blendshapes with driven keys.
Joint Based Facial Animation
Sometimes it can be handy to use joint based facial animations. A long time ago I wrote a tutorial for this in the making of the cane-toad video. These days we can mix splines with joints and blendshapes to create a large range of features in our faces.
Whilst joint based systems are great in certain situations, big floppy mouths etc. While starting off I highly recommend just sculpting good blendshapes. They are far simpler and will save a lot of time their often better too!
A simple method of using a joint based system is to use driven keys like blend shapes.
And blendshapes can be combined with this system using the corrective blendshapes method too.
Here’s an example of a complex joint driven system. While it’s arguably a better solution while working on a big cartoony project. These sorts of setups can be slow to animate and give only a little bit of extra control, so for personal projects I recommend steering clear of this sort of a setup.