It’s common within production to smooth out rough or glitchy deformations, or get rid of seams in deformer influence, using some sort of averaging approach. The cMuscleSystem deformer in Maya provides a very simple way of doing this.
Maya: Deformation Smoothing Using cMuscleSystem
1. THE AIM
I want to quickly throw together a basic mouth rig for the gruff cowboy character below, and there is no time to finesse influence weighting:
2. STARTING OUT
The smoothing approach works with any sort of pre-existing deformation setup. In this example, I will use a skinCluster. To start with, I will quickly lay out some floating joints (the one appearing under the eye is actually in the centre of the head):
Next, I will perform some very rough block-weighting:
As you would expect, moving a joint results in rather garish deformation:
2. SMOOTHING OUT THE DEFORMATION
- Before applying the cMuscleSystem deformer, keep all your pre-existing deformers as-is but make sure your model is in non-deformed, default pose. (Whatever approach you use, deformation averaging happens relative to a geometry state usually defined at the outset.)
- Next, switch to the Animation menu-set and select Muscle > Skin Setup > Apply Muscle System Skin Deformer:
- If you are applying the deformer on top of a skinCluster, you may get the dialog box below. Just click ‘No’.
- Maya will think about it for a while, and eventually slap a cMuscleSystem deformer on your geometry. Select this deformer and display its Attribute Editor. Scroll down to find the ‘relax’ options section. Switch ‘relax’ on, and set the iterations to something high, like 40-60:
- Now, when you move / pose / deform the model using the underlying deformers (in this example, the mouth joints), you will see that the deformation has been smoothed out:
- Experiment with the ‘relax’ iterations to hit a good balance between performance and smoothing.
- Experiment with the ‘Smooth Compress’ and ‘Smooth Expand’ options to get pseudo-volume-preservation behaviours at extreme poses.