PhysX 6DOF Joint Component
The PhysX 6DOF joint component is the most versatile joint type. 6DOF stands for six degrees of freedom, meaning that this joint can be configured separately for each linear axis (movement) and angular axis (rotation).
This joint component is based on the PhysX 6DOF joint. However, the ez 6DOF joint component does not expose all of the many configuration options of the PhysX 6DOF joint. Instead it condenses some of these options down to a most commonly useful set of options.
Consequently some very specialized scenarios would be possible to do with PhysX, but are currently not possible with the available joint component types. In such a case, it most likely makes sense to add a joint type for the specialized use case, which utilizes the 6DOF joint functionality accordingly.
6DOF Joint Features
FreeLinearAxis option the 6DOF joint can be configured to allow movement along each axis, similar to the prismatic joint. Contrary to the prismatic joint, movement can be allowed along two or all three axis, such that the joint can move in a plane or volume. Using the
LinearRangeX/Y/Z you can also restrict the area in which the joint can be.
LinearDamping configure the spring (soft limit mode) that pulls the joint back, or the restitution and force threshold (hard limit mode), in the same way as for other joint types, like the prismatic joint.
FreeAngularAxis option the joint can be configured to allow rotation around each of the axis. Note that the X axis is considered to be the twist axis and the Y and Z axis are considered to be the swing axis.
TwistLimitMode you can choose whether twisting and swinging should be limited and whether it should be a hard limit or a soft (springy) limit. There are separate options to configure the swing and twist behavior (angle limits, stiffness, damping) which act the same way as for other joint types, like the spherical joint or the revolute joint.
Features Not Exposed
The following PhysX features are currently not exposed by the
- Seperate spring configuration values for each linear and angular axis.
- Circular/spherical distance limits.
- Pyramid swing limit.
- Linear and angular drives.
- Drive target transforms.
FreeLinearAxis: Along which axis the joint is allowed to move.
LinearLimitMode: Whether movement is limited in any way.
LinearRangeX/Y/Z: If movement is limited, this is the area in which the joint can move.
LinearDamping: Spring/damping or restitution/force-threshold values for when the joint reaches the limit boundary. Works the same way as for other joint types, for instnace the prismatic joint.
FreeAngularAxis: Around which axis the joint is allowed to rotate. X is the twist axis, Y and Z are the swing axis.
SwingLimitMode: Whether swinging rotations are limited in any way.
SwingLimit: How far the joint can swing.
SwingDamping: Same as for the spherical joint.
TwistLimitMode: Whether twisting rotations are limited in any way.
UpperTwistLimit: Lower and upper angular limits for rotations around the twist axis.
TwistDamping: Same as for the revolute joint.