WHAT IS
3D RAD?
CLICK HERE
TO FIND OUT!


Joint


The Joint object allows you to link objects together to make systems as simple as a pendulum or as complex as a ragdoll.

Joint's rotational limits can be set and angular forces can be defined to simulate motors and advanced mechanisms.

The joint will act on the two objects linked to it, at the Joint object location, which you can set visually, in the Virtual Editor.

Joint object orientation is also important as certain joint properties, like rotational limits, motors and axes, may depend on it.

Note that the two objects linked to the joint must support physics. RigidBody, Ball, Car, can all be used with joints for example, while SkinMesh cannot.

Multiple Joint objects can be used to connect multiple RigidBody objects and create any kind of system.

When working with joints, keep in mind that the small blue axis of the Joint object item is the local Z axis.

When the joint is in a slider mode, the blue axis is the line along which the slider will move, with blue axis direction being the positive direction.

The blue axis is also the reference for the hinge mode, where it is the axis about which the swiveling happens.

Positive rotations are always counterclockwise, if you look at the colored axis, when it points toward your eye.



Joint Type

A ball joint acts like a single point about which the secondary object can rotate freely, unless limits are set (see below).

A fixed joint completely glues two objects together, blocking any relative movement. Note that fixed Joint position is irrelevant.

A fixed (fast) joint is a legacy type, only kept for backwards compatibility. It is now identical to a fixed joint.

A hinge joint acts like an axis about which the secondary object can rotate. This is always the local Z axis for the Joint object (blue axis).

A slider joint acts like a line along which the secondary object can move. This is always the local Z axis for the Joint object (blue axis).

Working At Start

If this option is not checked, the junction will be enabled only when the Joint object is started by another object, like for example EventOnInput.

In this case, the joint location will be relative to the reference object (see Relationships, below).

That is, while the application point for the reference object is the relative location you defined in the Virtual Editor, for the second object (body B), the application point will depend on object's location at the time of Joint activation.

Angular range (degs)

Where applicable, depending on joint type, for each local axis of the Joint object (red arm is +X, green is +Y, blue is +Z) you can define the rotational ranges, in degrees.

Setting these limits to -180 and +180 actually disables the stop.

NOTE: depending on the selected joint type, you may be able to only specify one value for the range. In these cases, the range is +/- the value spcified. So, for example, for the Ball joint type, setting 45 for the angular range about the Y axis will limit the rotation between -45 and 45.

NOTE: rotational limits make the simulation more complex to compute and therefore may affect frame-rate on slower computers.

NOTE: for slider joints, limits are in meters, from the Joint object location, along its local X axis.

Strength/hardness

These two parameters determine the behavior of the stop (see Angular limits, above).

When non-zero, the bigger the strength factor, the stronger the stop. A strong stop will resist torques more than a weak stop. By default, stop strength is 0 (infinite strength).

When non-zero, the bigger the hardness factor, the harder the stop. A soft stop will 'absorb' torques in a spongy way. By default, stop hardness is 0 (infinite hardness).

You can achieve soft stops by setting both strength and hardness to low values.

Joint motors

Where applicable, depending on joint type, you can apply a torque to the linked objects, about each local axis of the Joint object.

The spin factor is the reference angular velocity the motor will try to reach and keep, in degrees per second.

The torque factor is the angular force applied to reach and keep the specified spin. Setting this value to zero disables the motor.

NOTE: for slider joints, motor parameters are speed (in meters per second) and force, as they are linear quantities.

Relationships

This list defines how the Joint object relates to the objects linked to it. The following relationship types are supported:

  • IGNORE. Do nothing.


  • BODY A (REFERENCE). Attach the joint to this object. The joint will follow the reference object, keeping its relative orientation and location as you set it in the Virtual Editor.


  • BODY B. The second object to attach the joint to. This object will be able to rotate about and move along joint axes, based on the joint type and the parameters you specify on the property dialog.


  • NOTE: Specifying more than one single object as body A or more than one single object as body B is not recommended. Resulting behavior is undefined.



    For information about the remaining controls, please click here.



    INTERNAL PARAMETERS


    The following internal parameters can be accessed by using event objects like EventOnValue or Script:

  • Motor's spin, about joint's X axis
  • Motor's spin, about joint's Y axis
  • Motor's spin, about joint's Z axis (or speed, in meters per second, for slider joint type)