Lesson 103 +10 XP

Articulation Bodies

Articulation Bodies

Articulation Bodies are a newer, more physically accurate alternative to the classic Joint system for simulating robotic arms, procedural character control, and multi-link mechanical systems.

Articulation Body vs Rigidbody + Joints

FeatureRigidbody + JointsArticulation Body
AccuracyCan drift/jitterStable, no drift
Use caseRagdolls, general physicsRobotics, motors, procedural IK
Drive typeForcesPosition/velocity drives
HierarchyArbitraryParent-child hierarchy only

Setting Up an Articulation Chain

  1. Create a hierarchy of GameObjects (Root > Link1 > Link2 ...).
  2. Add an Articulation Body component to each.
  3. The Root has no joint; child links define the joint between them and their parent.

Joint Types

Set the Articulation Joint Type on each non-root ArticulationBody:

  • Fixed: No relative movement.
  • Prismatic: Linear slide along one axis.
  • Revolute: Rotation around one axis (like a hinge).
  • Spherical: Rotation around all three axes (like a ball-socket joint).

Drives

Drives let you control joint motion with position or velocity targets:

using UnityEngine;

public class RobotArm : MonoBehaviour
{
    [SerializeField] private ArticulationBody _joint;

    void SetTargetAngle(float angleDegrees)
    {
        ArticulationDrive drive = _joint.xDrive;
        drive.target = angleDegrees;    // Target angle in degrees
        drive.stiffness = 10000f;       // Spring stiffness
        drive.damping = 100f;           // Damping to prevent oscillation
        drive.forceLimit = float.MaxValue;
        _joint.xDrive = drive;
    }
}

Limits

Articulation Bodies support joint limits to prevent over-rotation:

ArticulationDrive drive = _joint.xDrive;
drive.lowerLimit = -90f;   // Minimum angle
drive.upperLimit = 90f;    // Maximum angle
_joint.xDrive = drive;

When to Use Articulation Bodies

  • Robot simulations: Arms, grippers, conveyor belts.
  • Procedural character control: Physically driven IK.
  • Mechanical systems: Engines, gearboxes, doors with locks.
  • NOT suitable for ragdolls (use classic Joints for those).

TL;DR

  • Articulation Bodies create stable multi-link chains ideal for robotics and procedural mechanics.
  • Define joint type (Revolute, Prismatic, Spherical) on each child link.
  • Use ArticulationDrive with stiffness, damping, and target to control joint motion.
  • Articulation Bodies are more accurate than Rigidbody+Joint for multi-joint chains.