Node: Effect: Spline Ribbon
The SC2SplineRibbon Node, found in the Particle Systems create panel, generates a special kind of ribbon, that follows a bezier curve between the start and end points. In StarCraft II these ribbons are used for dynamic tubes, arcing lightning, and the stretchy part of the spine crawler.
Emission
The Emission rollout defines properties for the overall look of the ribbon. This includes the smoothness, shape, length, and direction the ribbon will take on. These values define the creation of each segment of the ribbon. They can often be animated to control the overall shape of the ribbon.
Shape defines the geometry of the Ribbon.
- Planar billboarded always faces the camera.
- Planar chooses a best-guess for ribbon direction based on control point locations
- Cylinder is a prism down the ribbon.
- Star allows for indents in the cylinder.
Edges declares how many sides a cylinder should have, or how many points for a star.
Inner Radius sets, as a percentage, how deep the indents are for a star-shaped ribbon. 100% is the degenerate case, yielding a cylinder. 0% means the inner points of the star collapse to the center of the ribbon.
Max segs/sec is the emission rate for the ribbon and has a direct impact on the performance characteristics of the ribbon. Higher numbers will make the ribbon smoother, but more expensive to simulate and draw. The estimated polygon count is generated below, though the actual count may be inaccurate for a Length based ribbon.
Lifespan defines how the spline ribbon is culled.
- Time Based will make the ribbon appear as soon as it is present in the game, and last until it has been alive the number of game seconds defined in the Lifetime field. This is most useful in cases where a model is birthed and the destroyed rapidly.
- Infinite keeps the Spline Ribbon indefinitely, as if it were model geometry.
Lifetime (checkbox) *unused*. This is a stub from shared ribbon UI.
Lifetime (field) is the maximum number of in-game seconds that a Time Based ribbon will be visible for.
Local Time toggles the ribbon between simulating in real time or synced with the animation. If the ribbon should simulate in "real-time" no matter what, this checkbox should remain unchecked. Check it if the ribbon should adjust to match the animation speed.
Pre-pump *unused*. This is a stub from shared ribbon UI.
Yaw leans the first bezier control point of the ribbon along its local X-axis. ( The button to the right may be used to add procedural overlay noise to this field. )
Pitch leans the first bezier control point of the ribbon along its local Y-axis. ( The button to the right may be used to add procedural overlay noise to this field. )
Speed sets the distance of the first bezier control point of the ribbon. ( The button to the right may be used to add procedural overlay noise to this field. )
Inherit Parent Velocity *unused*. This is a stub from shared ribbon UI.
% (Inherit Parent Velocity) *unused*. This is a stub from shared ribbon UI.
Active *unused*. This is a stub from shared ribbon UI.
Per-element Parameters
Per-element parameters are unique for every segment along the ribbon. They generally define properties that change over the lifetime of a segment, and are useful for changing the look and feel along the length of the ribbon.
Start (Color) defines the color of the ribbon at its start-point. It will interpolate from this value to either of the subsequent values, if they are enabled.
Mid (Color), if enabled, defines the color of the ribbon at its mid-point. It is exactly this value at Mid Time.
End (Color), if enabled, defines the color of the ribbon at its end-point.
Mid Time (Color) is the percentage of the ribbon's length that it should strike the Mid value. The Shared button to the right, if depressed, will keep this value in sync with all other Mid Time values in this ribbon that have the Shared button depressed.
Hold Time (Color) *unused* this is a stub from shared ribbon UI.
Smoothing (Color & Alpha) *unused* this is a stub from shared ribbon UI.
Start (Alpha) defines the opacity (from 0-255) of the ribbon at its start-point. It will interpolate from this value to either of the subsequent values, if they are enabled.
Mid (Alpha), if enabled, defines the opacity (from 0-255) of the ribbon at its mid-point. It is exactly this value at Mid Time.
End (Alpha), if enabled, defines the opacity (from 0-255) of the ribbon at its end-point.
Mid Time (Alpha) is the percentage of the ribbon's length that it should strike the Mid value. The Shared button to the right, if depressed, will keep this value in sync with all other Mid Time values in this ribbon that have the Shared button depressed.
Hold Time (Alpha) *unused* this is a stub from shared ribbon UI.
Start (Size) defines the width of the ribbon polygons at its start-point. It will interpolate from this value to either of the subsequent values, if they are enabled.
Mid (Size), if enabled, defines the width of the ribbon polygons at its mid-point. It is exactly this value at Mid Time.
End (Size), if enabled, defines the width of the ribbon polygons at its end-point.
Mid Time (Size) is the percentage of the ribbon's length that it should strike the Mid value. The Shared button to the right, if depressed, will keep this value in sync with all other Mid Time values in this ribbon that have the Shared button depressed.
Hold Time (Size) *unused* this is a stub from shared ribbon UI.
Smoothing *unused* this is a stub from shared ribbon UI.
Start (Rotation) *unused*. This is a stub from shared ribbon UI.
Mid (Rotation) *unused*. This is a stub from shared ribbon UI.
End (Rotation) *unused*. This is a stub from shared ribbon UI.
Mid Time (Rotation) *unused*. This is a stub from shared ribbon UI.
Force CPU Simulation *unused*. This is a stub from shared ribbon UI.
Accurate GPU Tangents *unused*. This is a stub from shared ribbon UI.
Misc
Misc values are scattered in use-case.
World Space *unused*. This is a stub from shared ribbon UI.
Accept Lighting *unused* This is a stub from shared particle UI.
Overlay Offset adjusts the phase for the procedural overlay noise. If the noise for two ribbons is too synchronized, adjusting this value can make them look more natural.
LOD Cut denotes which graphical setting level the Ribbon will no longer be displayed at. If critical for gameplay, leaving this at 'None' is prudent. Otherwise, it is useful for performance scaling.
LOD Reduction denotes which graphical setting at which the ribbon will start using fewer segments. For each setting-level the user is at below this setting, 25% of the segments will be culled to preserve performance.
Scale Time by Parent Model determines whether or not the ribbon should simulate faster or slower when the model is told to play an animation faster or slower. If this checkbox is off, the ribbon will simulate in real-time seconds instead of game seconds.
Force CPU Simulation *unused* This is a stub from shared particle UI.
UV2 Rand Offset *unused* This is a stub from shared particle UI.
Physics
The start and end points of a spline ribbon simulate like particles or standard ribbon segments. They follow a basic physical model. Unlike particles or ribbon segments, however, they cannot collide. These properties control the inputs into the simulation, and are uniform across both the start and end point.
Mass *unused* This is a stub from shared particle UI.
Gravity is the acceleration along the Up-Vector for any given element.
Mass times size multiplier *unused*. This is a stub from shared ribbon UI.
Multiply by map gravity tells the ribbon to factor in the gravity in the map for its calculations. If it is important for a ribbon to look exactly one way, leave this off. If it is preferred that the ribbon looks like it has mass and integrates into the environment, this should be on.
Drag *unused* This is a stub from shared particle UI.
Noise
Noise is a post-simulation change to the appearance of the ribbon. It is used to add seemingly random variation to the ribbon, while still allowing the user to operate on simple, editable, and understandable values for the rest of the ribbon.
Frequency regulates the rate of change in the noise pattern. Higher values will have more varied noise, while lower values will induce less change over the course of the system.
Amplitude scales the effect of noise on the system. The higher the number, the further from an element's original point it can be pushed. Note that noise is applied after tangents are generated, and therefore, high amplitudes can potentially create skewed lighting results.
Speed alters the speed at which the offset values travel through the noise field. A value of 0 will have static noise, while higher values will animate the noise more and more quickly.
Edge mutes the noise closer to the emitter. A value of 0, will have points being pushed immediately after being emitted, while a value of .5 will make points not receive the full amplitude of the noise until halfway down the length of the ribbon.
Forcefield Selection
The Forcefield rollout is used to govern the interaction between SC2Force nodes and the ribbon start and end points. Interactions between spline ribbons and forces are not well defined, and may cause the spline ribbon to not show up. Using this rollout is highly discouraged.
Local Channels lists the mask for particle/force interaction. Elements from this system will interact only with SC2Force nodes that have at least one of the same channels enabled.
World Profile is a dropdown contain common sets of World Channels, to quickly choose common profiles. This is more useful from the perspective of the force, rather than the receiver.
World Channels behave like Local Channels but across multiple objects. For example, a flag fluttering in the wind would be enlisted in the Wind channel, and a nuclear explosion would use the Wind channel as well. The result is that the explosion would push around the flag. If they were not both in wind, the flag would not move. This is for both artistic reasons and performance. Common usage of the channels can be seen in the World Profile drop down.