Move Along Curve

Summary

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.

Parameters

Page: Move Along Curve

Group Group If 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 To Curve Reference to a POP for the curve to attach instances to when no second input is connected.
Display Curve Displaycurve Visualizes the curve in the viewport.
Display Color Displaycolor Color for curve visualization when Display Curve is enabled.
Display Color Displaycolorr
Display Color Displaycolorg
Display Color Displaycolorb
Mode Mode Switches between Simple mode (procedural animation) and Solver mode (per-timestep solver).
Simple simple
Solver solver
Initialize Initializepulse Resets the simulation state to initial conditions.
Start Startpulse Begins the simulation from the current state.
Play Play Toggles simulation playback on or off when in Solver mode.
Step Steppulse Advances the simulation by one frame when in Solver mode.

Page: Attach

Lock to Curve Locktocurve Locks the initial attachment positions so they don't need to be recalculated every frame, improving performance.
Reattach to Curve Reattachtocurve Recomputes attachment points for all instances.
Curve Select Mode Curveselectmode Determines how to select which curve primitive to attach to.
Primitive Index prim
Use Nearest nearest
Distribute dist
Primitive Index Primindex Specifies which primitive index to attach to when Curve Select Mode is set to Primitive Index.
Attach Method Attachmethod Determines how instances are attached to the selected curve: Nearest Point, Distribute evenly, or use an Attribute.
Nearest Point nearest
Distribute dist
Attribute attr
Search Distance Searchdistance Maximum distance for finding nearest attachment points when using Nearest Point attach method.
Attach Attribute Attachattr Specifies which attribute to use for determining attachment positions when Attach Method is set to Attribute.
Snap Centroid to Curve Start Snaptocentroid Moves the centroid of all instances to the start of the curve before attaching.
Do Orient Snap Doorientsnap Applies orientation alignment when snapping centroid to curve start.
Normal Axis Normalaxis Defines the normal axis for orientation snapping.
Normal Axis Normalaxisx
Normal Axis Normalaxisy
Normal Axis Normalaxisz
Up Axis Upaxis Defines the up axis for orientation snapping.
Up Axis Upaxisx
Up Axis Upaxisy
Up Axis Upaxisz
Maintain Offset Maintainoffset Blend amount for maintaining the original offset distance from the curve.
Open Offset Ramp Openoffsetramp Opens the internal offset ramp editor for customizing offset behavior along the curve.
Reset Offset Ramp Resetoffsetramp Resets the offset ramp to default values.
Offset TOP Offsettop Reference to an external TOP for offset control. When specified, overrides the internal ramp editor.
Maintain Orient Offset Maintainorientoffset Blend amount between the original orientation and the curve orientation.
Open Orient Offset Ramp Openorientoffsetramp Opens the internal orientation offset ramp editor.
Reset Orient Offset Ramp Resetorientoffsetramp Resets the orientation offset ramp to default values.
Orient TOP Orienttop Reference to an external TOP for orientation offset. When specified, overrides the internal ramp editor.
Visualize Offset Visualizeoffset Displays lines showing the offset between instances and their attachment points.
Fetch Offsets Lines Fetchoffsetslines Creates a select POP with the selected offsets lines of the instances for visualization.
Reorient Input Curve Reorientinputcurve Enables reorientation of the input curve for better tangent and normal calculation.
Invert Tangent Inverttangent Reverses the tangent direction of the curve by 180 degrees.
Custom First Tangent Customfirsttangent Enables specification of a custom tangent vector at the start of the curve.
First Tangent Firsttangent Custom tangent vector for the first point of the curve.
First Tangent Firsttangentx
First Tangent Firsttangenty
First Tangent Firsttangentz
Twist Curve Amount Twistcurveamount Amount of twist to apply to the curve orientation in degrees.
Open Twist Curve Ramp Opentwistcurveramp Opens the internal twist ramp editor for modulating twist along the curve.
Reset Twist Curve Ramp Resettwistcurveramp Resets the twist ramp to default values.
Twist Curve TOP Twistcurvetop Reference to an external TOP for twist control. When specified, overrides the internal ramp editor.
Twist per Curve Twistpercurve Applies twist ramp per individual curve primitive when using multiple curves.
Twist by Attribute Twistbyattribute Enables twist control via a point attribute instead of the ramp or TOP.
Twist Attribute Twistattr Name of the point attribute to use for twist values when Twist by Attribute is enabled.
Resample Method Resamplemethod Line strip resample method.
None none
Divisions per Line Strip linestrip
Distance between Points dist
Divisions Resampledivs The number of divisions.
Max Distance Resamplemaxdist Maximum distance between points.
Maximum Number of Vertices Maxverts Sets the number of vertices to be allocated.
Max Tries for Binary Search Maxtries Max number of iterations for binary search when linearly resampling.

