Particles for Spine
Spine has no particle system. Here is what people actually do about it.
If you animate in Spine and you need fire, smoke, sparks, dust or magic, you have already found the wall: there is no emitter, no particle module, and no plan for one. It has been asked for on the official forum for years.
This page explains the three routes people use, what each one costs you, and how to do the JSON route with a free tool. Nothing here needs an account.
The three routes
1. Image sequence on an attachment
Render the effect as a PNG sequence, bring the frames in as a sequence attachment, and play it back. Simple and predictable. The cost is that every frame is a full image, so the atlas grows quickly, and the effect can no longer be recoloured or retimed without re-rendering it.
2. Import it as a skeleton — JSON and atlas
Every particle becomes a bone and a slot, animated on the timeline, sharing one small atlas of sprite images. It stays editable in Spine — you can retime it, tint slots, parent it to a hand or a weapon, and mix it with your own animations. The cost is bone and slot count, so it suits shorter, sharper effects rather than a thousand-particle blizzard.
3. Spawn it in the engine at runtime
Put an event key in the Spine animation and let Unity, Godot or your own code fire its own particle system when it passes. Cheapest at runtime and infinitely tweakable, but the effect no longer lives with the animation — the animator cannot see it in Spine, and it has to be rebuilt for every engine you ship on.
Doing the JSON route with Ottomancer
Ottomancer is a free 2D particle editor that runs in a browser tab. It was built by an animator for exactly this problem, and its Spine export is the reason it exists.
- Open the editor. No install, no account, nothing uploaded — your work stays on your machine.
- Start from an effect or from scratch. There are 75 ready-made effects across nine categories; every one of them is an ordinary emitter after you apply it, so you can pull it apart and make it yours.
- Bring your own art if you want. Import a PNG and use it as a sprite, or set a tile grid and play it back as a flipbook sheet.
- Set the length and the loop. The timeline is a proper dope sheet with a frame ruler, a draggable loop region and a curve editor.
- Export → Spine (json + atlas + png). You get a skeleton JSON, an atlas and its page image. Import that in Spine next to your own skeleton.
If you would rather have frames, the same project exports a PNG sequence — and MP4, WebM, animated GIF, animated WebP and SVG, for when the effect is going in a trailer or a store page instead of a game.
Honest limits
- The skeleton is written for Spine 3.8, and you must import it with Spine 3.8. Spine's own advice is to import skeleton data using the same version that wrote it — a newer editor can open the file and show you an empty skeleton rather than an error, which is a confusing way to lose ten minutes. If you are on 4.x, Spine's launcher can still run 3.8: import there, save the project, then open that project in your current version. The export writes the version it used into the report next to the files, so you never have to guess.
- The JSON export writes one bone and slot per particle, so a very dense effect makes a heavy skeleton. Keep counts sensible, or use the image sequence route for the big ones.
- It is a desktop tool. It works in a current browser on a computer, not on a phone.
- It is one person's free-time project, so there are rough edges. Bug reports are read on the feedback page and they are the most useful thing you can send.