Motion And Rigging
Opal has several animation workflows that solve different problems:
| Need | Use |
|---|---|
| Move, rotate, scale, fade, or bounce an object | Motion workspace (clips) |
| Switch between idle, run, jump, and hit object states | Motion Machine |
| Play frame sequences / locomotion states on a sprite | Sprite Animator component (including .ssb bundles) |
| Bake frame-by-frame sprite animation from sheets or loose images | Art Canvas |
| Build a bone rig for a character | Rigging / Skeleton Studio |
| Deform an image with mesh weights | Rigging |
| Reuse a character across scenes | Character 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:
- Select an object.
- Open the Motion workspace.
- Create or select a clip.
- Move the timeline playhead.
- Change the object's properties.
- Add keys and adjust easing.
- 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.
| Easing | Good for |
|---|---|
| Linear | Constant speed |
| Ease in | Slow start, fast finish |
| Ease out | Fast start, soft finish |
| Ease in-out | Natural movement with soft start and stop |
| Custom curve | Polished 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:
Idle
Walk
Jump
Attack
Hit
DeadExample inputs:
| Input | Type | Use |
|---|---|---|
isMoving | Bool | Switch Idle and Walk |
speed | Number | Blend or choose movement states |
attack | Trigger | Play attack once |
grounded | Bool | Choose 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:
| Task | Purpose |
|---|---|
| Bones | Build the character skeleton |
| Slots | Attach art to bones |
| Skins | Swap alternate art sets |
| IK | Pose limbs using targets |
| Meshes | Deform art instead of moving rigid images |
| Weights | Decide 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:
- Confirm the object has the expected clip,
.ssbbundle, Sprite Animator state, or character asset. - Confirm Play mode is running if a graph triggers animation at runtime.
- Check Motion Machine inputs in the relevant Flow graph.
- Make sure a state transition can actually fire.
- Check whether another graph or Sprite Animator locomotion immediately overrides the same animation.
- For sprite sequences, confirm the
.ssbbundle was saved and Sprite Animator / Flow references the bundle, not the source sheet. - For skeleton clips, confirm the character asset is assigned and Setup vs Animate mode is not leaving you on an empty clip.