Skip to content

Constraints

A constraint continuously drives one transform from one or more source transforms — the standard rigging building block for followers, aim / look-at rigs, mounts, attach points, and props that stay put in the world. Social Scape gives you six constraint components; each configures the engine's built-in constraint system under the hood, so solving is correct and efficient.

Add a constraint to the object you want driven — not to the source.

The components (Add Component ▸ Social Scape ▸ Constraints)

Component What it does
Position Constraint Moves the object to the (weighted) position of its sources.
Rotation Constraint Rotates the object to match its sources.
Scale Constraint Scales the object to match its sources.
Parent Constraint Moves and rotates the object as if it were a child of its sources (a mount / attach point).
Aim Constraint Rotates the object so a chosen local axis aims at its sources, keeping another axis pointing "up".
Look At Constraint A simplified Aim — points the object's +Z axis at its sources.

Shared settings

  • Sources — the transforms this object follows, each with a Weight (relative pull). Multiple sources blend by weight (two sources at 0.5 each = the midpoint).
  • Weight — overall strength: 0 = off (the object keeps its own/animated pose), 1 = fully constrained.
  • Is Active — whether the constraint drives the transform at all. Off leaves the animated pose untouched.
  • Locked — keep the offset captured at setup, so the object holds its pose relative to the sources. Turn off to snap the object directly onto them.
  • Anchor In World — hold the object's current world position/rotation instead of following the sources, so it stays fixed in the world even as its parent moves.

Per-type settings

  • Position / Rotation / Scale / Parent — per-axis toggles (X/Y/Z) for which axes are affected, plus an Offset (position, Euler rotation, or scale multiplier) applied on top of the sources.
  • AimAim Vector (the local axis that points at the sources, default +Z), Up Vector, and a World Up mode (scene up / an object's up / a fixed vector) with an optional World Up Object.
  • Look AtRoll about the aim axis, and an optional Up Object.

Examples

A floating name tag that always faces the camera

Add a Look At Constraint to the name-tag object, set its source to the player's head (or leave it and use the runtime camera). +Z now points at the target — the tag always reads face-on.

A sword mounted on a hip

Add a Parent Constraint to the sword, source = the hip bone, Locked on. The sword rides the hip keeping the offset you posed it at — a clean attach point with no parenting.

A turret that tracks a target

Add an Aim Constraint to the turret barrel, source = the target, Aim Vector = the barrel's forward axis, World Up = Scene Up. Animate the source's position and the barrel follows.

Rules & limits (avatars)

  • Both these Social Scape constraint components and the engine's built-in constraint components are allowed on uploaded avatars, so a pre-rigged avatar keeps its constraints on import.
  • There is a constraint budget (default 40 per avatar, counting yours + built-ins). Over the budget, the extra constraints are trimmed on upload. Keep chains shallow — a constraint whose source is itself constrained adds a solve dependency.
  • Constraints only ever drive transforms, and their sources are references within the avatar, so they can't reach outside it.

Animate the weight, not the sources

Don't rely on animating which transforms a constraint references — the source list is read once at load. Animate the Weight / Is Active instead to turn a constraint on and off.

How it works

Each Social Scape constraint, on load, adds and configures the matching engine constraint from its fields — you never touch the engine component directly. Constraints solve locally on every client that renders the object (they follow local transforms), so nothing extra goes on the wire.


Component class names (for scripts and search): SSConstraints family (Position/Rotation/Scale/Parent/Aim/LookAt).