-
Notifications
You must be signed in to change notification settings - Fork 37
Dynamics Parameters
When this checkbox is disabled, all calculations are bypassed and the output Rotate values will always be [0,0,0].
Connect the Output Time
from the existing time1
node in the scene. This is used in comparison with Reset Time to determine when to reset the pose.
# Select the time1 node in the scene
from maya import cmds
cmds.select('time1')
When the current frame (=Time) is before this value, the simulation will not execute and will reset to the initial pose. This effectively sets the simulation start frame. The initial pose will only reflect the Rotation Offset (see Advanced Features for details).
Set the same value as the scene's FPS. This is used internally to calculate
However, since this is not performing accurate physics calculations, using a different value from the scene settings will not cause major issues. Additionally, as shown in the image below, the results from 30 / 30
and 60 / 60
will not be identical.
These attributes are related to pseudo-physics simulation. While there are multiple parameters, Damping and Elasticity (+ Gravity Multiply) are the most important.
Reduces velocity. This value determines how much to suppress the current "velocity" obtained from the previous state (previous frame during playback). Range is 0 - 1. Setting it to 0 preserves the velocity as-is, while 1 completely eliminates velocity.
"Gravity" and "Elastic Force" cannot be completely suppressed, so as long as other forces are applied, it will not stop completely even if it is set to 1.
$v'= v \cdot (1.0 - Damping)$
This is the "force that return to the original pose". Range is 0 - ∞. When this value is 0, it will not return to the original pose.
If gravity is also enabled, need to set a larger Elasticity value to prevent gravity from overpowering it. Conversely, reducing gravity can also be effective. Be careful not to set the value too high as it may cause erratic behavior.
$F_{elastic} = ((x^0 - x) \cdot Elasticity) / Mass$
The type of elastic force calculation.
-
Linear
: Normal linear elastic force. -
Quadratic
: The elastic force increases quadratically when moved away from the original posture. -
Cubic
: The elastic force increases even more (cubically) when moved away from the original posture.
This represents "resistance to movement". It scales the movement amount at each step by this value. Unlike Damping, this suppresses all influences including "Gravity" and "Elastic force". Range is 0 - 1. At 0 there is no effect, and at 1 all movement is completely canceled.
$x^t= x^t + (x^{t-1} - x^t) \cdot Stiffness$
The following shows a comparison with Damping. Since the resulting effects appear similar to Damping, recommend adjusting Damping first.
Affects "force" calculations. Larger mass require greater force to move, so increasing Mass increases resistance to Elasticity and Additional Force. Range is 0.001 - ∞. If Mass is too small, force effects are maximized and may cause erratic behavior. Normally, there is no need to change from the default value of 1.
Assuming Y-up coordinate system with centimeter units, Gravity defaults to -980[cm] on the Y-axis. Gravity Multiply is multiplied by Gravity in the calculation, so it can be used to control the influence of gravity. Gravity is not affected by Mass.
$F_{gravity} = Gravity \cdot GravityMultiply$
When enabling Gravity, adjust Elasticity accordingly as a counteracting force.
This allows arbitrary external forces to be applied, such as wind. You can specify any vector. Unlike gravity, this is affected by mass. Additional Force Scale is the scaling value for the vector.
$F_{add} = (AdditionalForce \cdot AdditionalForceScale) / Mass$
Adds a randomly changing directional vector to external forces. Enabling Enable Turbulence adds a vector that changes direction randomly to the external force. The change accumulates starting from the Reset Time. Nodes with the same Turbulence Seed and Reset Time will generate identical turbulence vectors.
Turbulence Vector Change Scale controls the rate of change in the turbulence force vector. Turbulence Vector Change Max sets the maximum change in the turbulence force vector.
$ChangeVec^t = ChangeVec^{t-1} + Random(-Scale, Scale)$
$[-Max < ChangeVec < Max]$
$TurbulenceVector^t = TurbulenceVector^{t-1} + ChangeVec$
$F_{turbulence} = (TurbulenceVector^t \cdot Strength) / Mass$
💡Turbulent wind effects can be achieved by combining Additional Force and Turbulence.
For collisions, see Collision Guide, and for other features, see Advanced Features.