KitForma field notes

Read rotated atlas coordinates and preserve animation order

Distinguish logical frame dimensions from physical image rectangles before adapting a loader.

A rotated frame has two useful rectangles

Allowing rotation lets the packer store a frame ninety degrees clockwise when that orientation helps a placement. The character itself should still appear upright after loading. The atlas JSON therefore includes a rotation flag and logical unrotated width and height, while the detailed manifest also exposes the actual physical rectangle in the PNG.

For a rotated frame, those physical dimensions are swapped. A custom importer that cuts the logical width and height directly from the image will read the wrong pixels. It must use the physical rectangle, undo the clockwise storage rotation and then apply the recorded trim offset within the original source canvas.

Use the engine convention you verified

The shared JSON supports non-rotated Phaser JSONHash atlases and PixiJS spritesheets. Turn packing rotation off for Phaser; rotated atlases target PixiJS. Source dimensions, sprite-source offsets and centered anchors remain explicit. A different loader may use another rotation sign, a different pivot convention or dimensions with another meaning, even when its file is also called an atlas JSON.

The manifest is intended to make those distinctions inspectable rather than conceal them. Compare its packedFrame, frame, sourceSize and spriteSourceSize fields when writing an adapter. Test with an asymmetric rectangular sprite that has distinct colors at its corners; a square or symmetrical image can hide an orientation mistake.

Keep order separate from packing position

Rectangle packing sorts and moves images to find space, so left-to-right position in the atlas is not the animation sequence. The exported default animation explicitly lists frame names in the chosen order. Renaming or reordering a frame rebuilds the matching metadata, and the workspace animation uses that same sequence.

The FPS setting is uniform for the sequence. The loading notes show how to apply it in the target engines; this tool does not encode sound, per-frame events or an entire game animation state machine. After importing, inspect a complete loop, pause on individual frames and check the origin alignment before replacing an existing production asset.

The evidence behind the check

Sources & assumptions

Formats, algorithms and supported features are documented below. Check the stated scope and inspect your output before using it.

Reviewed 2026-10-19. Read our methodology or report an issue.

Essential local storage remembers this choice for up to 180 days. Your choice applies to this subdomain. Global Privacy Control and Do Not Track override optional measurement.

Advertising has a separate choice. Use Advertising preferences in the footer to allow or reject the optional guide-page banner.