SGX 4.6 SGX 4.5 SGX 4.4 SGX 4.3 SGX 4.2 SGX 3.6 English Chinese Japanese
SGX 4.6 SGX 4.5 SGX 4.4 SGX 4.3 SGX 4.2 SGX 3.6 English Chinese Japanese

Muscle Dynamics

The muscle-dynamic system controls animation by activating each muscle over time. This behavior is governed by an underlying model of motor planning and biomechanics. However, different parts of the face have different properties, which leads to different perceptual expectations about how fast each muscle should move. The human brain is quite good at spotting unnatural velocities in human movement.

For this reason we provide settable parameters for each muscle that determine its average velocities during the phases of contraction and relaxation. The two available parameters are called contraction duration and skew.

Contraction duration

The contraction duration of a muscle is the amount of time it takes to fully contract the muscle from 0 to 1. In SGX Studio, users can find the right contraction duration by generating muscle previews at different values of contraction duration. For example, below are muscle preview examples of Dimple L, with contraction duration set to three different values: 200 ms, 460 ms and 700 ms. For contraction duration, pay particular attention to the contraction phase (from 0 to 1).

200 ms contraction
460 ms contraction
700 ms contraction

As you should be able to see, the contraction duration of 460 ms looks the most natural for Dimple L on this face.

Skew

The skew of a muscle expresses the difference, if any, between the time it takes to contract a muscle and the time it takes to relax it again – i.e. to return to 0. In other words, it is the difference between contraction duration and relaxation duration.

A value above 0, or positive skew, means that relaxation takes longer than contraction. A value below 0, or negative skew, means that relaxation takes less time than contraction. A value of 0 means relaxation has the same duration as contraction.

For example, below are three videos of the muscle dimple_L, with skew values of -0.35, -0.11, and +0.1.

-0.35 skew
-0.11 skew
+0.1 skew

In this case, the skew value of -0.11 provides the most natural looking return to neutral.

Note the exact interpretation of skew is as follows:

relaxation_duration = contraction_duration x (1 + skew)

Setup guidelines

Setting these parameters is a manual process that involves viewing the effect of estimated values in animation. SGX Studio provides a muscle preview function that animates a particular muscle activating from 0 to 1 and then back to 0. This is useful for evaluating the naturalness of the estimated dynamic parameters. In each case, the question you should ask yourself is: Does the movement speed look natural for this character’s face, or does it look too fast or too slow? Imagine the character is alive and performing the movement of their own volition.

Here are some best practices for setting dynamic parameters:

  • Contraction duration is the time it takes for the muscle to go from 0 to 1. So to check contraction duration correctly, make sure you are viewing the muscle going all the way to 1.0.

  • Set contraction duration first. Once you’re happy with that value, then edit skew.

  • When editing a parameter, make small adjustments and review, rather than big changes.

  • Tips to optimize perceptual judgement:

    • If viewing previews through a default video player, set the player to loop so that you can watch the movement several times without needing to manually restart.

    • Avoid visual distractions by removing progress bars or other visual artifacts from the video player.

    • Avoid auditory distractions such as speech and music, as these can impact your temporal perception and thus impede judgement about how natural the speed of a movement is.