Layered Shape Animation in XSI:
The musculature method
By Adam Sale
Part 2 of a 2 Part Series
Level: Intermediate to Advanced
Shape Animating the Muscles
Each of the curves is going to be shape animated in various musculature poses that will be mixed together using the animation mixer driven by custom parameters.
Make sure you are in the Animate module
Select the mouth curve and click on Deform>Shape>Store Shape Key. A pop up will appear allowing you to name the mouth pose as MOUTH_NEUTRAL.



Mouth expressions
Neutral ,Wide Open, Closed, Smile, Sulk, Sneer Right, Sneer Left
Phoneme Shapes - the sound names are just labels and don't necessarily reflect the phoneme sound that is made
A Mouth - closed
B Mouth - consonants as in the word growing
D Mouth - vowels as in
Dd Mouth - loud vowels
E Mouth - Aww sound as in Gawsh, good for country hick characters
F Mouth - Ooo as in wood, goon, spoon
G Mouth - Fff or Vvv as in Food or Volvo L Mouth -
L Mouth- as in Loud. Tongue curls up under roof of mouth
O Mouth - O as in Oh
R Mouth - R sound as in roof, root beer
S Mouth - ssss sound as in whisper can also be used for eee sounds as in geek
T Mouth - Th mouth sound as in theatre


Create all of your new shapes from the base neutral pose. Since we'll be mixing the shapes using additive mixing, it is imperative that all of the shape expressions you create for the mouth curve originate from the coordinate positions of the neutral shape.
The reason you need to do this is simple. Say you start with a neutral eyebrow shape, and store it as a shape key, then you create a shape key where the left brow is raised. If you then go and create a third shape key where the right brow is raised, you'll actually be storing a shape where both brows are raised. You'll never be able to totally isolate the right raised brow shape. Sculpting each successive shape from the original default ensures that you'll have full control over isolated muscle groups later on.
When you have created a new shape, press deform>shape>store shape key. Name your shapes accordingly. For clarity sake, I'll name the shape keys: LIPS.Amouth, LIPS.Bmouth, LIPS.Cmouth etc.. etc..

Load your shapes into the Mixer
You should have quite a library of source shapes stored under the models mixer node. Select the characters model node and open up the animation mixer in your C viewport. Update the mixer. The mixer should consist of as many shape tracks as you have shapes. All you need to do now is to load each shape from an explorer onto its own track in the animation mixer. Drag a shape from the explorers model mixer> sources>shape folder onto a track. Repeat the process until each clip is loaded. Drag the in/out points of the clip so that they last the duration of the scene. Shift selecting and then dragging the the middle edge of a clip will scale all clips uniformly.


Drag the sliders around to see some of the possibilities for complex shapes.
From here, you could go ahead and begin keying in the characters face animation. You would have a lot of control at this stage, but you might find yourself overwhelmed with the number of controls you have. I add one more level of control into the face animation to further simplify the interface I'll be working with later. Read on if you want to know more about the layered approach.
Layers of Control using a custom Parameter Set
Once the shapes are in the mixer, you can use Custom Parameters tro control them. To do this, Get a null object, place it as a child underneath the CHARACTER model node and in the animate module click on Create>Parameter>New Custom Parameter Set. Give your set a name, BASIC_SHAPE_SET is what I named mine. Now with the set highlighted in an explorer click on create>new custom parameter. Give the parameter the name of the first shape clip in your mixer. Set the in/out points to 0 and 1 and set the default value to 0.
Create as many new parameters as there are shape clips in the mixer. Name the parameters according to the names of each shape clip.


Hook up the weight of each shape clip in the mixer to its respective custom parameter slider. We'll use expressions to accomplish this. We can speed the expression creation process by using drag and drop interaction. If you left click and drag on the animation chip of a custom parameter, you can drag it over the clip weight of a shape in an explorer to create an expression.
To access the weight of a shape clip through an explorer, navigate to the model level of your character, then navigate to the Mixer>Tracks>Shape>Mixer_Shape_Track>Clip list>Clipname> Instanced Action>weight. Once you're at this level, you can drag a green custom parameter chip over the green weight chip of the shape clip to hook up the expression. Click on 'Apply' when the expresison editor pop up appears. Repeat this process for each of the custom parameters, dragging and dropping their animation chips onto the weight chip of the respective shape track clip.

As you finish this stage, you'll find that to interact with the shapes, you've created, you can simply drag the sliders of the custom parameter set back and forth. You may be wondering what benefit this has over using the sliders in the animation mixer.
You'll recall that we attached the custom parameter set to a null. Since we created our own paramaters, that are hooked up and driving the weight of each shape clip, we can now mark the custom parameters we created under the null, and create complex face shapes by mixing the sliders weight values. When we create a complex face shape, we can save it as an action by clicking store>marked parameters>current. This command stores a static pose based on the input from the marked custom parameters. If we keep adjusting the sliders to create new combinations of poses, then in no time at all, we build up a library of face shapes that we can use in our animation.
Select the null you created, and expand it so that you can see all of the custom parameters stored within the set. CTRL click each of the parameters to mark them. The lettering of each parameter will be highlighted in yellow. You are now ready to begin storing actions for your characters face.
Creating Complex Shapes
Lock the Custom Parameter set, and begin creating your poses. Drag the sliders around to create all of the facial shapes you may need in your piece. Remember that all the muscles of the face work together to create speech and emotion. When you smile, the corners of the mouth curl up at the ends pushing the cheek muscles up towards the orbits of the eye. If you are creating a smile, be sure to add in this type of detail or risk having your face muscles look detached from one another.
When you've sculpted a pose you're happy with by dragging the sliders, of the custom parameters, store the pose by clicking on store>marked parameters>current. In the pop up that appears, set the in/out point of your action source to the start/end frames of your scene. Give the action a relevant name and then close the pop up. These will become your complex expressions

Hooking complex actions to sliders
Create one final custom parameter set underneath the null and name it COMPLEX_FACE_SHAPES. Create a custom parameter for each action source in you mixers>source>animation folder. Name the parameters so they reflect the names of each action clip they will end up controlling. Open the parameter sets property editor and lock it in a floating window.


Open your animation mixer and update it. Add in an animation track (SHIFT+ A) for each action source in your mixer>sources>animation folder.
Drag each action source onto its own track and make sure the in/out points of each track match the start end frame of the scene
Hook up the weight slider of each action to its related custom parameter.
Drag and drop each custom parameter animation chip on top of the weight chip of its related action clip. You can't drag and drop the custom parameter chip onto the weight chip in the animation mixer, the only place to set up the drag and drop expression is through an explorer. So, you've got to navigate deep into the mixer folder to get at the weight chip


Some guidelines to follow when performing Facial Animation
The following articles may help you as you're about to start animate your characters face
Facial Animation: The musculature method was created by Adam Sale. Adam is a Technical Director and co-founder of Joncrow Entertainment. A fully certified Softimage Instructor, Adam teaches at various institutions throughout Vancouver. He can be reached at adam@joncrow.com