On this page

The secondary motion tool in the animate state allows you to add physically-accurate effects like lag/overshoot, jiggle, and spring to existing animation without having to manually key these detailed movements. This allows you to quickly create sophisticated and subtle character motions based on the existing animation on your character. Secondary motion could be used, for example, to create motion for the wagging of a dog’s tail or the swinging of a wasp’s legs.

No secondary motion on the wasp’s antenna and legs
Secondary motion on the wasp’s antenna and legs

To enter the secondary motion tool, click on the top toolbar in the animate state.

Add secondary motion effects

In this example, we start with the below animation and add a lag/overshoot effect to the character’s arms and legs. In the original animation, keys are set on the COG, IK arm pole vectors, and IK hand controls to create the motion below:

Original animation
  1. Enter the secondary motion tool by clicking on the top toolbar.

  2. Select the arm and leg controls that you want to add secondary motion to:

    • In the secondary motion settings, click beside Driven Controls, which puts you in selection mode.

    • In the viewport, select the pole vector, hand, and foot controls of the left arm and leg.

    • Press Enter.

    The driven controls turn green, which indicate that each of the control’s existing animation drives its own secondary motion (see control colors):

    Driven controls turn green

    You can also set controls to be driven controls by selecting the controls in the viewport, and pressing H or clicking on the top toolbar. Note that doing this adds the controls to any existing controls already specified in the Driven Controls setting.

    Note

    You can also add secondary motion to joints - in the secondary motion settings, set Selection Type to Joints, which makes the joints available for selection in the viewport.

  3. The Transform Mode and Extract Transform settings work together to determine the secondary motion’s effect on the driven controls:

    • Extract Transform - Specifies the driven controls' transform components that are affected by secondary motion. In this example, we turn on translate and rotate, so the translation and rotation of the driven controls are affected by secondary motion.

    • Transform Mode - Determines how the driven control’s existing animation affects the secondary motion:

      • If Transform Mode is set to Uniform, secondary motion is only added to the transform components that have existing motion. In our example, the arms only translate in its original animation, so the lag/overshoot effect is added to the translation of the arm controls.

      • If Transform Mode is set to Dynamic, translation changes in the original animation also adds rotational secondary motion to the control. In our example, the lag/overshoot effect is added to both the translation and rotation of the arm controls.

    In the video below, secondary motion is turned off to show the original animation on the arm and leg controls - the arm controls only have a translation (no rotation), and the leg controls have no motion:

    Original animation on the arm and leg controls

    The videos below show the difference between uniform and dynamic transform mode. The leg controls don’t have any motion in the original animation, so no lag/overshoot effect is added to these controls. In addition, the arm’s pole vector doesn’t rotate because the pole vector’s rotation isn’t promoted in the character’s rig:

    Transform mode set to Uniform
    Transform mode set to Dynamic

    Note

    In dynamic transform mode, a greater secondary motion effect is added to controls that are further away from the root of the joint hierarchy. Uniform transform mode, on the other hand, adds equal secondary motion to all the driven controls, regardless of their distance from the root of the hierarchy. In the above videos, we can see that the lag/overshoot effect moves the hand control more than the pole vector in dynamic transform mode compared with uniform transform mode.

  4. At this point, the existing animation on the arm controls drive the added secondary motion effect. We now set the COG control to drive the secondary motion on the arms and legs. In the secondary motion settings:

    • Turn on Driver Control.

    • Click the button beside Driver Control.

    • In the viewport, select the COG control and press Enter. The driven controls turn pink, and the driver control turns blue.

    • For Extract Transform, turn on translate and .

    • Set Transform Mode to Dynamic.

    The lag/overshoot effect on the arm and leg controls are now driven by the translation of the COG control:

    COG control drives the lag/overshoot on the arm and leg controls

    Note

    If the Driver Control setting is turned on, but no driver control is specified, no secondary motion is added to the controls because nothing is driving the secondary motion effect.

  5. To change the strength of the secondary motion effect for specific controls, use the secondary motion parameters. Here, we decrease the lag/overshoot effect on the leg controls:

    • Select the leg controls.

    • In the secondary motion parameters, Transform Multipliers section, reduce the value of Translate.

    Original lag/overshoot effect on leg controls
    Decreased lag/overshoot effect on leg controls
  6. At this point, the lag/overshoot effect is only added to the character within the secondary motion tool. To keep the effect on the character even after exiting the secondary motion tool, add keys to the character’s controls:

    • Select the controls you want to add keys to. If you don’t select any controls, keys are added to all the controls.

    • In the animate state settings, go to the Bake tab. See baking settings for the available options. Click Bake Keys.

      Note

      After you bake the keys, secondary motion is automatically turned off in the secondary motion settings (the top button strip shows ). This is because the secondary motion effect has already been added to the character’s animation in the current layer. If you turn on secondary motion (), you are adding another secondary motion effect on top of the character’s current animation, essentially doubling the secondary motion effect.

