Creating a sprite sheet from multiple .aseprite files

Hello. I’ve looked around and haven’t found any solution to what I’m trying to do.
Before submitting a feature request on GitHub, I thought it’d be better to bring this up here.

I have multiple .aseprite files that represent all of the possible animations for a given character. They’re like stand.aseprite, walk.aseprite, run.aseprite, etc. For the sake of simplicity, let’s call them anim1.aseprite, anim2.aseprite, anim3.aseprite, etc.

I’d like to create a sprite sheet from all these files. The sprite sheet may have over 100 frames in total, so trying to maintain a single .aseprite containing all animations does not sound like a good idea.

The first row would be all the frames from anim1.aseprite (maybe if they have a certain tag), the second row would be all the frames from anim2.aseprite, and so on, one row per .aseprite file. In my case, all frames will have the same size across animations, and each anim doesn’t necessarily have the same amount of frames, so it’s okay if each sprite sheet row doesn’t have the same number of frames.

I have looked at the CLI, but I haven’t found anything like this.

I can think of a few ways to script something like this (if the feature existed):

  • Build one huge .aseprite file that would be the result of merging all .aseprite files together, then build the sprite sheet from it
  • Reference all the .aseprite files that need to compose the sprite sheet, then build it in one go
  • Build one sprite sheet per .aseprite file, then merge all the sprite sheets into a single one

Any help would be appreciated. Thanks.

Having played more with the CLI, it seems it’s already supported. The CLI supports multiple paths, even though I’m not sure it’s documented. I could not find this information on the CLI page (Aseprite - Docs - Cli), but maybe I’ve overlooked it.

This command works just like the “Reference all the .aseprite files that need to compose the sprite sheet, then build it in one go” option:

aseprite --batch anim1.aseprite anim2.aseprite anim3.aseprite --sheet output.png --data output.json

I faced a similar problem, and this was the most helpful thing I’ve found.
But to make it simpler you can create .bat file, move it to folder with your .aseprite files and run it.

Just edit the code to use correct path to your Aseprite.exe file.

@echo off 

@REM set "aseprite=C:\Program Files (x86)\Aseprite\Aseprite.exe"
@REM set "aseprite=C:\Program Files\Aseprite\Aseprite.exe"
set "aseprite=C:\Program Files (x86)\Steam\steamapps\common\Aseprite\Aseprite.exe"

for %%f in (*.aseprite) do (
    if "%%~xf"==".aseprite" call set "mystr=%%f %%mystr%%"
)

"%aseprite%" --batch %mystr% --sheet output.png --data output.json --sheet-pack