> modifiers

Move Along Curve

modifiers/move-along-curve·v1.3.0
IN:2  OUT:1

The Move Along Curve attaches instances to a curve and animates them along the path using Line Strip POP. It works in two phases similar to Move Along Mesh: first, attaches instances to the curve based on proximity, distribution, or attributes; second, moves instances along the path either procedurally or through a solver.

There are several presets available to set up your instances to move as a group or to distribute themselves evenly along the path. The operator includes options for wrapping from the end of the path to the start, enabling easy looping motion.

The Attach step allows you to attach instances based on their proximity to the curve or based on an even distribution. You can even attach to multiple curves per-instance via a point attribute. The Offset controls determine how much of the original distance between each instance's starting position and the attachment position is maintained.

The Animation step allows procedurally moving instances along the curve based on the Goal parameter, or pushing the instances per timestep in a solver.

PAGEMove Along Curve
GroupGroupIf there are input groups, specifying a group name in this field will cause this POPX to act only upon the group specified.
Curve to Attach ToCurveReference to a POP for the curve to attach instances to when no second input is connected.
Display CurveDisplaycurveVisualizes the curve in the viewport.
InitializeInitializepulseResets the simulation state to initial conditions.
StartStartpulseBegins the simulation from the current state.
PlayPlayToggles simulation playback on or off when in Solver mode.
StepSteppulseAdvances the simulation by one frame when in Solver mode.
PAGEAttach
Lock to CurveLocktocurveLocks the initial attachment positions so they don't need to be recalculated every frame, improving performance.
Reattach to CurveReattachtocurveRecomputes attachment points for all instances.
Primitive IndexPrimindexSpecifies which primitive index to attach to when Curve Select Mode is set to Primitive Index.
Search DistanceSearchdistanceMaximum distance for finding nearest attachment points when using Nearest Point attach method.
Attach AttributeAttachattrSpecifies which attribute to use for determining attachment positions when Attach Method is set to Attribute.
Snap Centroid to Curve StartSnaptocentroidMoves the centroid of all instances to the start of the curve before attaching.
Do Orient SnapDoorientsnapApplies orientation alignment when snapping centroid to curve start.
Maintain OffsetMaintainoffsetBlend amount for maintaining the original offset distance from the curve.
Open Offset Ramp EditorOpenoffsetrampeditorOpens the internal offset ramp editor for customizing offset behavior along the curve.
Reset Offset RampResetoffsetrampResets the offset ramp to default values.
Custom Offset TOPCustomoffsettopReference to an external TOP for offset control. When specified, overrides the internal ramp editor.
Maintain Orient OffsetMaintainorientoffsetBlend amount between the original orientation and the curve orientation.
Open Orient Offset Ramp EditorOpenorientoffsetrampeditorOpens the internal orientation offset ramp editor.
Reset Orient Offset RampResetorientoffsetrampResets the orientation offset ramp to default values.
Custom Orient TOPCustomorienttopReference to an external TOP for orientation offset. When specified, overrides the internal ramp editor.
Visualize OffsetVisualizeoffsetDisplays lines showing the offset between instances and their attachment points.
Fetch Offsets LinesFetchoffsetslinesCreates a select POP with the selected offsets lines of the instances for visualization.
Reorient Input CurveReorientinputcurveEnables reorientation of the input curve for better tangent and normal calculation.
Invert TangentInverttangentReverses the tangent direction of the curve by 180 degrees.
Custom First TangentCustomfirsttangentEnables specification of a custom tangent vector at the start of the curve.
Twist Curve AmountTwistcurveamountAmount of twist to apply to the curve orientation in degrees.
Open Twist Curve Ramp EditorOpentwistcurverampeditorOpens the internal twist ramp editor for modulating twist along the curve.
Reset Twist Curve RampResettwistcurverampResets the twist ramp to default values.
Custom Twist Curve TOPCustomtwistcurvetopReference to an external TOP for twist control. When specified, overrides the internal ramp editor.
Twist by AttributeTwistbyattributeEnables twist control via a point attribute instead of the ramp or TOP.
Twist AttributeTwistattrName of the point attribute to use for twist values when Twist by Attribute is enabled.
DivisionsResampledivsThe number of divisions.
Max DistanceResamplemaxdistMaximum distance between points.
Maximum Number of VerticesMaxvertsSets the number of vertices to be allocated.
Max Tries for Binary SearchMaxtriesMax number of iterations for binary search when linearly resampling.
PAGEAnimate
Do FalloffDofalloffEnables falloff-based modulation of animation effects.
Falloff Affects SpeedAffectspeedAllows falloff values to modulate instance movement speed.
Falloff Affects RotationAffectrotAllows falloff values to modulate instance rotation alignment.
Falloff AttributeFalloffattrSpecifies which attribute to use for falloff values that modulate animation intensity.
GoalGoalTarget position along the curve for procedural animation in Simple mode. 0 is the start, 1 is the end of the curve.
SpeedSpeedGlobal speed multiplier for instance movement along the curve in Solver mode.
Random SpeedRandomspeedAmount of random variation applied to each instance's speed.
SeedSeedspeedRandom seed value for speed randomization.
ReverseReverseReverses the direction of movement along the curve.
Align to CurveAligntocurveAligns instance orientation to follow the curve tangent direction.
WrapWrapEnables wrapping from the end of the curve back to the start for continuous looping motion.
Output Goal AttributesOutputgoalattrsOutputs GoalU and CurveIndex attributes.
Twist AmountTwistamountAdditional twist rotation applied during animation in degrees.
Open Twist Ramp EditorOpentwistrampeditorOpens the internal twist ramp editor for animation twist modulation.
Reset Twist RampResettwistrampResets the animation twist ramp to default values.
Custom Twist TOPCustomtwisttopReference to an external TOP for animation twist control. When specified, overrides the internal ramp editor.
Scale by GoalScalebygoalEnables scale modulation based on goal position along the curve.
Open Scale Ramp EditorOpenscalerampeditorOpens the internal scale ramp editor for creating custom scale curves based on goal position.
Reset Scale RampResetscalerampResets the scale ramp to default values.
Custom Scale TOPCustomscaletopReference to an external TOP for scale control. When specified, overrides the internal ramp editor.
Accelerate by GoalAcceleratebygoalEnables acceleration modulation based on goal position along the curve.
Open Acceleration Ramp EditorOpenaccrampeditorOpens the internal acceleration ramp editor for modulating speed along the curve.
Reset Acceleration RampResetaccrampResets the acceleration ramp to default values.
Custom Acceleration TOPCustomacctopReference to an external TOP for acceleration control. When specified, overrides the internal ramp editor.
PAGECommon
BypassBypassPass through the first input to the output unchanged.
Free Extra GPU MemoryFreeextragpumemFree memory that has accumulated when output memory has grown and shrunk.
Render PrimitivesRenderprimitivesToggles rendering of POPX Geometry or shows it as point instances only.
Convert to Point PrimitivesConverttoptprimConverts points to primitive points when Render Primitives is toggled off.
SRT / RSTSrtrstSets the transform order when using POPX Geometry as built-in TouchDesigner instances.
Input 0 POP POPX/POP Geometry
Input 1 POP Curve to Attach To
Output 0 POP POPX_out1