Skip to the guide
Pixx Suite

Animate · Weather & environment FX · Advanced

Pixxevi — Advanced

Power use of Pixxevi: how seamless loops work, export file formats and JSON fields, palette lock, parallax and per-layer sheets for engines, and performance limits.

Open Pixxevi

#What you'll learn

  • Why every Pixxevi loop is seamless, and which settings keep it that way.
  • Exactly what each export writes: file names, sheet layout and the JSON fields.
  • How to wire Parallax layers and Per layer exports into a game engine.
  • How Palette lock and alpha levels turn a soft effect into strict pixel art.
  • How to keep heavy scenes fast, and the limits worth knowing.

#Before you start

  • Work through Pixxevi — Intermediate first: depth bands, blend modes and the export dialog.
  • You need a plan that includes Pixxevi. For engine hand-offs, Pixxizi in your plan helps.
  • Some familiarity with sprite sheets and JSON in your engine of choice.

#How-tos

#How to keep a loop perfectly seamless

Pixxevi never simulates particles step by step. Every frame is calculated directly from the layer settings, its Seed and the position in the loop, so the last frame always leads back into the first.

  1. Speed is a whole number of cycles per loop (1× to 8×). Any value loops; higher values just move faster.
  2. Sideways drift wraps around the frame width, and fog and clouds scroll by whole repeats, so wind and scrolling never leave a seam.
  3. Parallax scroll moves scenery by whole strip widths per loop: far 1×, mid 2×, near 3×.
  4. Check the loop seam number in the footer. It compares the wrap from the last frame to the first with a normal frame step: about 1× is perfect, green is fine, red needs a look.
  5. Use Seam check to replay the last two and first two frames slowly.

#How to export parallax bands for an engine

  1. Give every layer the right Depth: Far, Mid or Near.
  2. Click Export, pick Parallax layers, keep Background on Transparent.
  3. Optional: set What to export to Effects only (no sky / scenery) to leave out sky, silhouettes, ground and sea.
  4. Download. You get a zip named after the scene with one PNG sheet per depth band used (for example name_far.png, name_mid.png, name_near.png) and name_layers.json.
  5. In the engine, draw the bands back to front and scroll each by its parallax value from the JSON.

#How to export every layer separately

  1. In Export, pick Per layer.
  2. You get a zip with one sheet per visible layer, numbered in draw order (for example name_01_Rain.png), plus name_layers.json.
  3. Each entry in the JSON lists the layer's name, type, depth, blend and parallax, so you can recreate the stack, blend modes included, in your engine.

#How to lock the output to a palette

  1. In Export, open Palette lock and pick a palette instead of Off (full colour).
  2. Choose the alpha handling next to it: Smooth alpha keeps soft edges, 4 levels gives a few stepped transparencies, On/off makes every pixel fully opaque or fully clear.
  3. The preview at the top of the dialog shows the result before you download.
  4. Combine On/off with a palette for strict retro art, or for engines and shaders that don't like semi-transparent pixels.

#How to read the sprite sheet JSON

Sprite sheet export writes name_sheet.png and name_sheet.json. The frames are laid out left to right, top to bottom, in a near-square grid.

FieldMeaning
appAlways pixxevi
imageThe PNG file name
sizeSheet width and height in pixels
frameOne frame's width and height (after Scale)
cols, rowsThe grid
framesOne entry per frame: i, x, y, w, h, durationMs
fps, loopPlayback speed, and true (it always loops)

The name_layers.json written by the two layered formats has app, frame, frames (the count), fps and a layers list with image, cols, rows, depth and parallax for each sheet.

#How to reproduce a scene exactly

  1. Every layer's pattern comes only from its settings and its Seed. Same settings and seed, same pixels, on any computer.
  2. Save the scene to the Cloud to keep everything: canvas, frames, FPS, every layer, the grade and the preview background choice (a preview picture isn't saved).
  3. Locally, your current scene is saved in the browser automatically, so a reload brings it back.
  4. To make controlled variations, duplicate a layer (Ctrl+D) and edit the copy's settings; the copy gets a different seed.

#Workflows

#Weather layers into Godot, Unity or GameMaker

  1. Build the weather with Far, Mid and Near layers and test it over your level using Preview on → Image.
  2. Open Send to App and send As a sprite sheet to Pixxizi. Pixxizi packages it for your engine with the right import files.
  3. For full parallax control, export Parallax layers instead and import each band as its own background layer, scrolling at the JSON's parallax speed.

#A day-to-night set from one scene

  1. Build the scene once, then export it with Time of day on Day.
  2. Switch to Dusk, then Night, exporting each. The layers, seeds and loop stay identical, so the three loops line up frame for frame.
  3. Cross-fade between them in your engine for a day/night cycle.

#A shared studio pipeline with Flow

  1. In Flow, map Pixxori (level art) → Pixxevi (weather) → Pixxizi (package).
  2. Each teammate opens their step with the previous result loaded, then uses Send result to Flow on the Flow chip in Pixxevi's top bar.
  3. If the level art changes later, the Pixxevi step is flagged Needs re-run, so the weather is redone over the new art.

#Tips and shortcuts

  • Limits: canvas up to 480 × 480, 2 to 240 frames per loop, 1 to 60 FPS, export Scale 1× to 8× (crisp, nearest-neighbour).
  • Blend modes cost extra: each non-normal layer is drawn into its own buffer every frame. Keep Normal where you don't need a glow.
  • Rendered frames are cached after the first pass of the loop, so playback smooths out once it has looped once.
  • Post effects (Heat shimmer, Glitch) affect only what's below them in the list. Move them up to include more layers.
  • Send to App sends the loop at 1×, whatever the export Scale is; scale up in the receiving app or export a file instead.
  • A very long, large loop (for example 480 × 480 × 240 frames) takes a moment to render when you send or export it.

#Troubleshooting

  • The JSON frame size doesn't match my canvas. The frame size in the JSON includes Scale: 160 × 120 at 3× is 480 × 360.
  • A band's sheet is missing from Parallax layers. Only depth bands that have visible layers are written. Show a layer on that band or set a layer's Depth to it.
  • Per-layer sheets look flat compared with the preview. They skip Colour grade & light on purpose; see the note in the per-layer how-to.
  • WebP export fails. It uses your browser's own WebP encoder; older Safari versions can't make WebP. Use APNG or a sheet.
  • Edges look blocky after a palette lock. On/off removes all soft alpha. Switch to 4 levels or Smooth alpha.