This asset contains a simple Bullet simulation for use while setting up the collision geometry and joint limits of a ragdoll. This can be used to quickly observe how the ragdoll behaves under different settings.
Display Collision Layer
Sets the agent’s current layer to be the same as its collision layer. This can be used to visualize the collision geometry used by the solver.
Number of Substeps
Specifies the number of substeps to be used by the Bullet solver.
Specifies the number of constraint solver iterations to be used by the Bullet solver.
The initial velocity of the ragdoll.
Initial Angular Velocity
The initial angular velocity of the ragdoll.
Controls whether gravity is enabled. Disabling gravity can be useful when debugging situations where agents are initially violating their rotation limits.
Specifies the acceleration due to gravity.
Ground Plane Position
The translation of the ground plane.
Ground Plane Rotation
The rotation of the ground plane.
Pin Root Collision Shapes
If there are multiple root collision shapes, pin constraints will be created to hold those objects together.
Pin Shapes With No Rotation Limits
If there is a shape whose joint did not have a rotation limit set, a pin constraint will be created to attach it to its parent.
Allow Initial Violation of Limits
If the rotation limits are initially violated, the limits will not be enforced but further rotation will be prevented. This allows the objects to naturally move back within the rotation limits, instead of introducing sudden motion at the beginning of the simulation.
Once an angle is greater than softness times the maximum angle, the constraint begins to take effect. Lowering the value of softness softens the constraint boundaries. However, values that are too small can cause a "popping" effect at the start of the simulation for joints that are near their rotation limits and are past the softness threshold.
Constraint Force Mixing
Increase this to make the constraint spongier, and potentially increase the stability of the simulation. The constraint may be violated by an amount proportional to the force required to re-establish the constraint, times this parameter.
The rate at which the constraint corrects errors in position or orientation. A value of 1 will ensure that the constraint is always obeyed. It is recommended to keep bias between 0.2 and 0.5.
The rate at which the angular velocity is changed by the constraint. A low value means the constraint will modify the velocities slowly, leaving the boundaries appearing softer.
Increase this to make the constraint spongier, and potentially increase the stability of the simulation. The position component of the constraint may be violated by an amount proportional to the force required to re-establish the constraint, times this parameter.
Specifies what proportion of the position error will be fixed during the next simulation step. A value between 0.1 and 0.8 is recommended for most simulation.
Stiffness adds a certain resistance to the solver’s attempts to move joints from their current orientation to the "target" (animated or simulated) orientation.
If this is "Constant", the stiffness is the same for the duration of the state. You can choose "Ramp" to change the value according to a ramp based on how long the agent has been in the state.
When Stiffness value is "Constant", how much to resist changes to the current joint rotations. A value between
0.2 (the default) and
0.5 read as "stiff but not too stiff". Values of
1 or more will be very stiff.
When Stiffness value is "Ramp", the start and end times (in seconds) corresponding to the start and end of the ramp. For example, if you set this to
5.0, the ramp lets you control the stiffness over the first 5 seconds the agent is in this state. Outside this range, the ramp extends the first and last values.
When Stiffness value is "Ramp", a scale on the value of the Stiffness Ramp.
Sets the stiffness at each point during the time the agent is in this state. Houdini can’t know how long the agent might be in this state, so you have to set up a Time Range and define the stiffness in just that range. Outside this range, the ramp extends the first and last values.
Constraint Force Mixing
Increasing this value makes the motor component of the constraint softer. A small positive value can increase the stability of the simulation.
Clears the entire simulation cache.
Specifies how many substeps the DOP simulation should perform each frame.
Specifies the frame at which the simulation will start cooking.
Specifies a scale factor that relates global time to the simulation time for the DOP Network.
When an object’s speed has been below its linear and angular speed thresholds for this amount of time, the object is eligible to be deactivated and put to sleep. This can improve performance for simulations where there are some stationary objects.
An object can only be put to sleep once any nearby objects and objects it is constrained to are also eligible to be put to sleep.
Contact Breaking Threshold
Distance threshold used by the Bullet engine when determining whether a cached contact point should be discarded. Adjusting this value according to the scene scale may also improve performance, as it influences the margin added to objects' bounding boxes.
Use Implicit Drag
Applies a more accurate damping for the drag described by the
airresist point attributes, instead of applying it as an explicit force.
This also affects how the
spinresist attributes are applied for angular drag.
Specifies which constraint solver Bullet will use to resolve collisions and constraints. Both solvers parallelize the workload, but differ in the strategy they use to do so. Parallel Gauss-Seidel (Islands) will be faster in cases that involve many small "islands" of interacting objects (for example, a large number of small separate book stacks), whereas Parallel Gauss-Seidel (Graph Coloring) should perform better when such "islands" are few and large (such as a huge collapsing building).
Although results obtained with these solvers will generally not be identical, qualitative differences should be minor.
Allows the constraint solver to terminate before performing the full number of Constraint Iterations if it is close enough to the solution. Larger values can increase performance at the cost of accuracy.
Randomize Constraint Order
Specifies that the constraints should be randomly reordered before each of the Constraint Iterations. This may improve stability, but incurs a minor performance hit.
Ensure Islands are Independent
Specifies that the solver should ensure that changes to an island of interacting objects (including adding, removing, or repositioning objects) do not cause other islands to produce different simulation results, unless those changes cause the objects to interact. Otherwise, the solver only guarantees that resimulating with the exact same input to the solver will produce the same results. Enabling this option may incur a minor performance hit, and may change the simulation results slightly.
Increasing the CFM (constraint force mixing) parameter will make contact constraints softer, and may increase the stability of the simulation. Contact constraints may be violated by an amount proportional to this parameter times the force that is needed to enforce the constraint.
Specifies what proportion of the constraint error for contact constraints will be fixed during the next simulation step. If ERP (error reduction parameter) is set to 0, constrained objects will drift apart as the simulation proceeds. If ERP is set to 1, the solver will attempt to fix all constraint error during the next simulation step (however, this may result in instability in some situations). A value between 0.1 and 0.8 is recommended for most simulations.
Tries to make interpenetrating objects split without adding velocity (to keep objects from explosively flying apart).
Errors when solving positional and velocity constraints can introduce some extra energy to the system. Although this option removes most of the extra energy, it degenerates quality a little bit, in particular for stable stacking.
Split Impulse only applies when objects interpenetrate by more than this distance. This number should be negative (representing less than 0 distance between the objects).
Split Impulse ERP
Overrides the Error Reduction Parameter for contact constraints where the penetration distance is within the Penetration Threshold and Split Impulse is enabled.