Verlet Hierarchy Settings

Like what your seeing?

Support us as a GitHub Sponsor and get instant access to all our assets, exclusive tools and assets, escalated support and issue tracking and our gratitude. These articles are made possible by our GitHub Sponsors ... become a sponsor today!

Introduction

Used by the Verlet Spring component and related objects to define a Verlet hierarchy settings.

You can apply settings to a Verlet Hierarchy either as a constant you type into the editor

Or you can create settings as Scriptable Objects so you can easily reference those settings on multiple systems

You can create a settings object as a scriptable object by right clicking in your project and selecting

Create > Variables > Verlet Hierarchy Settings

This will create a new settings object that you can use to configure a named configuration set for and then reference in hierarchies as needed.

Fields and Attributes

TypeNameComment

float

updateRate

The used to scale the input time per hierarchy. This can be useful to "tighten" simulation giving crisper sharper results when set greater than 1. When set less than 1 it can be used to soften results. Note this can have a strong impact on results where collision is involved.

Vector3

constantVelocity

A constant global velocity that is applied every step. This is most often used to simulate a gravity effect though typically should be weaker than gravities acceleration.

bool

clearRestingVelocity

If true then the effect of constantVelocity with the system at rest will be removed e.g. gravity will not pull a resting node down. Rest defined as true when the node is in its initial position relative to its parnet. This is a complex concept used in a few edge cases with rotating systems.

float

damping

reduces the effect of forces on nodes by some ratio. This can be useful to simulate drag or resistance in a system.

Animation Curve

dampingCurve

scales the effect of damping across nodes based on distance from root.

float

elasticity

applies a force to the node inverse to its displacement. This causes a node to return to its resting position with a force equal to the distance it is off from its resting position scaled by this value.

Animation Curve

elasticityCurve

scales the effect of elasticity across nodes based on distance from root.

float

stiffness

applies two effects. 1) resists change to position based on velocity. 2) applies the resisted velocity to the parent node in reverse order. this can cause pressure at the end of a system to shift nodes earlier in the system.

Animation Curve

stiffnessCurve

scales the effect of stiffness across nodes based on distance from root.

float

inert

scales the adoption of root velocity change causing a node to ignore some change in position relative to its parent ... eg.. to simulate inertia (as a localized resistance to change in velocity). If set to 1 node movement will be limited to collision and external effects. Typically this is set to 0 or some to some value less than 1 to reduce the total effect of the system.

Animation Curve

inertCurve

scales the effect of inert across nodes based on distance from root

LayerMask

collisionLayers

if collision is being tested this will be used to limit those tests to specific layers

float

collisionRadius

The distance from the parent axis to test for collision along. You can imagine this as a capsule collider where the node and its parent represent the tips and this radius its radius.

Animation Curve

radiusCurve

scales the radius for collision across nodes based on distance from root

float

falloffAngle

If greater than 0 this represents the max angle of displacement a node can experience due to simulation. e.g. a value of 45 would scale the effect of simulation down to 0 at 45 degrees off from resting position. This is used to limit the displacement of a system in a soft manner that is the strength of simulation is reduced the closer the displacement angle gets to this value.

Animation Curve

falloffCurve

scales the falloff angle across nodes based on distance from root

Last updated