17.3 Muscles

Achieving good muscular animation of characters is not easy. Since muscular action depends on the motion of the character, expressions are the ultimate solution. They allow you to to build muscles for your character that will be animated automatically when you move your character around. There is no limit in complexity of such a muscular setup, including the simulation of wobbling fat and secondary effects such as gravity influenced body mass.

This example shows you a very basic setup that can be refined to fit your needs. Although it uses morph targets to create the bulge of the muscle you could also use deformations or bones to get the effect you are after.

We created an Ubershape capsule which will be our relaxed arm in the setup. We have saved it to disc and named it relaxed.fac. We used a bulge deformation to create the swollen muscle. We also saved the deformed capsule to disk and named it taut.fac. We will morph between this two models to create the muscle effect. The amount of the morph will be driven by the rotation of the forearm bone.

Click the image to get a larger view.

The statement that was used here is simple:

relaxed_fac.muscle.taut = Lower_Arm.Pitch_X / 90;

The channel we influence here is the "taut" morph channel of the model object "relaxed.fac". It will receive the value of the forearm rotation devided by 90.
If the forearm is not bent at all (
Lower_Arm.Pitch_X = 0 ) the morph channel will receive the value 0 - the muscle will not bulge at all. When the arm is bent 90 degress ( Lower_Arm.Pitch_X = 90 ) the morph channel will receive 1 (90 devided by 90) - the muscle will be swollen.

get project file muscles.prj

Xpressionist 3