Driving an Arm with a Slider: Maya’s Set‑Driven Key in Action
Learn how Maya’s Set Driven Key lets a single slider control an arm’s rotation with custom curves, outperforming constraints for non‑linear motion. Follow a step‑by‑step example, trade‑offs, and best practices to add SDK to your rigs.
26 Aug 2026, 05:47 UTC

The Problem
Animators often need a single control that moves a complex joint chain or shape deformer in a predictable way. A common scenario is a character’s arm that should rotate from a relaxed pose to a fully extended position using a simple slider. Traditional constraints can enforce linear motion, but they lack the flexibility to fine‑tune a curved response or add secondary effects like a soft‑body feel. This is where Maya’s Set‑Driven Key (SDK) system shines.
What Set Driven Key Provides
SDK lets you map a driver attribute (the source of the animation) to a driven attribute (the target you want to control) with a keyframe curve. The curve can be linear, exponential, or any shape you define, giving you precise control over the relationship.
The editor is a visual tool that opens a graph where you can drag the driver’s value on the X‑axis and the driven value on the Y‑axis. Under the hood, the command setDrivenKeyframe stores keyframes on the driven node, so the mapping survives across animation layers and cache files.
Hands‑On Example: Slider‑Driven Arm Rotation
Let’s walk through a minimal rig that demonstrates the concept.
- Set up the scene
// Create a locator to host the slider import maya.cmds as cmds loc = cmds.spaceLocator(name='armCtrl')[0] // Create a joint chain for the arm joint1 = cmds.joint(p=(0,0,0), n='upperArm') joint2 = cmds.joint(p=(0,10,0), n='lowerArm') - Add a custom float attribute
cmds.addAttr(loc, ln='armSlider', at='float', k=True, min=0, max=100)Make sure the attribute is keyable (k=True) so it shows up in the channel box.
- Create the SDK relationship
// Map the slider to the upper arm’s Y‑rotation cmds.setDrivenKeyframe(joint1+'.rotateY', cd=loc+'.armSlider', dv=0, kv=-45) cmds.setDrivenKeyframe(joint1+'.rotateY', cd=loc+'.armSlider', dv=100, kv=45)These two lines create two keyframes on
upperArm.rotateYthat are driven byarmCtrl.armSlider. The first maps a slider value of 0 to a rotation of –45°, the second maps 100 to +45°. - Test the mapping
Open the Set Driven Key Editor (Window → Animation Editors → Set Driven Key Editor). Drag the slider in the editor or move the attribute in the channel box; you should see the joint rotate accordingly. Play back the timeline and adjust the slider to confirm the motion.
- Inspect the curve
Open the Graph Editor to view the keyframe curve on
upperArm.rotateY. You can modify the curve to add easing or secondary motion. Because the keyframes live on the driven node, you can layer additional animations on top of the SDK curve without breaking the relationship.
When to Prefer SDK Over Constraints
- Non‑linear control: Constraints enforce a direct mathematical relationship (e.g., a point on a circle). SDK lets you define any mapping, so you can create a soft‑body feel or a “quick‑turn” effect.
- Multiple drivers: You can drive a single attribute from several drivers (e.g., a slider + a foot roll) and blend their influence with the SDK curve.
- Animation layering: Because the driven node holds the keyframes, you can stack animation layers on top of the SDK curve, allowing iterative tweaking without altering the base mapping.
Limitations and Performance Considerations
SDK is powerful, but it can become hard to manage when many drivers influence the same attribute. Overlapping keyframes may produce unexpected results, especially if you edit the curve in the Graph Editor. Always keep a backup of the original keyframes or use a naming convention for drivers.
For very large rigs with thousands of SDKs, viewport playback may lag slightly because Maya must evaluate all the keyframe relationships each frame. In practice, most character rigs stay well below this threshold, but keep an eye on performance if you notice stutter.
Next Steps: Build Your Own SDK
Follow these quick actions to start experimenting:
- Open a new Maya scene and create a simple joint chain.
- Add a custom attribute to a locator and make it keyable.
- Use the Set Driven Key Editor to map the attribute to a joint rotation.
- Open the Graph Editor to tweak the curve and add easing.
- Test playback and tweak the slider to confirm the motion matches your artistic intent.
- Save the scene and re‑open it to verify that the SDK relationship persists.
Once you’re comfortable, try adding a secondary driver (e.g., a foot roll) to see how multiple drivers can blend on the same attribute. Remember to document each SDK relationship in your rig’s readme so future artists can understand the mapping logic.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.