Control and joint colors

The color of a control or joint indicates whether it is driven, a driver, or both:

Color

Function

Green

The control/joint’s secondary motion is driven by its own existing animation (it is essentially both a driver and driven control/joint).

Pink

The control/joint is driven.

Blue

The control/joint is a driver.

Grey

The control/joint is neither a driver or driven control/joint.

Parameters and settings

Secondary motion parameters

In the secondary motion tool, the following parameters are in the Secondary Motion tab of the animate state parameters. These parameters are applied per-control/joint.

Select the control or joint to see its available parameters. Parameters are only available if their corresponding transform component is turned on in the Extract Transform setting. For example, if rotation is turned on in the Extract Transform setting, the Rotate parameters below will be editable.

Transform Multipliers

You can set keys on these parameters.

Parameter

Description

Translate

The strength of the secondary motion effect on the translate component of the selected control/joint.

Rotate

The strength of the secondary motion effect on the rotate component of the selected control/joint.

Scale

The strength of the secondary motion effect on the scale component of the selected control/joint.

Filter Transforms

Parameter

Description

Translate

The translation axes to add the secondary motion effect to.

Rotate

The rotation axes to add the secondary motion effect to.

Scale

The scale axes to add the secondary motion effect to.

Secondary motion settings

In the secondary motion tool, the following settings are in the Secondary Motion tab of the animate state settings. These settings apply to the entire secondary motion effect:

Setting/Button

Description

/

Turns on or off the secondary motion effect.

/

Shows or hides the character’s controls.

When turned on, selecting controls/joints in the viewport also selects their descendants.

Focused

If there are multiple characters in the scene, this is the character that the current secondary motion settings apply to.

Selection Type

Choose whether to add secondary motion to controls or joints.

Driven Controls

The controls that the secondary motion is added to.

Driver Control

When turned on, the specified control drives the secondary motion. If no driver control is specified, no secondary motion is added to the Driven Controls. When turned off, the existing animation on the Driven Controls drive their own secondary motion.

Strength

The strength of the secondary motion effect. A value of 0 means the secondary motion has no effect. A value of 1 means the secondary motion has full effect. You can also set a strength value greater than 1.

You can set keys on this value.

Extract Transform

The transform components affected by secondary motion - translate, rotate, and/or scale.

Transform Mode

Determines how the driven control’s existing animation affects the secondary motion that is added to it.

Dynamic

The existing translation on the control adds a rotational secondary motion effect. In this mode, secondary motion has a greater effect on controls that are further away from the root of the joint hierarchy. For example, a hand control has a greater secondary motion effect than an arm pole vector control.

Uniform

Secondary motion is only added to the transform components that have existing motion. For example, if a character’s arms only translate in the original animation, secondary motion is only added to the translation of the arm controls.

In this mode, the same amount of secondary motion is added to all the driven controls, regardless of their distance to the root of the joint hierarchy. For example, arm pole vector and hand controls would have the same amount of added secondary motion.

Effect

The type of secondary motion effect to add.

Effect Options

Setting

Description

Lag

The amount of lag to add to the controls/joints affected by secondary motion.

Overshoot

The amount of overshoot to add to the controls/joints affected by secondary motion.

Transform Options

Setting

Description

Ignore Root

When turned on, excludes the root joint from skeleton calculations. Turn this off if the root joint is part of the character. This option is available when Transform Mode is set to Dynamic.

Stability

When turned on, controls the stability of rotational effects. Increase this value to reduce any jittery motions. Decrease this value if the effect disappers. This option is available when Transform Mode is set to Dynamic.

Reset Solver

Resets the settings to their default values.

How-to

To...Do this

Add secondary motion to controls

Select the controls, and press H or click on the top toolbar.

or

In the secondary motion settings, click beside Driven Controls, which puts you in selection mode. In the viewport, select the controls and press Enter.

Remove the secondary motion effect on controls

Select the controls. Press Ctrl+H, ⌦ Del, or click on the top toolbar.

Select the secondary motion effect to add

On the top toolbar, click Lag/Overshoot, Jiggle, or Spring.

or

In the secondary motion settings, select the effect from the Effect drop-down menu.

Change the strength of the secondary motion effect

On the top toolbar or in the secondary motion settings, change the Strength value.

Turn on or off the secondary motion effect

On the top toolbar, toggle Enable.

or

In the secondary motion settings, toggle / .

Automatically select the descendants of the control or joint when selecting the control/joint

In the secondary motion settings, turn on .

Switch the character that the secondary motion settings apply to

In the secondary motion settings, choose from the characters in the Focused menu.

KineFX

Overview

Preparing character elements

Rigging with APEX graphs

Building rig graphs with APEX Script

Rigging with rig components

Animating in the viewport

Customizing the animate state

SOP-based animation

Deformation

Animation retargeting

Pre-H20

Panes

Appendix