Page: Animate

Do Falloff Dofalloff Enables falloff-based modulation of animation effects.
Falloff Affects Speed Affectspeed Allows falloff values to modulate instance movement speed.
Falloff Affects Rotation Affectrot Allows falloff values to modulate instance rotation alignment.
Falloff Attribute Falloffattr Specifies which attribute to use for falloff values that modulate animation intensity.
Goal Type Goaltype Determines how goal position is calculated: Goal U (parametric) or Arc Length (distance-based).
Goal U goalu
Arc Length arclen
Goal Goal Target position along the curve for procedural animation in Simple mode. 0 is the start, 1 is the end of the curve.
Speed Speed Global speed multiplier for instance movement along the curve in Solver mode.
Random Speed Randomspeed Amount of random variation applied to each instance's speed.
Seed Seedspeed Random seed value for speed randomization.
Reverse Reverse Reverses the direction of movement along the curve.
Align to Curve Aligntocurve Aligns instance orientation to follow the curve tangent direction.
Wrap Wrap Enables wrapping from the end of the curve back to the start for continuous looping motion.
Output Goal Attributes Outputgoalattrs Outputs GoalU and CurveIndex attributes.
Twist Amount Twistamount Additional twist rotation applied during animation in degrees.
Open Twist Ramp Opentwistramp Opens the internal twist ramp editor for animation twist modulation.
Reset Twist Ramp Resettwistramp Resets the animation twist ramp to default values.
Twist TOP Twisttop Reference to an external TOP for animation twist control. When specified, overrides the internal ramp editor.
Scale by Goal Scalebygoal Enables scale modulation based on goal position along the curve.
Remap Scale Remapscale Remaps the output scale values from the ramp to this range.
Remap Scale Remapscalex
Remap Scale Remapscaley
Open Scale Ramp Openscaleramp Opens the internal scale ramp editor for creating custom scale curves based on goal position.
Reset Scale Ramp Resetscaleramp Resets the scale ramp to default values.
Scale TOP Scaletop Reference to an external TOP for scale control. When specified, overrides the internal ramp editor.
Accelerate by Goal Acceleratebygoal Enables acceleration modulation based on goal position along the curve.
Open Acceleration Ramp Openaccramp Opens the internal acceleration ramp editor for modulating speed along the curve.
Reset Acceleration Ramp Resetaccramp Resets the acceleration ramp to default values.
Acceleration TOP Acctop Reference to an external TOP for acceleration control. When specified, overrides the internal ramp editor.

Page: Common

Bypass Bypass Pass through the first input to the output unchanged.
Free Extra GPU Memory Freeextragpumem Free memory that has accumulated when output memory has grown and shrunk.
Render Primitives Renderprimitives Toggles rendering of POPX Geometry or shows it as point instances only.
SRT / RST Srtrst Sets the transform order when using POPX Geometry as built-in TouchDesigner instances.

Inputs

Input 0 POP POPX/POP Geometry
Input 1 POP Curve to Attach To

Outputs

Output 0 POP POPX_out1