Crack Painter 2D — Sprite Shatter & Break Tool
Break your 2D sprites along cracks you choose, not a generated grid. Paint the break lines right in Unity, bake to a physics-ready prefab, and shatter it at runtime.
by Ekasto
Price History +
A wooden crate should break along its planks, not into a random grid.
Every other 2D shatter tool generates fragments procedurally: grid, hexagonal, radial, triangular, Voronoi and none of them know what your sprite depicts. A crate splinters into diamonds. A stone wall breaks straight through the blocks instead of around the mortar. Crack Painter 2D lets you decide where the break lines go.
How it works
Open the Baker, pick a sprite, and draw the crack lines onto a same-size crack map right inside Unity. The baker deletes those pixels, flood-fills what's left into separate regions, bakes each to its own sprite, and assembles a prefab with colliders, rigidbodies and a *SpriteShatter* component wired up. Drag it into your scene and call *Shatter()*.
You can see whether a crack actually cuts
A crack only separates a piece when it runs unbroken from one edge of the sprite to another, or closes a loop. A line that stops one pixel short looks finished and silently does nothing. The crack map editor re-runs the baker's own flood fill after every stroke: pieces that have come free turn grey, lines that separate nothing are tinted red, and the status bar shows the piece count you'd get right now. No bake-and-check loop.
Editor
Hard-edged brush and eraser, straight-line mode, adjustable brush size, zoom, pan, and full undo/redo. The brush opens at a size scaled to the sprite, so it's not a hairline on a 1024px sprite or a slab on a 32px one. Crack maps are ordinary PNGs. Use an external image editor at any point if you prefer.
Runtime
Explosion force, upward bias, blast radius with falloff, per-chunk force variation, torque and chunk gravity are all runtime values, so one baked prefab can crumble gently or detonate depending on what hit it. Break it from code, from a UnityEvent, from a UI button, from an animation event, or automatically on collision or trigger with an optional required tag and minimum impact speed. *OnShatter* fires the instant it breaks for SFX, particles, score and screen shake. *ResetIntact()* reassembles it for pooling and retries.
Also included
Preflight validation that catches sprites packed into an atlas, mismatched crack map dimensions, Max Size clamping the import below source resolution, and crack maps with nothing on them, with one-click fixes for the two most common ones. Chunks inherit the source sprite's sorting layer, sorting order and pixels per unit. Chunk colliders trace each sprite's generated physics shape. Re-baking is safe and regenerates in place.
Genre and customization
Crack Painter 2D suits any 2D project built on sprites platformers, top-down action and shooters, physics and puzzle games, roguelikes, tower defense anywhere a particular object should break convincingly. Nothing about it is locked down: every crack map is an ordinary, repaintable PNG, every force value is exposed on the component and tunable per instance, and the package ships with full C# source, so you can restyle the break at runtime or extend the baker itself. Chunks are plain SpriteRenderers with standard Physics 2D, so they slot into whatever sorting, materials and layers your project already uses.
What this is not
This is an authoring tool for break patterns you define ahead of time. It is *not* a runtime damage system, it doesn't carve holes where bullets land, erode sprites pixel by pixel, or cut along an arbitrary player swipe. The pattern is fixed at bake time. It costs you authoring time per sprite and pays that back on hero objects: bosses, set-piece walls, breakable puzzle elements. If you need arbitrary runtime cutting, buy a destructible-sprite asset instead.
Requirements
Unity 2022.3 or newer. Works in Built-in, URP and HDRP. only SpriteRenderer and Physics 2D are used. No external package dependencies. Full C# source included. Includes a demo scene with six pre-baked objects.
On the roadmap
Procedural pattern generation (Voronoi and grid/planks) that writes into the crack map as a single undo step, so you can generate a starting pattern and then correct the parts that matter.