Skip to main content
Version: v1.18

Kinematic mechanism

SkyReal can't import Kinematics from CATIA, however you can recreate your kinematics inside Unreal Engine.

Here is an example of a robotic arm on which we will simulate kinematics.

kinematic arm

Add PhysicsConstraint component

Select the part on which you want to create the joint and click on Add Component in the Details tab. Then search PhysicsConstraint.

add joint

Now, be sure the PhysicsConstraint is selected and scroll to the Constraint tab.

select joint constraint

You must select the parts involved in the joint using the pipette.

Define the constraint

Still in the PhysicsConstraint:

First of all, you must check Disable Collision in the Constraint Behavior tab.

Then, you must define the degrees of freedom of your joint. The coordinate system associated to the joint is the local coordinate system of the part. You must define the Linear Limits and Angular Limits to set the degrees of freedom of the joint.

dof

You can choose between Free, Locked and Limited. Limited lets you choose a distance from the origin of the joint after which the part will be blocked. You can choose only one distance limit for all axis (on both directions).

For the rotation, here is a table that links the angular motion names to the axis.

Angular MotionAxis
Swing 1 MotionZ
Swing 2 MotionY
Twist MotionX

Set actor properties

Now select the actor instance. We will set the Physics and Collision parameters.

select actor

Set physics settings

You must check Simulate Physics for every part concerned by kinematics EXCEPT for the root actor!

physics settings

You can also set Constraints locks that come on the top of the kinematic simulation. It is useful to force the part to keep an orientation in order to get a smoother simulation. For instance, we authorize the arm to rotate only on Z axis to prevent from calculation mistakes.

Set collision settings

You must choose a collision preset which sets the Object type to Dynamic. It is mandatory to get the simulation running.

You have the choice between:

  • BlockAllDynamic: The part is selectable.
  • Custom -> Physics Only -> WorldDynamic: The part is not selectable. It is useful to avoid the user to move parts of the mechanism.
collision settings

Tips (sum up)

  • Start the mechanism with its root actor and go on recursively.
  • Always add the physical constraints in the parent actors (nearest actor from the root actor). This way you can easily know in which actor is stored the constraint.
  • Enable Simulate Physics for every parts of the mechanism except for the root actor!
  • Check Disable Collision on every physical constraint.
  • Use constraint locks to stabilize the mechanism.
  • Set BlockAllDynamic collision settings to the parts of your scene you want to collide with your mechanism.
  • Do not activate Physics in SkyReal ! It would override your settings !

Example