Rig drivers properties
A rig layer's driver influences by driver id: how much of each driver's mapping lands on its targets, from nothing at 0 to whole at 100.
The rig drivers family: a rig layer's driver influences - the weight of each driver's writes, percent (0..100), addressed by driver id. A driver maps its inputs through a range, a curve and its conditions onto its targets (or blends its placed poses); the influence scales the result - at 0 the driver writes nothing, at 100 it writes whole, and in between its targets lerp from their own value toward the driver's. Every pattern reads, keyframes AND drives: a script fading a driver's influence hands its targets back to their own keys over time.
Every pattern below is readable from scripts through prop() and layer.prop(); ids in a pattern (like <effect_id>) stand for the entity's real id. Every pattern here is in the drive set: scripts may WRITE each one with set() or a single-output return, per frame.
| Pattern | Wire kind | Units | Reads | Writes |
|---|---|---|---|---|
rig.drivers.<driver_id>.influence | scalar | percent (0..100) | yes | drive set |
Worked examples
A rig layer's DRIVERS map inputs onto targets (RIG-W4 POSE): each reads its input keys through a range, a curve and its conditions and writes its output keys (or blends its placed poses), and rig.drivers.<driver_id>.influence - percent (0..100) - scales what it writes: at 100 the driver writes whole, at 0 nothing, and in between its targets lerp from their own value toward the driver's. The influence reads, keyframes AND drives; the driver's other members (inputs, outputs, curve, conditions, placements) are statics that change through the driver commands.
Worked example: Fade the wrist driver out
The scene. A Stage comp with a one-bone Wrist rig at (320, 180) - the Hand bone heading right for 100 px - carrying a Wave slider property (0..1, resting at 1) and a Wave to wrist driver that maps the slider onto the Hand's rotation, -30 to 30 degrees; and a Paddle solid rigidly bound to the Hand, so the bone's driven turn swings it about the wrist.
- The comp Stage: 640 by 360 at 25 fps, 100 frames (4 seconds).
- Wrist: a rig layer, at [320, 180].
- The skeleton: Hand (
bone_1, a root) from [0, 0] at 0 degrees for 100 px. - The properties: Wave (
slide_1, a slider from 0 to 1, resting at 1). - The drivers: Wave to wrist (
driver_1):rig.properties.slide_1.value0..1 ontorig.bones.bone_1.rotation-30..30.
- The skeleton: Hand (
- Paddle: a solid layer, at [320, 180], 100 by 40, filled 4d9de0.
- The rigging stack:
rigging_1- a rigid binding to the Wrist rig's Hand.
- The rigging stack:
The script. Add a project script named Driver fade and paste:
export const outputs = ["layer_1:rig.drivers.driver_1.influence"];
export function frame() {
return linear(time, 0, 2, 100, 0);
}
Line by line:
- Line 1: One output: the INFLUENCE of the Wrist rig's Wave to wrist driver.
rig.drivers.<driver_id>.influenceis a percent - at 100 the driver's writes land whole (the Wave slider at 1 turns the Hand 30 degrees), at 0 it writes nothing and the Hand keeps its own rotation (0 degrees, level). - Line 4: linear() maps the first two seconds onto 100 down to 0 and holds 0 after that: the Hand's rotation lerps from the driver's 30 degrees toward its own 0 as the influence fades, so the Paddle settles from its clockwise turn to level over two seconds. The value must stay inside 0..100 - a script that returns 140 refuses with type_mismatch, never a clamp.
What you see. The Paddle starts turned 30 degrees clockwise (the driver at full influence) and settles to level over two seconds, then holds - at one second the influence reads 50 (the Paddle at 15 degrees), from two seconds on it reads 0.