tySplines Object

The tySplines object takes input particles sent from a Spline Paths operator and converts them into native 3ds max splines.

You must select a tySplines object within a Spline Paths operator inside of an active flow in order to feed a tySplines object its data. A tySplines object contains a cache of data for fast playback, but does not save that cache to disk. Thus, its parent flow must always exist in the scene with it, in order for it to work.

Multiple operators within the same flow can send particles to the same tySplines object, but you should not send particles from multiple flow objects into the same tySplines object, or else the resulting splines will not display correctly.


Spline Paths Rollout

Spline Path Settings

  • Linear/Smooth: controls the interpolation method used to generate spline.

  • World space: controls the coordinate system to generate splines in. Turning this off will generate splines whose position is relative to the position of the tySplines object in the world.

  • Show knots: controls whether or not to display each spline’s knots in the viewport.

Spline generation

  • Dist thresh: controls the minimum step size between points on a particle’s trajectory in order for them to form a spline segment.

  • Max dist: controls the maximum distance between two sibling particles in order for them to be conjoined with a spline segment.

  • Max age: controls the maximum age of particle trajectory points in order for them to be adding to a spline segment.

  • Time step: controls the minimum time step between particle positions in order for them to form a spline segment.

Spline Welding

Knot sorting has a performance cost, but keeping knots in order can help keep weld order deterministic between frames where knot count changes.

  • Weld bindings: controls whether or not to weld spline segments corresponding to connected bindings between particles together, end-to-end.

  • Sort bindings: sorts groups of binds by ID, for consistent spline ordering.

  • Cluster by ID: when enabled, only bindings with the same ID will be welded together.

  • Weld knots: controls whether or not to weld resulting splines segments together, based on whether or not their endpoints are coincident.

  • Sort knots: sorts the candidate knots prior to welding, for consistent spline ordering.

  • Cluster knots: when enabled, clustering data transferred from a Spline Paths operator will control which spline knots will be welded together.Only knots with matching cluster values will be welded.

  • Tolerance: the weld distance tolerance. Spline endpoints whose distance is below this value will be welded together.

Post Processing

  • Sort splines by knot ID: when enabled, splines will be internally sorted by the ID value of the particle which corresponds to their first knot.

  • Optimize splines by angle: controls whether spline knot counts will be reduced based on relative angles between spline segments.

  • Tolerance: the tolerance angle for performing knot reductions. Spline segments whose relative angle is less than this value will have their adjacent knot removed.

Display Rollout

Display

  • Display splines in viewport: controls whether or not to generate splines in the viewport.

  • Show icon: controls whether or not to display the tySplines icon in the viewport.

  • Icon size: controls the size of the viewport icon.

  • Show name: displays the name of the tySplines object next to its icon in the viewport.


Trajectory Splines Rollout

Trajectory splines

  • Max length: specifies the maximum total length a trajectory spline can be, starting from its originating particle.

  • Delete if particle deleted: trajectory splines whose originating particle is deleted will not generate the leftover trail that is within the trajectory/sibling max age limit.

  • Interpolate first knot: on subframes, the first knot of the trajectory spline will be linearly interpolated between whole frames.

  • Interpolate last knot: on subframes, the last knot of the trajectory spline will be linearly interpolated between whole frames.

  • Interpolate middle knots: on subframes, the middle knots of the trajectory spline will be linearly interpolated between whole frames.

In some situations, you may not want all/any trajectory knots to be linearly interpolated between subframes. For example, due to the linear nature of interpolations, you may see apparent jittering in tySplines objects that are retimed to slow down, if source particles move in smooth arcing motions (due to the linear movement of knots from the previous whole frame’s position to the next whole frame’s position). In these cases, disabling “interpolate middle knots” will prevent such jittering from occurring.


Neighbor Splines Rollout

Neighbor splines

  • Max dist: controls the maximum distance between two particles in order for them to be conjoined with a spline segment.

  • Max neighbors: controls the maximum number of spline segments a particular particle can have, connecting it to its neighbors.

  • Sort by ID/distance: controls the method used to sort neighbors within the distance threshold for any particular particle, if the number of neighbors is larger than the value of “Max neighbors”.

  • Neighbor Simulation groups: controls which particle simulation groups will be considered for the neighbor collection.


Sibling Splines Rollout

  • Must be adjacent: when enabled, only input particles which are adjacent siblings (siblings born one after the other, in order) will be connected with spline segments.

Retimer Rollout

Retimer

  • Enable spline retimer: controls whether or not to enable spline animation retiming.

  • Retime type: controls whether the retimer affects playback frame or speed.

By frame
  • Frame: controls the current frame of the input spline data to display.
By speed
  • Speed %: the percent value that controls playback speed.

  • Ref Frame: the reference frame that the speed multiplier will be relative to.


Tools Rollout

Internal Cache

  • Clear Cache: clears the cached data contained within the tySpline object. The flow from which the data originated will need to be resimulated in order to refresh the data.

  • Only keep current frame: controls whether to keep data for past frames in memory, or only keep the current frame in memory. Turning this on will conserve RAM but will prevent playback of prior frames without refreshing the entire simulation. This setting is useful when rendering frames in a sequential manner on a machine with limited RAM.