Keep up-to-date with Free tutorials!!


Sign up to our twice-monthly newsletter today for the latest tutorials, interviews and product information.

Sign me up to receive third-party emails from 3dtotal's partners, too!

- Latest news
- Exclusive Shop Offers
- Preview early content
- Plus much more


Not Ready to take that step? OK, Why not just Subscribe to the RSS Feed

submit tutorial
1 | 2 | 3 | 4
Maya rigging - Corrective Blendshapes

| Your Rating:
rating star fullrating star fullrating star fullrating star fullrating star half
(Score 4.47 out of 5 after 17 Votes)
| Comments 3
Date Added: 17th June 2014
Software used:

Using SDKs to drive the blend shapes

We now want to add our extra corrective blend shapes to our existing blend shape node. Select the two corrective shapes and then the male_geo mesh and this time, go Edit Deformers > Blend Shape > Add (Options). Turn on Specify node and make sure the Existing nodes are set to 'correctives'. Hit Apply and Close and you should find that the 2 new blend shapes have been added to the 'correctives' node.

We are now going to drive the blend shapes using Set Driven Keys. For the majority of the time, I'll be driving the blend shapes using the rotation of the joints, but every now and then, I'll drive them using a control. I try to have joints drive blend shapes as sometimes you may have multiple controls driving the joints. For example, the FK arm controls and the IK arm controls both drive the arm joints. Therefore, you would need both sets of controls to drive the blend shape when required. By having the blend shape driven by the joint, we know that we do not need to worry about which control triggers the corrective fix.

Select male_geo and select the 'correctives' node from the INPUTS stack in the Channel Box and go Animate > Set Driven Key > Set. This should load the 'correctives' node into the Driven portion of the SDK window. Now select l_palm_jnt and hit the Load Driver button on the SDK window. Make sure all the rotation attributes for every control is back at 0 and the blend shapes are also at 0. Now, in the top-right box of the SDK window, highlight Rotate Z; in the bottom-left window, highlight correctives and in the bottom-right window, highlight both l_wrist_rZ_m70 and l_wrist_rZ_p100. With everything highlighted, hit Key on the SDK window to set the default pose. Now rotate l_palm_ctrl (this drives the joint) and set the Rotate Z attribute to -70. On the 'correctives' node, set l_wrist_rZ_m70 to 1. Un-highlight l_wrist_rZ_p100 from the bottom-right window of the SDK tool (leave everything else as it is) and hit Key. Now set the Rotate Z attribute to 100 on the l_palm_ctrl and on the 'correctives' node, set l_wrist_rZ_p100 to 1. Back in the SDK window, this time highlight l_wrist_rZ_p100 and un-highlight l_wrist_rZ_m70. Once again, hit Key on the SDK window.

Using l_palm_ctrl, rotate the palm on the Z-axis to test if the shapes are being triggered. You may notice that there is some ease out and ease in as it goes into the corrective poses. This is due to our default animation preferences being set to Auto or Spline. To fix this, select the 'correctives' node and go Windows > Animation Editors > Graph Editor. Here you will find the animation curves for the Set Driven Keys we have just created for the wrist. You can edit the animation curve here; I've set it to Linear to get a more pleasing transition as it hits the target poses. You can also add extra in-between poses using the SDK window or by adding extra keys in the Graph Editor to have more control over how the wrist goes in and out of the corrective poses. Repeat the same for the right palm.

Before moving on to the upper arm and then the shoulder, we need to do a little parenting so our joints do not inherit any extra rotation values, which they seem to be doing at the moment. For example, if you rotate the upper arm control, you'll notice that the l_palm_jnt inherits some values. Luckily, it is a simple fix. First, parent l_palm_jnt under l_armEnd_jnt and r_palm_jnt under r_armEnd_jnt. Then parent both l_shoulder_jnt and r_shoulder_jnt under spineF_IK_jnt. And while we are here, lets parent both l_upperLeg_jnt and r_upperLeg_jnt under hip_FK_jnt.

Using Set Driven Keys to drive the correctives shapes for the wrist

Creating the bicep bulge

For the bicep, I have rotated l_lowerArm_FK_ctrl by 100 degrees on the X-axis. I have then duplicated the mesh, unlocked the transform attributes and again, used the basic Maya tools to add a slight bulge to the bicep and maintain the form created by the elbow. For the most part (depending on the resolution of your mesh), you should be able to fix the pose in Maya. Every now and then though, I find it easier to take the mesh into a sculpting package such as Mudbox or ZBrush and take advantage of the sculpting tools to push and pull the form.

Before exporting the mesh out of Maya, make sure to zero out the Translate values on the duplicated mesh. This will stop it from freaking out when we bring the corrective mesh back into Maya from Mudbox. Once back in the default position, go File > Export Selected and save it as an OBJ file. Call is what you like for now. I called it l_elbow_rx100.

