Skip to the guide
Pixx Suite

Build · Voxel & isometric creator · Advanced

Pixxovo — Advanced

Pixxovo in depth: exact pixel-iso projection, shading ramps, the sheet JSON, MagicaVoxel and OBJ round trips, project files, limits and engine pipelines.

Open Pixxovo

#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

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

  1. 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.
  2. With Shading on Flat, the sprite uses exactly your palette colours, nothing else.
  3. With more tones, every output colour still comes from those ramps. Glass is the one exception: it's blended at 60%.
  4. 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.

FieldMeaning
app, versionpixxovo, 1
frameWidth, frameHeightOne frame, after the export Scale
columns, rows, sizeThe grid and the sheet's pixel size
framesOne entry per frame: name, x, y, w, h, and for direction sheets the camera yaw in degrees
metaname, 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

  1. Export MagicaVoxel .vox. The palette and materials go with it: Metal, Glass and Emissive become MagicaVoxel's metal, glass and emit materials.
  2. MagicaVoxel stands models on a different axis (its z points up); Pixxovo converts both ways, so models keep standing upright.
  3. Edit in MagicaVoxel, then bring it back with Import in the top bar.
  4. 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

  1. 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.
  2. In Blender, import the OBJ and enable vertex colours in the material to see the colours.
  3. Use it for 3-D previews, collision shapes or as a base for higher-detail modelling.

#How to keep and share full projects

  1. Project export saves everything to open again in Pixxovo: every layer, the palette, materials and render settings.
  2. 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.
  3. Pixxovo also keeps your current project on this device automatically.

#Workflows

#Eight-direction units for a strategy game

  1. Build the unit facing the default direction, with a fixed Frame size big enough for every angle.
  2. Set Directions to 8, the same Lighting preset for all units, and an Outline.
  3. 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

  1. Give flames and crystals an Emissive material and add Flicker (flames) or Pulse (glow).
  2. Use Send to App → the sheet to Pixxizi, which packages the frames for Godot, Unity, GameMaker and more.
  3. For hitboxes, send the sheet to Pixxeta first.

#A shared prop pipeline with Flow

  1. In Flow, map Pixxexa (textures) → Pixxovo (props) → Pixxori (level) → Pixxizi (package).
  2. Each person opens their step with the previous result loaded and returns their work with Send result to Flow.
  3. 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.