Skip to main content

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.

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.
1

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.
Models from Adobe Mixamo work well. The included DEMO folder ships with a sample character and two Mixamo animations (Idle and Running) to practice with — note these cannot be used in a commercial release.
2

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.
3

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.
4

Configure the PixelateCaptureManager

Select the PixelateCaptureManager GameObject. In the Inspector:
  1. Set Capture Type to Animation
  2. Assign your model to the Target field
  3. Assign one or more AnimationClip assets to Source Clips — each clip produces its own sprite sheet
  4. Set Frames Per Second (12 for a retro look, 20–24 for smoother motion)
  5. Set Cell Size64×64 for small sprites, 128×128 for more detail
  6. Set Pivot(0.5, 0) anchors the sprite at the bottom-center (good for characters standing on ground)
  7. Enable Create Normal Map if you want 2D lighting on the output sprite
5

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.
If a limb gets clipped at the edge of the frame, increase the Cell Size or move the model slightly.
6

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)
7

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.
8

Create a material (optional — for lighting)

  1. Right-click in the Project window → Create → Material
  2. In the material’s Inspector, click the Shader dropdown and search for ToonLitSprite
  3. Set Diffuse Map to your {ModelName}_{ClipName}.png
  4. Set Normal Map to your {ModelName}_{ClipName}_NormalMap.png
Lighting only works with a Directional Light (Built-in) or Global Light 2D (URP). Point lights and spot lights are not supported for sprite normal map lighting.
9

Test in the Visualize scene

Open the Visualize scene. Swap out the sprite and material on the Sprite Renderer to your newly created assets and press Play to see the animation and lighting in action.
When flipping your character horizontally, rotate it 180° on the Y axis — do not set Scale.x = -1. Negative scale inverts the normal map lighting direction and breaks the lighting effect.