111 lines
3.6 KiB

.. index:: Constraint; Rigid Body Constraints
.. index:: Rigid Body Constraints
:term:`Constraints <Constraint>` (also known as joints) for rigid bodies connect two rigid bodies.
The physics constraints are meant to be attached to an :term:`Empty` object.
The constraint then has fields which can be pointed at the two physics-enabled object
which will be bound by the constraint.
The empty object provides a location and axis for the constraint distinct from the two constrained objects.
The location of the entity hosting the physics constraint marks a location and
set of axes on each of the two constrained objects.
These two anchor points are calculated at the beginning of the animation and their position and
orientation remain fixed in the *local* coordinate system of the object for the duration of the animation.
The objects can move far from the constraint object, but the constraint anchor moves with the object.
If this feature seems limiting, consider using multiple objects with a non-physics *Child of* constraint and
animate the relative location of the child.
The quickest way to constrain two objects is to select both and
click the *Connect* button in :menuselection:`Object --> Rigid Body`.
This creates a new empty object (named "Constraint") with a physics constraint
already attached and pointing at the two selected objects.
Physics Menu
Also you can create *Rigid Body Constraint* on one of the two constrained objects with
*Rigid Body Constraint* button of the *Physics* tab in the Properties.
This constraint is dependent on the object location and rotation on which it was created.
This way, there are no empty object created for the constraint.
The role of the empty object is put on this object.
The constrained object can be then be set as a *Passive* type for better driving of the constraint.
Additional parameters appear in the *Rigid Body Constraint* panel of the *Physics* tab in the Properties
for the selected empty object or the one of the two constrained objects with the created constraint.
Common Options
.. reference::
:Panel: :menuselection:`Physics --> Rigid Body Constraint`
.. _bpy.types.RigidBodyConstraint.enabled:
Specifies whether the constraint is active during the simulation.
.. _RigidBodyConstraint.disable_collisions:
Disable Collisions
Allows constrained objects to pass through one another.
.. _bpy.types.RigidBodyConstraint.RigidBodyConstraint.use_breaking:
Allows constraint to break during simulation. Disabled for the *Motor* constraint.
This can be used to simulate destruction.
.. _bpy.types.RigidBodyConstraint.breaking_threshold:
Impulse strength that needs to be reached before the constraint breaks.
.. _bpy.types.RigidBodyConstraint.use_limit:
.. _bpy.types.RigidBodyConstraint.limit:
By using limits you can constrain objects even more by specifying a translation/rotation range on/around
respectively one axis (see below for each one individually). To lock one axis, set both limits to 0.
.. _bpy.types.RigidBodyConstraint.object1:
.. _bpy.types.RigidBodyConstraint.object2:
First object to be constrained.
Second object to be constrained.
.. _bpy.types.RigidBodyConstraint.use_override_solver_iterations:
.. _bpy.types.RigidBodyConstraint.solver_iterations:
Override Iterations
Allows making constraints stronger (more iterations) or weaker (less iterations)
than specified in the rigid body world.
Number of constraint solver iterations made per simulation step for this constraint.