Skip to main content

drive

Connects one or more plugs using animation curves (driven keys).

This modifier allows you to drive plug values via animation curves based on a controller or attribute.

Notes

  • The Mikan interface provides a drive command generator under the "Posing" tab. It creates the driven key curves and generates the necessary drive commands for rig rebuilding.
  • You can also convert any animation curve (manual or not) using a utility in the Mikan rig toolbox. The command will output the required YAML block directly in the Script Editor.
  • ⚠️ Only the recommended syntax is documented here. You may encounter legacy variations in older rigs — they remain supported but are not advised.

Options

  • node (node): The driver plug or node.
  • plug (str, optional): If node refers only to the node, use this to specify which plug on it is the driver.
  • <id>@<plug> (dict): Target plug and its animation curve definition.
    • <float> (float | dict): Key definition.
      • Direct value (e.g. 0.5: 1) creates a spline key by default.
      • To customize curves, use a dictionary:
        KeyTypeDescription
        vfloatValue of the key.
        tan, itan, otanstrTangent types (spline, linear, flat, step, auto, etc).
        ix, iyfloatTangent in (x, y), for custom tangents.
        ox, oyfloatTangent out (x, y), for custom tangents.
        pre, poststrPre-/Post-infinity behavior (linear, constant, cycle, cycleOffset, oscillate).
        tanstrDefault tangent style for the curve (default: spline).
  • flip (bool, default: false): Multiplies all curve values by -1 for mirrored branches.
  • scale (float, default: 1.0): Scales all key values (useful for rig rescaling).
  • weight (node, optional): Plug that multiplies all output values from this modifier.

Examples

Compact syntax:

drive:
node: lipsync::ctrls.0@t.x
chan_face::node@m_stretch_L:
{ -0.3: -1, 0: 0, 0.3: 1, pre: constant, post: constant }
chan_face::node@m_stretch_R: { -0.3: -1, 0: 0, 0.3: 1 }

Expanded syntax:

drive:
node: lipsync::ctrls.0@t.x
chan_face::node@m_stretch_L:
-0.3: -1
0: 0
0.3: 1
pre: constant
post: constant
chan_face::node@m_stretch_R:
-0.3: -1
0: 0
0.3: 1