rig.path
Attaches one or more nodes to a curve, similar to a motion path setup.
This modifier allows a node (or several) to follow a curve, optionally supporting features like parameter override, percentage-based sliding, or closest-point constraints. It’s typically used for effects like objects sliding along surfaces or for attaching geometry to motion paths.
Options
geo(node): The curve (geometry) the path will follow.node(node): Node attached to the path. Used by default to calculate the initial curve parameter.nodes(list[node], optional): List of nodes to create multiple path attachments at once.
u(float, optional): Overrides the default curve parameter. By default, calculated by projecting the node on the curve.percent(bool, optional): Uses a 0-1 normalized curve length instead of the parametricu. Disabled by default.length(bool, optional): Enables distance-based parameterization for slide effects. Disables Maya-style up object.
parent(node): Parent for the generated path. Defaults to the parent ofnode.hook(bool, default: on): Whether the node should be reparented under the path.snap(bool, default: off): Resets the node under the path transform (zeroes transform).attach(node, optional): Node used as the source to compute the initial curve parameter.closest(node, optional): Similar toattach, but remains dynamic. Parameter is driven by projection of this node.
flip(bool, default: off): Inverts forward and up vectors for mirrored branches.forward_vector(str | vector, optional): Forward direction for orientation (default:x). Accepts string likex,-z, or vector like[1, 0, 0].up_vector(str | vector, optional): Up direction. If not set, falls back to defaults based onup_object_vectororup_object.up_object_vector(str | vector, optional): Absolute up vector. Used ifup_objectis not specified.up_object(node, optional): Node providing world reference for up orientation. Used in Maya-style path constraints if noup_object_vector.
geo_up(node, optional): Secondary curve used to place a locator forup_objectreference.
Examples
Basic path attachment
[mod]
rig.path:
geo: cv_necklace->shape
node: necklace01::roots.0
Motion path with animatable percentage-based parameter
[mod]
plug:
node: bone::ctrls.0
anim_path:
type: float
k: on
min: 0
max: 1
rig.path:
geo: crv_path->shape
percent: on
connect:
input: bone::ctrls.0@anim_path
node: bone::mod.path.0@u
This setup allows the controller bone::ctrls.0 to slide along crv_path, controlled by the anim_path float attribute (ranging from 0 to 1).