Working on the bicep bulge with the Sculpt Geometry Tool

Using Mudbox and Maya to correct the shape

In Mudbox now, go File > Open and load in the exported OBJ file. The main Sculpt Tools I tend to use for correcting poses are the Grab, the Wax, the Fill, the Pinch and the Bulge brushes. At this stage, I'm usually looking at plenty of reference and more importantly, putting my own body into the pose (if possible) to give me an idea of how I need to push the forms. If you'd like to work non-destructively, you could use the Sculpt Layers while fixing your corrective pose. To create a new sculpt layer, click on the white paper with a green cross icon in the Layers window.

Once you are happy with the result, switch over to the Select/Move Tools tab and select the Objects tool. Select the mesh and go File > Export Selected and save it as an OBJ file. I called the mesh l_elbow_rx100fix. Head back into Maya now and import the updated mesh. You may get a little message pop up about multiple groups and so on when you import the mesh. Just click OK to this window and then pop into the Outliner and delete the extra Sets that have been created. Make sure not to delete the male_bind_set, though. If you need to, continue to refine the pose using the tools in Maya. When you are ready, select the corrected pose, shift-select male_geo and run the 'BSpiritCorrectiveShape' command. Rename the new shape l_elbow_rX_p100 and delete the mesh we imported from Mudbox. Duplicate l_elbow_rX_p100, rename it r_elbow_rX_p100 and again, use the abSymMesh tool to create the right-hand corrective fix. Select the 2 new corrective blend shapes, followed by the male_geo and go Edit Deformers > Blend Shade > Add. Use the same settings as we used previously to add them to the 'correctives' node. Lastly, grab all the blend shapes we have created so far, group them together by hitting Ctrl+G and then rename that group correctives_geo_grp.

Using Mudbox to sculpt the forms of the bicep bulge

Driving the bicep bulge

Like we did for the wrist, we'll use SDKs to drive the blend shapes. To drive the bicep bulge, I am using l_lowerArm_jnt as the Driver object and the Rotate X attribute as the driver. I won't go into detail here about setting keys, etc, as it is the same workflow as covered in Step 6.

Using Set Driven Keys once more to drive the corrective shape

One thing I did add was an extra blend shape to give me a larger bicep bulge. The reason I added an extra bulge shape is so that we can create the full swelling of the bicep muscle during supination of the wrist. I've decided not to drive this shape with SDKs as I want to let the animator drive this corrective shape manually. Later on I'll probably hook this up to a custom attribute for the animator to turn on and off.

Supination causes the bicep to fully contract

< previous page continued on next page >

1 | 2 | 3 | 4
Related Tutorials

Introduction to rigging in Maya - The Neck and the Head

by Jahirul Amin
published on 2014-02-17

Keywords: Rigging, Neck, Head, Animation, Maya

rating star fullrating star fullrating star fullrating star fullrating star half (15)
Comments 1 Views 82935

Introduction to rigging in Maya – cleaning up the rig

by Jahirul Amin
published on 2014-05-20

Keywords: Maya, Rigging, Hands, Fingers, Thumbs, Animation

rating star fullrating star fullrating star fullrating star fullrating star half (19)
Comments 1 Views 41512

Maya - Hands and feet

by Jahirul Amin
published on 2013-10-21

Keywords: fingers, hands, maya, feet, tutorial, modeling,

rating star fullrating star fullrating star fullrating star fullrating star half (20)
Comments 1 Views 93308

Maya rigging - FINAL

by Jahirul Amin
published on 2014-07-01

Keywords: Maya, Rigging, Animation,

rating star fullrating star fullrating star fullrating star fullrating star full (18)
Comments 3 Views 62245
Readers Comments (Newest on Top)
Zuvadumacn on Mon, 01 February 2016 9:44pm
Link to BSpiritCorrectiveShape Strange, but seems, it needs to comment "source BSpiritCorrectiveShape;" string to work. (I don't know maya script, may be I'm not right :) )
Jeff Salman on Thu, 08 October 2015 7:05pm
Appreciate the tutorial. But when I download the correctiveshape script from the link at B-ling's website (I'm downloading the latest available download/link on his website ... it's the "13-02-2008 WINDOWS 32BIT RELEASE: Version 1.03 for Maya 2008" link), it's a .mll, not a .mel like it shows in your video. I'm guessing that the file that's downloaded from the link has been changed/updated. I'm having problems loading up the mll as a plugin in Maya. I downloaded the assets folder that you provide, but unfortunately, the script is not in there either. I've been searching for a day and a half to figure out how to use posed corrective shapes between Maya and ZBrush; was hoping this would work. If you have any thoughts on why it's a mll and not a mel, be great to hear it. Thanks for the tutorial.
Miseong on Fri, 12 December 2014 2:35pm
This tutorial is so good. Thank you very much!
Add Your Comment..