Pixelate’s core workflow takes a 3D model with animation clips and renders every frame into a tightly-packed sprite sheet atlas, complete with a matching normal map for real-time 2D lighting. This guide walks through every step from an empty project to a finished, playable sprite.Documentation Index
Fetch the complete documentation index at: https://docs.tomblack.ca/llms.txt
Use this file to discover all available pages before exploring further.
Prepare your 3D model
Import your 3D model into Unity. Pixelate renders through a camera, so flat/unlit colors produce the cleanest pixel art — each polygon face reads as a solid color block with no texture noise.If your model uses textures, open the texture’s Import Settings and reduce Max Size (e.g., to 64 or 128). This keeps the output from looking blurry rather than pixelated.
Import your animation clips
Import the 3D animation files (
.fbx, .anim) into Unity alongside your model. You don’t need to worry about the source animation’s framerate — Pixelate samples it at whatever FPS you set during capture, so a 60 FPS source clip can output at 12 FPS for a retro feel.Open the Capturing scene
Open the Capturing scene located at
Assets/Scenes/Capturing. Drag your model into the scene and delete the placeholder character that is already there.Keep your model at the origin (0, 0, 0) and roughly centered under the capture camera. The camera is orthographic and already sized to fit the default cell size.
Configure the PixelateCaptureManager
Select the PixelateCaptureManager GameObject. In the Inspector:
- Set Capture Type to
Animation - Assign your model to the Target field
- Assign one or more
AnimationClipassets to Source Clips — each clip produces its own sprite sheet - Set Frames Per Second (12 for a retro look, 20–24 for smoother motion)
- Set Cell Size —
64×64for small sprites,128×128for more detail - Set Pivot —
(0.5, 0)anchors the sprite at the bottom-center (good for characters standing on ground) - Enable Create Normal Map if you want 2D lighting on the output sprite
Preview in real-time
Drag the Current Frame slider in the Inspector to scrub through your animation without running Play mode. This lets you check that the model is correctly positioned and the cell size fits the character at every pose.
Capture
Click Change Sprite Export Location to pick a folder inside your project (e.g.,
Assets/Sprites/). Then click Capture.Pixelate renders every frame of each animation clip, builds the atlas, applies your palette settings, and saves the PNG files. Unity then re-imports the textures automatically.Output files per clip:{ModelName}_{ClipName}.png— the diffuse sprite sheet{ModelName}_{ClipName}_NormalMap.png— the normal map (if enabled){ModelName}_Palette.png— the generated palette (if using Auto Palette mode)
Verify the sprite sheet
Select the exported PNG in the Project window. It should already be configured as Sprite (Multiple) with each frame sliced by
AutoSpriteSlicer. Open Sprite Editor (top of the Inspector) to confirm the frames look correct.Create a material (optional — for lighting)
- Built-in Render Pipeline
- URP
- Right-click in the Project window → Create → Material
- In the material’s Inspector, click the Shader dropdown and search for
ToonLitSprite - Set Diffuse Map to your
{ModelName}_{ClipName}.png - Set Normal Map to your
{ModelName}_{ClipName}_NormalMap.png