Export to Unreal Engine 5
PNGs + a Python script. Run it from inside UE5 and a posed PaperSprite Blueprint actor lands at /Game/<Project>.
UE5 .uasset is binary, so we ship sprite PNGs plus a Python script that runs inside the UE5 editor. The script imports textures, creates PaperSprites, and builds a Blueprint actor with each layer at its baked T-pose transform.
What's in the zip
folder<Project>/
├─ Sprites/
│ └─ <layer>.png (one per visible layer)
├─ import_<Project>.py (run inside UE5)
└─ README.txtPrerequisites
UE5.x with two plugins enabled (both ship with the engine, free):
- Paper2D — Texture2D + PaperSprite + PaperSpriteComponent.
- Python Editor Script Plugin — runs the import script.
Enable both via Edit → Plugins, then restart the editor.
Importing
- Unzip the export anywhere on disk.
- In UE5, go to Tools → Execute Python Script…
- Pick
import_<Project>.py. The script logs to the Output Log. - On success: Texture2D assets land at
/Game/<Project>/Textures/, PaperSprites at/Game/<Project>/Sprites/, and a Blueprint actor at/Game/<Project>/<Project>_BP.
Using the Blueprint actor
Drag the <Project>_BP Blueprint into a level. The character appears posed in T-pose with one PaperSpriteComponent per layer at the rest-pose transform. Each component has Translucency Sort Priority set to its layer index, so draw order survives.
Animation is static-only on UE5
Paper2D doesn't have a clean editor-script path for per-component animation curves — Sequencer would work but driving Sequencer from Python is verbose and fragile. The Charios export ships the posed actor; for animation you have two options:
- Drive components from a Blueprint tick. Read your animation from a custom data asset and rotate / translate the PaperSpriteComponents per frame. Doable in 50 lines of Blueprint.
- Lift into Control Rig. Once imported, parent the components to a Control Rig and animate via UE5's standard animation tooling. More work upfront, more flexible long-term.
Texture settings
The Python script sets every imported texture to SRGB = True and CompressionSettings = TC_EditorIcon for clean alpha. If your project uses premultiplied alpha or a different colour space, change these in the texture import settings before using.
Was this page helpful?