Particle Canvas
The FX workspace is Opal's particle-effect baker. It turns an emitter chain into a reusable .pfx library asset you trigger from Flow Spawn VFX, a Particle Emitter component, or a motion marker.
It is intentionally different from the built-in one-shot presets:
| Workspace / tool | Best for | Output |
|---|---|---|
| FX | Author a custom look: spawn volume, motion, colour, size, sprites | .pfx library assets |
| Spawn VFX (Flow) | One-shot bursts during gameplay | Runtime playback |
| Particle Emitter | A looping effect attached to an object | Runtime playback |
| Motion markers | Timed bursts on a clip | vfx: at marker time |
Important: Particle Canvas bakes assets. It does not bind the result onto the selected scene object, and the canvas never runs in the player. After saving a .pfx, pick it on Spawn VFX, on a Particle Emitter, or from the asset library.
When To Use It
Use FX when a built-in name (sparkle, smoke, fire, …) is not the look you want.
Open The Workspace
- Open a project in the editor.
- Click Create ▾ → FX in the top bar.
- Pick a starter under Effects, right-click the board to add a node, drop a sprite onto the board, or open an existing
.pfxfrom Assets (Open in Particle Canvas).
The left dock lists saved effects and starters. The right dock is a live preview sandbox — it is not the scene. Turn on Gizmos to edit spawn volume, motion cone, size, and gravity on the stage (select the matching node first). Trails follows a handful of particles so motion is easier to read.
The graph is saved on the project, so the board is still there when you return. Ctrl/Cmd+Z in FX rewinds the graph, not the scene. The Save card shows a peak / timespan estimate of the incoming plan.
Core Nodes
Wires carry one type: the particle system. Source and modifiers evaluate to a plan; Save bakes that plan.
| Node | Role |
|---|---|
| Emitter | How particles spawn — burst, rate per second, emitter duration, max count, seed |
| Shape | Where they appear — point, circle, cone, or box |
| Motion | Launch speed range and spread |
| Lifetime | How long each particle lives |
| Force | Gravity, friction, and turbulence |
| Color | Colour over life (a ramp of stops) |
| Size | Size range and over-life curve |
| Spin | How fast particles rotate |
| Render | How particles draw — circle, star, rect, or a sprite; normal or additive; optional tint |
| Combine | Merge up to four emitter chains into one effect |
| Save | Bake the incoming plan to a .pfx in the library |
A typical chain:
Emitter -> Shape -> Motion -> Lifetime -> Color -> Size -> Render -> SavePreview and bake share the same plan, so what you see is what Save writes.
Use A Baked Effect
After Save:
| Where | How |
|---|---|
| Spawn VFX | One-shot burst from Object Flow or Scene Flow — pick the .pfx (or a built-in name) |
| Particle Emitter | Looping / follow FX on an object — the component field accepts a .pfx or a built-in name |
| Motion marker | vfx: on a clip, same as other marker actions |
| Asset library | Drag or assign like any other asset |
Keep one-shots on Spawn VFX and loops on Particle Emitter. If every action fires a large custom burst, important feedback gets harder to see.
See Audio and VFX for combining a burst with Play Audio and camera shake.
Related Docs
- Audio and VFX
- Pixel Studio — draw a particle sprite, then pick it on Render
- Art Canvas
- Sound Canvas
- Visual scripting
- Motion and rigging