#What you'll learn
- How the Pixel iso 2:1 camera keeps every edge on whole pixels, and when it can't.
- How shading turns your palette into ramps, and how to keep output strictly on palette.
- The sprite-sheet layout and JSON fields, for directions and animations.
- How models move to and from MagicaVoxel, Blender and other tools.
- Limits worth knowing on big models and big exports.
#Before you start
- Work through Pixxovo — Intermediate: layers, kits, render settings and animated props.
- You need a plan that includes Pixxovo.
- For round trips: MagicaVoxel or a 3-D tool such as Blender, if you use them.
#How-tos
#How to get perfectly crisp isometric sprites
- Use Camera → Pixel iso 2:1. It's the pixel-art version of isometric: one block step across moves two pixels sideways and one pixel down, and a vertical edge is exactly one block tall in pixels, so every edge lands on whole pixels.
- Keep Directions at 4. The exact projection exists only for the four quarter turns; with 8 or 16, the in-between views use a near-isometric (dimetric) camera.
- Use whole-number Voxel size values and export Scale values (1×, 2×, 3×, 4×, 6×, 8×) so pixels are only ever enlarged, never resampled.
#How to keep the output on palette
- Shading builds a small ramp for each palette colour: cooler shadows and warmer highlights. Faces pick a step by how much light they get; ambient occlusion darkens by whole steps.
- With Shading on Flat, the sprite uses exactly your palette colours, nothing else.
- With more tones, every output colour still comes from those ramps. Glass is the one exception: it's blended at 60%.
- To force the final sprite onto a set of colours, choose a biome under Palette snap (or Snap to its palette in Biomes): every rendered pixel snaps to that biome's palette.
#How to read the sprite-sheet export
Sprite sheet + JSON downloads a zip with name.png and name.json.
| Field | Meaning |
|---|---|
| app, version | pixxovo, 1 |
| frameWidth, frameHeight | One frame, after the export Scale |
| columns, rows, size | The grid and the sheet's pixel size |
| frames | One entry per frame: name, x, y, w, h, and for direction sheets the camera yaw in degrees |
| meta | name, camera, voxelSize, scale, and anim (type, frames, directions) for animated props |
- A still model: one frame per direction, named dir_0, dir_1…, laid out with the Sprite preview layout (Directions in a row, In a column or In a grid).
- An animated prop: rows are directions and columns are animation frames.
- Animated sheets keep the model's full grid in frame, so a bobbing prop really moves inside its frame instead of being re-centred.
#How to round-trip with MagicaVoxel
- Export MagicaVoxel .vox. The palette and materials go with it: Metal, Glass and Emissive become MagicaVoxel's metal, glass and emit materials.
- MagicaVoxel stands models on a different axis (its z points up); Pixxovo converts both ways, so models keep standing upright.
- Edit in MagicaVoxel, then bring it back with Import in the top bar.
- Models larger than 128 blocks on a side are cropped on import, with a warning. A .vox without its own palette uses Pixxovo's default palette.
#How to take a model into Blender or another 3-D tool
- Export .obj mesh. Neighbouring faces of the same colour are merged into larger quads to keep the file small, and colours are stored per vertex.
- In Blender, import the OBJ and enable vertex colours in the material to see the colours.
- Use it for 3-D previews, collision shapes or as a base for higher-detail modelling.
#How to keep and share full projects
- Project export saves everything to open again in Pixxovo: every layer, the palette, materials and render settings.
- Cloud saves the same project to your Pixx account (a zip with project.json and a model.vox copy), so you can open it on another device or hand it to a teammate.
- Pixxovo also keeps your current project on this device automatically.
#Workflows
#Eight-direction units for a strategy game
- Build the unit facing the default direction, with a fixed Frame size big enough for every angle.
- Set Directions to 8, the same Lighting preset for all units, and an Outline.
- Export Sprite sheet + JSON. In the engine, choose the frame whose yaw is closest to the unit's heading.
#Animated props into a game package
- Give flames and crystals an Emissive material and add Flicker (flames) or Pulse (glow).
- Use Send to App → the sheet to Pixxizi, which packages the frames for Godot, Unity, GameMaker and more.
- For hitboxes, send the sheet to Pixxeta first.
#A shared prop pipeline with Flow
- In Flow, map Pixxexa (textures) → Pixxovo (props) → Pixxori (level) → Pixxizi (package).
- Each person opens their step with the previous result loaded and returns their work with Send result to Flow.
- Keep one cloud project per prop so anyone can reopen and re-render it.
#Tips and shortcuts
- Limits: up to 128 blocks per side; Frame size W / H up to 4096 (or auto); export Scale up to 8×; reliefs from images up to 128 × 128.
- The editor's view uses the same renderer as the export, so what you click and see is exactly what exports. Very large models redraw more slowly.
- Send to App offers the directions as a sprite sheet, the turntable (or animation) as frames, one view as an image, or the palette of the colours actually used.
- An animated GIF shows the animation; with no animation it's a turntable of at least four directions.
#Troubleshooting
- The JSON frame size is larger than my blocks suggest. It includes Voxel size, Padding, the outline and the export Scale.
- Colours shifted in MagicaVoxel. Check that the .vox kept its palette; files without a palette chunk fall back to a default palette.
- The OBJ is grey in Blender. Enable vertex colours in the material or viewport shading.
- A big model feels slow. Hide layers you aren't editing and use Slice; rendering speed depends on how many blocks are visible.
- The model was cropped on import. It was larger than 128 blocks on a side. Split it into smaller models in MagicaVoxel before importing.