Aseprite Record

This project started out of a desire to see if I could build a way to leverage APIs within Aseprite to support creation of timelapses without the need for a secondary application like a screen recorder. At the time I had taken up an interest in creating pixel art and loved seeing artists share the in-progress animations of the work being created, a wonderful reminder of the effort that goes into these works.

Screenshot of Plugin Menu

After digging through the Aseprite API documentation, I found that it was possible for me to come up with a system to take snapshots of the current state as a flattened layer, and save it in a way that let me maintain an index for ordering purposes. The reason for maintaining an order on the file names was to leverage Aseprite's built in functionality to open files with the same name prefix and digit optionally as a gif, treating each file as a frame. Later on this would receive a contribution that tracks a separate indexing file, reducing complexity when identifying the next iterator and not relying on file names.

This was able to be tied to a keyboard shortcut or menu option, and seemed pretty sufficient for the time though far from ideal.

Example of producing a gif made with this utility #

Screenshot of Gif loading
Example gif

At a later point, the Aseprite API received an update exposing signals for actions taken while editing a file. This allowed support for a non-blocking method of automating the snapshot process, therefore making it not only much more functional but customizable as to when the trigger occurs. The trigger was based off any time a change occurred to the sprite, which meant I was able to have it capture not just brush strokes but any copy/paste, resize, crop, etc events that occur. As an option for the user, they are able to set how many actions occur before a snapshot is taken - letting them increase or decrease the frequency of changes recorded.

Automatic Control Palette

At the time of writing the project has had over 6,600 downloads.

Itch.io Project page #

Github Repository #