Using Corrective Blend Shapes to Improve Deformation
...using Mixamo and Maya

Figure 1

When it comes to character skinning, one of the most problematic areas has always been the shoulder. The difficulty is caused by a smooth skinning algorithm’s inability to properly represent the way a shoulder deforms when multiple groups of muscles slide around and change volume. Smooth skinning uses a joint as a pivot point to deform the characters skin. In areas like the fingers this works well because a large amount of their volume is bone and there is an obvious pivot point. While it is true that the shoulder does have a specific pivot point, the ball joint where the humerus meets the scapula, its rotation does not seem to come from a specific point. That’s because the articulation at the bones is driving expansion and contraction of muscles that influence the skin and maintain volume. This is true throughout the body but most prominent in the shoulder.

When using smooth skinning, it is usually best to bind the character in a t-pose simply because subsequent poses are easier to get through deformation. On the other hand if you bind your character in an A-pose, raising the arm will cause collapse and pinching no matter how you paint the weights.


Figure 2

The Auto-Rigger generates the best generalized smooth skinning based on the pose a character is uploaded in. Because the Auto-Rigger is designed to work in games, be fast and stay non-software specific, the character you download will initially have the limitations of a smooth skinning algorithm. One way to augment your Auto-Rigged character is through Blend Shapes. Blend Shapes can be thought of as variations of your mesh that have sculpting adjustments that you can blend to. This way you can literally sculpt the way you want your shoulder to look and drive the blending using a joint so that as your character changes poses, the skin will morph to the correct shape for that position. This is known as Corrective Blend Shapes.

Corrective Blend Shapes can be applied to your Auto-Rigged Character in Maya. Let’s go through the steps of how to set this up. Open our Auto-Rigged Character in Maya. The character we are using for this example is the default base mesh that comes with Mudbox. This character is in an A-pose which is not ideal for good should deformation but with the help of blend shapes will work fine. In Figure 1, you can see that the deformation is lacking volume. If we take our character in this pose and sculpt the shoulder the way it should look, it will look strange when we put the character back to his bind pose. What we need are two variations of the mesh, one for the default pose and one that the character blends to when the shoulder approaches the t-pose.


Figure 3

The first step is to model the shoulder the way we want it to look in the t-pose. This modification will then need to be applied to the A-pose mesh so that we will have something to blend to. If the following steps seem a little unintuitive, don’t worry, you just need to do them a few times.

Duplicate your mesh and name the new mesh “Positive.” Select all of the channels of “Positive” and unlock them. Delete the mesh history and move it back a little so that it is not on top of the original mesh. Don’t freeze the transformations because you want this new mesh to correspond to the original. Duplicate it again and name the third mesh “Negative.” Move that mesh back a little further.


Figure 4

On the “Positive” mesh, you can begin sculpting what you think the shoulder should look like in that pose. In Figure 2 you can see the 3 meshes, the original is gray, the positive is blue and has the shoulder sculpted, and the negative is red. At this point, you will want to make note of what pose your character is in. For this example we have a value of -80 in the X channel. If you forget this, there is no point to modeling in this particular pose. Now we need to generate a version of what the modified mesh would look like in A-pose.

Select the two duplicated meshes and then select the original mesh. Go to the animation menu and under Create Deformers select the Blend Shape option box. Reset the settings to default and then under the advanced tab, set deformation order Parallel. Click “create” and you will have your first blend shape. Go to the Windows menu and under Animation Editors, select Blend Shape. Set the slider for the positive mesh to 1 and the negative mesh to -1, Figure 3. Once this is done, put your character back into the original pose. This will make his shoulder look strange but don’t worry, that’s how it should look. Duplicate the original mesh with the strange shoulder and move it back. You can now delete the “Positive” and “Negative” meshes and the blend shape node, leaving you with the original character and a duplicate with a strange shoulder. In Figure 4, you can see the original mesh and the new mesh colored green. The green mesh is how the shoulder should be deformed when the shoulder joint has a rotational value of -80 degrees in the X channel.


Figure 5

The next step is to set up a blend shape. Select the duplicated mesh and the original mesh and create a blend shape using the same options as before. Now if you set the blend shape to 1 and the shoulder rotate x to -80, you can see that it is the correct shape. At this point you can hide the blend shape mesh or put it on a layer and turn it off. The last thing we need to do is set driven keys so that the rotational x of the shoulder drives the blend shape weight.

Go to Animate -> Set Driven Keys -> Set. Select the shoulder joint and click the Load Driver button in the set driven key window. In the Blend shape windows you can click select to select that particular Blend shape. In the set driven key window click Load Driven. Now your driven key interface is set up so that an attribute from the shoulder joint will drive an attribute of the blend shape node, namely the rotation x should drive the blend shape name. To the right of the arm joint in the windows, you should see a list of its attributes. Click Rotate X. To the right of the blend shape, click the blend shape name. See Figure 5. When the rotation x is 0 and the blend shape is 0, click the key button. Next set the rotation x to -80 and the blend shape to 1 and click key again. That’s it! Now you can see that when you move the arms into a t-pose, the shoulder will deform in a more natural way.


Figure 6

This process may seem a little difficult the first few times, but as you get better at it, you can begin to enjoy the power of sculpting how your character should look in certain poses. Blend shapes are also becoming more practical in game engines and these techniques will enable you to deform your character in more realistic ways.

mixamo twittermixamo facebookmixamo youtubemixamo blogmixamo rss feedgoogle plus