constraint
Creates a constraint between a target and a constrained node.
This modifier supports common constraint types such as orient, aim, point, parent, and scale.
It supports multiple targets and offers fine control over offsets, blending, and skipped channels.
⚠️ Notes
- For aim constraints,
maintain_offsetis not currently supported in Tangerine when usingup_objectorup_vector. - Blending is useful only if the constrained node does not already have its SRT attributes connected.
Options
node(node, optional): Node being constrained.target(node): Main constraint driver.targets(list[node]): Additional constraint drivers. If bothtargetandtargetsare provided, they are combined.
type(str): Type of constraint. One of:orient,aim,point,parent,scale
weights(list[float], optional): Weights per target. Defaults to1.0for each.maintain_offset(bool, default:false): Maintains the current offset between target and node.blend(bool, default:false): Addsblend_translate/blend_orientattributes to the constrained node (if they don't already exist).
skip(str, optional): Channels to skip during connection. Use axes likex,y,z, orxy.skip_translate(str, optional): Same asskip, but only applies to translate channels (forparentconstraints).skip_rotate(str, optional): Same asskip, but only applies to rotate channels (forparentconstraints).
Aim constraint options (type: aim)
aim(str | vector, default:x): Main aim axis of the constrained node.up(str | vector, optional): Local up axis of the constrained node.up_vector(str | vector, optional, default:null): World or object space up vector for the constraint.- If
up_objectis set, this behaves as the object rotation up vector. - If not, it is treated as a world space vector (vector mode).
⚠️maintain_offsetis not supported in Tangerine in this case yet.
- If
up_object(node, optional): Reference object for the up vector.- If
up_vectoris not set, this node is used as the target up object (object up mode).
⚠️maintain_offsetis not supported in Tangerine in this case yet. - If
up_vectoris set, it's used in object rotation up mode.
- If
flip(bool, default:false): Inverts the aim and up axes.
Vectors can be written as either:
- Named axes:
x,y,z,-x, etc. - 3D vector format:
[0, 1, 0]
Output
The generated constraint node will be named: <id>::mod.constraint.<type>.<index>. Its target weights will be exposed on plugs: @w0, @w1, @w2, ...
Example
constraint:
type: aim
node: <tpl>::infs.0
target: <target>::node
maintain_offset: on
aim: y
up: x