PRODUCT UPDATE / 2D art · Sprite lighting

Ludo.ai adds frame-aligned normal maps to sprite sheets

The November 6 update can export a normal map alongside the sprite sheet and frame data, so 2D characters can react to lights as they animate. A map adds 0.5 credits per sprite sheet.

Published Event
A sword-and-shield sprite in Ludo.ai’s animated preview, with a moving light illuminating the character.
A moving light on a sword-and-shield sprite.
Who should pay attention

Export the sprite sheet and normal map together so a lit sprite can sample the corresponding part of each texture as the animation advances.

Ludo.ai added normal maps to sprite sheets on November 6. The extra texture records the surface direction of each pixel across the animation, in the same layout as the sprite sheet. With a lit sprite material, a moving torch or spell can change the shading on a 2D character as it animates. In Ludo.ai, you can open the preview from an asset’s normal map thumbnail and move the pointer to test the light before exporting.

Add a normal map when making the sheet

Enable Normal Map under Sprite Sheet Options when you generate or edit an animation. For an existing sprite, choose Generate Normal Map from its actions and apply the settings. Ludo.ai cuts a new sheet from the animation, so you can also change the frame count or size in the same step.

Sprite Sheet Options showing the Normal Map switch and a side-by-side comparison of a sprite and its color-coded normal map.
The Normal Map switch and its sprite preview.

Directional Sprites has the same switch at step 4.3. With it enabled, each facing you render gets its own map. A sprite sheet’s map adds 0.5 credits to the animation or render cost. There is no added map charge for still images in Image Generator or stills in Directional Sprites.

Keep the sprite, map and frame data together

You can download the map on its own or use the combined sheet and JSON download to keep all three files together. The map follows the sprite sheet’s layout, down to individual pixels and frames. Use the same frame region for both textures in the engine so the light follows the animation.

A sprite’s download menu offers a separate normal map or a bundle with the sprite sheet and JSON.
Download the map separately or with the sheet and JSON.

Ludo.ai exports normals in the OpenGL convention. Unity and Godot can use that channel orientation directly with their lighting setup. Godot’s 2D lighting guide shows how to supply the map through CanvasTexture. For Unreal, Ludo.ai recommends inverting green, which you can do with Flip Green Channel in the texture editor.

Request a map from the API or CLI

The generator documentation lists save_normals: true for supported sprite and image requests through the API or MCP. Read the resulting normal_map_url. In the CLI, the equivalent option is --save-normals. These options let a build script collect the color and normal textures from the same job. Ludo.ai includes developer access with its Pro and Studio plans.

See the Ludo.ai tool page or browse other steps in the 2D art and animation workflow.

Sources (5)
  1. Ludo.ai · November 6 normal maps release
  2. Ludo.ai · Normal Map Generator
  3. Godot · 2D lights and shadows
  4. Unreal Engine · Texture Asset Editor
  5. Ludo.ai · Developer access and plans

Written with AI from Ludo.ai’s release and official engine documentation. Editorial review follows the site’s automatic product update policy.