Constraining Rigid Bodies

 
 
 

You can set constraints between rigid bodies to limit a rigid body to a specific type of movement. For example, you could create a trap door that has a hinge at one end of the door. Then when some crates fall on a trap door, the collision causes the trap door to open up and the crates fall through it.

The most common way to use constraints is to constrain two rigid bodies to each other, the active one reacting to the simulation while the passive one acts as its "anchor." You can also constraint a single active rigid body to a point in global space, constrain several active rigid bodies as a chain, or constrain several active bodies to one passive one.

The rigid body constraints available in Softimage include: hinge, ball-and-socket, spring, slider, and fixed. These are all available from the CreateRigid BodyRigid Constraint or Multi Constraint Tool menu in the Simulate toolbar.

For basic procedures to create any type of constraint, see Overview of Creating Rigid Body Constraints.

When you create a constraint, the constraint object is added to the Constraints group in the current environment (see The Simulation Environment).

Overview of Creating Rigid Body Constraints

Depending on the type of constraint you're using, you can set constraints between two rigid bodies, constrain a single active rigid body to a global position in space, or constrain multiple active rigid bodies to one.

The most common way to use constraints is to constrain two rigid bodies to each other, the active one reacting to the simulation while the passive one acts as its "anchor."

Basic Workflows

There are two basic workflows you can follow:

With either type of workflow, you can also constrain a rigid body to a point in global space — see Constraining a Single Rigid Body to a Point in Space.

About PhysX and ODE Constraints

Both the PhysX and ODE dynamics engines support all types of constraints, but PhysX also supports offsets for the slider and spring constraints (see Offsetting Spring and Slider Constraints).

As well, PhysX uses a different way to compute constraint forces than ODE. It's generally faster and more robust, but the results may be softer or "squishier" constraints than you may be used to with ODE.

To make the constraints stiffer, you can increase the number of Simulation Accuracy Substeps value in the Dynamics Operator property editor (see Setting the Simulation Accuracy for PhysX). Unfortunately, because this increases the simulation accuracy, your simulation results may also change slightly.

Changing the Constraint's Initial State

Rigid body constraints are actual objects that you can transform (translate, rotate, and scale), select, and delete like any other 3D object in Softimage. When you change the initial position or orientation (transformation) of the constraint object or any of the rigid bodies that it constrains, this new transformation is automatically used as the initial state for all objects you modify.

See Setting a Rigid Body's Initial State for more information.

Hiding Constraint Objects

You can choose to display or hide the constraint object itself. As with other hidden objects in Softimage, hidden constraint objects are merely invisible, but still participate in the rigid body simulation. A hidden constraint object may cause instabilities in the simulation.

Make sure to mute the hidden objects if you want to keep them, but don't want them to participate in the simulation.

To toggle the display of the rigid body constraint object

  1. In the explorer, select the constraint you want to display or hide and press Enter.

  2. Toggle the Show Links option in its property editor (selecting it displays the constraint object).

Muting Rigid Body Constraints

You can temporarily disable a rigid body constraint by muting it. When you do this, the constraint returns to its initial state.

To mute the rigid body constraint

  1. Select the constraint you want to mute and press Enter.

  2. Deselect the Active option in its property editor.

Creative Commons License Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License