Skip to content

Motion And Rigging

Opal has several animation workflows that solve different problems:

NeedUse
Move, rotate, scale, fade, or bounce an objectMotion workspace (clips)
Switch between idle, run, jump, and hit object statesMotion Machine
Play frame sequences / locomotion states on a spriteSprite Animator component (including .ssb bundles)
Bake frame-by-frame sprite animation from sheets or loose imagesArt Canvas
Build a bone rig for a characterRigging / Skeleton Studio
Deform an image with mesh weightsRigging
Reuse a character across scenesCharacter asset

Most games use more than one. A player might use Art Canvas for walk_left.ssb, Sprite Animator to play it, Motion for squash/stretch on jump, and Rigging for a boss character.

Motion Clips

A motion clip is a keyed animation on a scene object.

Typical animated properties:

  • Position
  • Rotation
  • Scale
  • Opacity
  • Flip or visual state where supported

Workflow:

  1. Select an object.
  2. Open the Motion workspace.
  3. Create or select a clip.
  4. Move the timeline playhead.
  5. Change the object's properties.
  6. Add keys and adjust easing.
  7. Preview the clip.

Use short clips for reusable actions: idle, walk, jump, hit, open, pulse.

Timeline And Easing

The timeline shows keys over time. Scrub the playhead to preview. Easing controls how values move between keys.

EasingGood for
LinearConstant speed
Ease inSlow start, fast finish
Ease outFast start, soft finish
Ease in-outNatural movement with soft start and stop
Custom curvePolished UI or character timing

Use onion skinning when comparing nearby poses.

Motion Machine

The Motion Machine is a state machine over clips. It decides which animation is active based on inputs.

Example states:

text
Idle
Walk
Jump
Attack
Hit
Dead

Example inputs:

InputTypeUse
isMovingBoolSwitch Idle and Walk
speedNumberBlend or choose movement states
attackTriggerPlay attack once
groundedBoolChoose jump/fall states

Flow graphs can set state machine inputs so gameplay and animation stay connected.

Sprite Animator

Attach Sprite Animator (requires Sprite Renderer) when an object should switch named animation states or play .ssb sequences. It can auto-select Idle / Walk / Run / Jump / Fall / Landing from an attached character controller when Automatic Locomotion States is on — no extra Flow wiring for basic locomotion.

Use Flow actions such as Play Animation or Set Animation State when gameplay should force a clip.

Art Canvas Relationship

Use Art Canvas when the animation is a sequence of different images.

Art Canvas produces .ssb bundles. Those bundles can be used by Sprite Animator, Flow Sprite Sequence nodes, or the asset library. This is best for:

  • Walk cycles exported as sheets
  • Coin spins
  • Hit flashes
  • Explosions and VFX
  • Pixel-art variants
  • Re-timing or flipping an existing sprite sequence

Use Motion when the same object art should move. Use Art when each frame is different art.

Sound Canvas Relationship

Use Sound Canvas when a sound effect needs trimming, layering, normalization, or design before gameplay — not when you only need to play an already-finished clip.

Sound Canvas produces ordinary WAV library assets. Wire them in Flow with Play audio, assign scene music, or reference them from motion markers. The Sound workspace itself is editor-only; exported games play the baked files.

Rigging Workspace

Rigging, also called Skeleton Studio, is for bone-based animation.

Common setup tasks:

TaskPurpose
BonesBuild the character skeleton
SlotsAttach art to bones
SkinsSwap alternate art sets
IKPose limbs using targets
MeshesDeform art instead of moving rigid images
WeightsDecide which bones affect which vertices

Rigging has a Setup mode for building the character and an Animate mode for keying poses.

Character Assets

When a rig is ready, save it as a character asset. Character assets can be placed in scenes and reused like other library assets.

Use character assets for:

  • Player characters
  • Enemies
  • NPCs
  • Animated bosses
  • Reusable expressive props

Skeleton clips can be driven by the Motion Machine alongside regular motion clips.

Animation Debugging

If animation does not play:

  1. Confirm the object has the expected clip, .ssb bundle, Sprite Animator state, or character asset.
  2. Confirm Play mode is running if a graph triggers animation at runtime.
  3. Check Motion Machine inputs in the relevant Flow graph.
  4. Make sure a state transition can actually fire.
  5. Check whether another graph or Sprite Animator locomotion immediately overrides the same animation.
  6. For sprite sequences, confirm the .ssb bundle was saved and Sprite Animator / Flow references the bundle, not the source sheet.
  7. For skeleton clips, confirm the character asset is assigned and Setup vs Animate mode is not leaving you on an empty clip.

Opal Engine — MIT licensed