Skip to content

Importing sprites

The Importer turns your image files into a sprite: a single animation your pet can play, like “idle” or “walk.” You open it from the behavior graph editor (via the Assets panel) or the Object Editor’s Assets tab.

The Sprite Importer, showing the frame tray, animation preview, and import settings.

Add frames with the tray’s Add button, or by dragging image files onto the window. Drag-drop adds them straight in as frames. The sources you can start from:

  • Single Image. One still frame.
  • PNG Sequence. Several PNG files that become the frames of one animation. They’re ordered by natural filename order, so frame2.png comes before frame10.png (not alphabetically).
  • GIF. The app extracts each frame automatically.
  • Sprite Sheet. One image containing a grid of frames. Choosing this source opens the Slicer so you can pick exactly which cells become frames; the sliced frames then flow back into the Importer. Slicing is a deliberate step: dragging a sheet onto the window just adds the whole image as one frame, it is not sliced. → Slicing sprite sheets

You can mix sources: import a PNG sequence, then append a GIF’s frames onto the end, and so on. Appended frames must match the animation’s frame size (set by the first frame); any that do not are rejected.

The Importer reads the frame size from your first frame and expects every other frame to match it. If you add a frame of a different size, it’s rejected with an error, so keep all frames of one animation the same dimensions. The detected size is shown (read-only) in the settings panel as W × H.

There is no strict size limit for typical pet art, but smaller frames render faster and use less memory. Aim for around 64-128 px, and up to about 256 px for larger pets. Very large images (thousands of pixels) still work, but they tax performance for no visible benefit at desktop-pet sizes.

For guidance on good sizes, see Tips & best practices.

If your frames would use a lot of memory once loaded, Import Settings shows a note telling you roughly how much, along with what would reduce it. It is advice, not an error: a big animation is not automatically a mistake, and nothing is blocked or changed for you.

Which suggestion you get depends on why the animation is heavy. Large frames can be reduced with the frame size limit below. Many small frames cannot, so there the only real fix is using fewer of them.

The figure updates as you change settings, so if you turn on the frame size limit you can watch it drop.

If your frames are larger than 200 px, Import Settings offers a Limit frame size checkbox with a choice of maximum sizes: 100, 200, or 400 pixels. Tick it and pick one, and your frames are scaled down (keeping their proportions) so the longer side fits that size, which reduces how much memory the sprite uses while running.

Sizes that are larger than your frames already are do not appear, since making a frame bigger is not something this can do.

It is off by default, and worth understanding before you turn it on:

  • It cannot be undone. The sprite is saved at the reduced size, and the original images are not kept. To go back you would re-import from your source files.
  • It costs sharpness if you scale the pet up. A pet displayed at a scale above 1 is already being enlarged, so a smaller stored frame will look soft. If you run your pets at 3x or 5x, leave this off.

The checkbox only appears when your frames are actually over the limit, and only on a fresh import. When you edit an existing sprite the frame size is locked, so there is nothing to cap.

The Pixel art (crisp) checkbox tells the importer how to resize your frames, and it is on by default.

  • On keeps hard pixel edges, with no blending between colors. This is what you want for pixel art: it stays crisp and no new in-between colors appear.
  • Off applies smooth filtering, which is what hi-res or hand-drawn artwork needs. Resizing that kind of image with the crisp setting drops pixels outright and leaves the result jagged.

The same setting also controls how your pet is drawn on screen, so what you import and what you see always match. You can change it later in the Sprite Inspector.

The Frames tray lets you:

  • select a frame to inspect it,
  • reorder frames (move a frame earlier or later),
  • remove frames you don’t want, and
  • resize the thumbnails to see more or fewer at once.

The order in the tray is the order the animation plays.

The Animation Preview plays your frames in a loop so you can check the timing. Set the playback speed with the FPS control:

  • The default is 4 FPS, a comfortable, pixel-art-friendly pace.
  • When you import a GIF, the FPS is pre-filled from the GIF’s own timing, so it plays at roughly the speed it was authored (falling back to 4 if the GIF has no usable timing). Appending a GIF to existing frames keeps your current FPS.

You can also override FPS per action later, in the node’s settings. See Node reference.

Big GIFs or large sequences can take a moment. You’ll see a progress bar with a label for the current phase (Extracting frames…, Composing sheet…, Loading frames…). You can Cancel at any time (or press Esc) to abort cleanly and start over.

In the Import Settings panel:

  1. Give the sprite an Asset Name (required), something descriptive like idle, walk, or jump. This is the name you’ll pick from when assigning it to a node.
  2. Check the frame count and size.
  3. Set Pixel art (crisp) to match your artwork.
  4. Optionally tick Limit frame size and pick a maximum, if your frames are large and you want to trade sharpness for lower memory use.
  5. Click Import Sprite.

The Importer composes your frames into one sprite-sheet image, saves it into your pet (or object), and hands it back to the editor, where it appears in the Assets list ready to assign.