Rig items properties
A rig entity's constraint, IK, spline IK and dynamics leaves by item id: influence, blend, distance, path distance, the spline offset and twists, and the simulate hold.
The rig items family: a rig entity's constraint, IK, spline IK and dynamics leaves - influence (percent, a constraint's weight or a spring / physics item's share), blend (percent, an IK or spline IK item's FK to solve mix), distance (px, the distance kind's target length), path_distance (percent of the path length, which may exceed 100 - the path kind), offset (percent of the spline length - a spline IK's slide), twist_start and twist_end (degrees - the ribbon twist along a spline IK chain) and enabled (a boolean hold - a spring or physics item's simulate switch) - addressed by rig item id. Every pattern reads, keyframes AND drives: a script easing an IK blend from 0 to 100 hands a limb from its keyed pose to the solver over time, and one flipping a spring's enabled hold seeds the simulation from that frame.
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.items.<item_id>.blend | scalar | percent (0..100) | yes | drive set |
rig.items.<item_id>.distance | scalar | px | yes | drive set |
rig.items.<item_id>.enabled | boolean | boolean (a hold track) | yes | drive set |
rig.items.<item_id>.influence | scalar | percent (0..100) | yes | drive set |
rig.items.<item_id>.offset | scalar | percent of the spline length (0..100) | yes | drive set |
rig.items.<item_id>.path_distance | scalar | percent of the path length (may exceed 100) | yes | drive set |
rig.items.<item_id>.twist_end | scalar | degrees | yes | drive set |
rig.items.<item_id>.twist_start | scalar | degrees | yes | drive set |
Worked examples
A rig layer's ITEMS are its IK solvers and constraints (RIG-W2 CONTROL), each owned by a bone or a controller and addressed by its own id: rig.items.<item_id>.blend (percent, IK items - 100 = the solver places the chain, 0 = the FK channels do), .influence (percent, constraints), .distance (px, the distance kind) and .path_distance (percent of the path length, the path kind). Every leaf reads, keyframes AND drives - a script fading a blend hands a chain from IK to FK over time, the classic switch.
Worked example: Hand the leg from IK to FK
The scene. A Stage comp with a two-bone Leg rig - the Thigh hanging down from (320, 60), the Shin under it - whose IK item on the Shin reaches for the Foot controller (parked up and to the left of the rest tip) with the Knee controller as its pole, and a Foot pad solid rigidly bound to the Shin.
- The comp Stage: 640 by 360 at 25 fps, 100 frames (4 seconds).
- Leg: a rig layer.
- The skeleton: Thigh (
bone_1, a root) from [320, 60] at 90 degrees for 100 px; Shin (bone_2, under Thigh) at 0 degrees for 80 px. - The controllers: Foot (
ctrl_1, rig space) at [220, 140], a diamond; Knee (ctrl_2, rig space) at [420, 150]. - The items:
rigging_1- an IK item on the Shin reaching for the Foot (chain 2, pole the Knee).
- The skeleton: Thigh (
- Foot pad: a solid layer, at [300, 240], 60 by 40, filled 4d9de0.
- The rigging stack:
rigging_2- a rigid binding to the Leg rig's Shin.
- The rigging stack:
The script. Add a project script named IK to FK and paste:
export const outputs = ["layer_1:rig.items.rigging_1.blend"];
export function frame() {
return linear(time, 0, 2, 100, 0);
}
Line by line:
- Line 1: One output: the BLEND of the Leg rig's IK item (the item on the Shin that reaches for the Foot).
rig.items.<item_id>.blendis a percent - at 100 the solver places the chain on the target, at 0 the bones' own FK channels place it, and in between the two poses blend. - Line 4: linear() maps the first two seconds onto 100 down to 0 and holds 0 after that: the leg leaves the target and settles into its FK rest pose (straight down from the hip) 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. At the start the leg is bent onto the Foot target; over the first two seconds it straightens into its FK rest pose (the target no longer places it) and the bound Foot pad rides the shin down - at one second the blend reads 50, from two seconds on it reads 0.