Parameter Controllers 

A controller drives an Operator parameter from outside: instead of holding a number you type, the parameter takes its value from the controller, which can change it over time. Controllers make a value pulse, wander, switch or ramp as the timeline plays, and let several parameters share one value that you set in a single place.

Any parameter that holds a number or an on/off switch can have a controller - a decimal value such as a curl's magnitude, a whole number such as a random seed, or a checkbox. Whole numbers take the controller's value rounded to the nearest one, and a checkbox is on while the value is 0.5 or more. Parameters made of three numbers, such as a rotation or a direction, take controllers per component; see Controlling a vector parameter.

 

Kinds of controllers 

  • Wave - oscillates around its Value with a Sine, Triangle, Square or Sawtooth shape. Amplitude sets how far it swings, Period how long one cycle takes, and Phase shifts the wave within its period.
  • Noise - wanders smoothly and randomly around its Value. Amplitude sets how far, Frequency how many variations happen per second, Levels adds finer detail, Roughness sets how strong that detail is, and Seed picks a different pattern.
  • Step - holds its Value until Step Time, then switches to End Value.
  • Ramp - holds its Value until Start Time, changes to End Value by End Time, linearly or smoothly, and holds it after that.
  • Constant - a fixed value. On its own it changes nothing, but assigned to several parameters it lets one number set all of them.
  • Curve - a value you animate with keyframes. See Keyframe Animation.

A new controller starts from the value the parameter has, so assigning one does not make it jump: a Wave oscillates around the old value, a Step and a Ramp start from it, and a Constant holds it.

 

Assigning a controller 

Right-click a parameter anywhere in its row left of the control, on its name or beside it, and pick a controller under Assign Controller. The controller is created and selected, so its own parameters appear in the Operator Properties panel for you to adjust.

To share a controller that already exists, open the Existing submenu instead. It lists the controllers of the groom and has a search box at the top for finding one by name. A controller can drive any number of parameters.

 

Working with a controlled parameter 

A parameter driven by a controller shows the value the controller gives it, but its control is disabled, since the controller decides the value. A button in front of the control selects the controller; hover it to see the controller's name. Right-clicking the disabled control opens the same menu as the parameter's name.

Parameters driven by a Curve controller work differently and stay editable; see Keyframe Animation.

When a controller is selected, a trail at the top of the panel shows which parameter it drives, for example Curl > WaveController. Click the Operator's name in the trail to return to it.

 

Changing or removing a controller 

Once a parameter has a controller, its menu reads Reassign Controller and offers two more entries:

  • Select Controller selects the controller, the same as the button in front of the control.
  • Clear Controller removes the controller from the parameter. The parameter keeps the value the controller last gave it.

A controller which drives nothing any more, after you clear or replace it, is deleted. Assigning, reassigning and clearing are each a single step to undo.

 

Controlling a vector parameter 

A parameter made of three numbers, such as the Human Operator's Head Rotation and Neck Rotation or Gravity's Force Direction, takes a controller for each of its X, Y and Z components separately. Right-click the parameter and pick a component under X, Y or Z: each has the same Assign Controller, Existing, Select Controller and Clear Controller entries as a single number. For example, to make a head shake, assign a Wave to Head Rotation > Y and set its Amplitude to the angle of the swing in degrees.

The first controller you assign creates a Vector3 Controller node, which holds the three components and passes them on to the parameter. The components you do not give a controller stay at their values and remain editable in the parameter's control. The control is disabled only when every component is driven by a controller other than Curve. When you clear the last component's controller, the Vector3 Controller is removed too, and the parameter keeps the value it was last given.

Keys work per component as well: the key button keys every component that is not driven by another controller, and in Animate mode only the components you change get keys.

 

Controllers in the Node Graph 

Controllers are nodes of their own. They are not Operators of the stack and do not appear in the Operator Stack, but the Node Graph shows them with a connection to every parameter they drive. Its filter bar can show or hide controllers like any other kind of node. A Vector3 Controller counts as a controller there.

 

Related 

Missing Something? Let us know if this page needs more information about the topic.