I finished the art and after that I remembered that I saw this script. I downloaded it, installed it. After recorded the whole process by holding CTRL+Z and CTRL+Y.
It is important to note that do not need to close Aseprite after installing the script. There is a function "Rescan Scripts Folder" on F5.
Record for Aseprite
A downloadable tool
Record is a suite of LUA scripts for taking incremental snapshots of your sprite within Aseprite for the purpose of making a time lapse/progress gif.
I always enjoyed seeing progress recordings of artwork and wanted to have a simple way to make them that didn't require firing up a screen recording software and dealing with video editing.
This can be used to create such a time lapse gif of a sprite you are working on natively within Aseprite, or just to keep track of your work as it progressed.
It stores flattened copies of your sprite in a folder local to your current working sprite with an incrementing number to take advantage of Aseprite's automatic gif functionality for files with sequentially numbered names.
How To Install
Minimum requirement of Aseprite 1.2.30
- Download the ZIP file and extract it anywhere you want.
- Open Aseprite and select File > Scripts > Open Scripts Folder.
- Copy the extracted folder, aseprite-record, to the opened directory.
- Use the Rescan Scripts Folder option or Restart Aseprite to make use of the installed scripts.
Record requires that whatever file you are working on be saved so it can know where to save your snapshots of the flattened sprite.
Record comes packaged with many options available from the Scripts menu.
This option will open up a dialog box that provides functionality take snapshots on an interval.
Action delay is equal to the number of actions you take before the next snapshot is taken. It requires there to be an active & saved sprite in order to run. The interval at which saves happen is based on sprite change events - when changes are made to the sprite, including undo/redo actions.
The interval is configurable in the dialog, lower numbers means more frequent snapshots.
If you change the active sprite in the app, automatic snapshots will keep a cached reference to the target sprite until you target a new one with the dialog.
Usage of the Command Palette and Take Snapshot command can be used in parallel while this is running.
This option will open up a dialog box to leave up in your editor, giving you access to the functionality to take a snapshot & open the time lapse for the current sprite if any snapshots are saved for it.
The functions of each button are described in detail below and are available as single actions that can be mapped to a keyboard shortcut.
This option saves a flattened png copy of the visible layers of the current sprite. It is saved to a sibling folder named <name of sprite>_record. Each file will be saved with an incrementing count appended to the end of it. No modifications to your work are performed by this script, it only creates new files.
Open Time Lapse
This will open the Aseprite dialog asking if you wish to load all sequenced files related as a gif. If you accept, it will load it as a cool time lapse of all your snapshots saved for the current sprite.
Aseprite allows you to customize usage of scripts added in further with the ability to bind them to a keyboard shortcut. This is why the options available on the Record Command Palette are available as single actions.
For ease of use, it is recommended to bind the Take Snapshot script to a shortcut to enable access and simplify frequent usage.
Aseprite Prompts & Warnings
Because this script will need to access your file system and write new files, it will prompt modals for you to accept to let it function.
To have the best experience, check the box to "Give full trust to this script". It will also prompt you when it saves the recording as a png since it doesn't support layers like a .aseprite file does. You may want to check that box as well, otherwise it will get quite annoying.
As with all software, there are some warnings about actions that could impact your experience with this tool. Luckily, they're pretty straightforward.
Renaming the sprite or recording folder
Because the script functions based off a saved sprite, changing the name of the sprite itself or the folder it writes to will cause it to begin over from start upon next usage of Take Snapshot. This should not incur any loss of data but it will begin as if it was a new instance when you try to create a time lapse. All of your original files will still be where you left them.
Renaming or deleting recording snapshot files
Note: As of 3.x the file increment is tracked in an index file.
If you rename any of the snapshot files themselves or delete them, it can cause the script to start over in counting or overwrite existing ones. It determines what the next number in sequence should be based off file names.
If you had files 1, 2, and 3 - and removed 2. This would cause the tool to think it needs to start at 2.
License, Source, & Credits
This software is available to you, the user, free of charge under the MIT license.
Its source code is available to download, remix, and submit pull requests & bug fixes on Github.
No credit to me is required if you do use this software, but I do encourage you share it with others who may also find enjoyment & utility from it.
Click download now to get access to the following files:
- v3.4 - Indexed color mode support + minor fix1 day ago
- v3.3 - Fix to dedupe image captureMay 14, 2022
- v3.1 - Backwards Compatibility UpdateApr 17, 2022
- v3.0 - Quality of Life ImprovementsApr 17, 2022
- v2.x - Released now with Auto SnapshotDec 08, 2021
- v1.2 - Patch release for Command PaletteMar 15, 2020
- v1.1 Patch & ScreenshotsMar 12, 2020
- v1 - Early AccessMar 09, 2020
Log in with itch.io to leave a comment.
The delay feature is clearly not working, I had it set to 5000(!) thinking that it was in milliseconds, still ended up with 10000 snapshots while working on a piece.
You have to set the interval after pressing start. Adding a hint for that would be nice :D
I’m not sure if I would be able to pull that off with the way the Aseprite API works but I can put on my todo list to look into see if there are better methods around converting snapshots into the final timelapse.
You can use Blender (100% free) to do this for you from the recorded Aseprite images. You can google for "blender import png image sequence" for videos on how to do it. Just point it at the directory that has all the timelapse images.
i haven't tried it yet but thanks so much for this!! I've been wanting something like this for a long time :DD
everytime i record it will crash the whole aseprite app and my recent work wont show up on the recent view
Sorry to hear that things aren’t going so well. I’ll try to help in any way I can but cannot guarantee I’m able to figure out a solution.
What version of Aseprite are you running? Are you using the most recent version of this plugin? Do you have any other plugins/extensions running? If you are using the automatic snapshot functionality, what interval are you recording at? How big is the file you are working on?
Aseprite v188.8.131.52 x64 interval is 3 and the files are mostly 64pixel
I made a fork today that:
- Fixed crashes with Selection Tool + Move Tool
- Removed the annoying popup save dialog
- Defaulted snapshot interval to 1 (instead of 3)
- Nicer output file names
Feel free to yank some/all of the new content from this and bring it into the main project.
I also wrote a post processor that will collapse sequences of identical output files. It will also rename things in proper order, letting you hand-delete bad recorded frames (such as an accidental paint fill). It's still pretty rough on the edges (wrote it today), so I don't have a link for it up yet.
Oh wow, that’s quite an update. I’ll give it a read through and let you know if I pull it back into the main project.
Just a heads up, I’ve pulled in your updates to the project with a minor tweak to maintain compatibility with existing snapshot files & added documentation for a migration path for anyone who may try to use the update with said existing snapshot.
Awesome. Sorry for the C-like Lua... I've never read or written Lua before and couldn't be bothered to read a tutorial :)
Also it looks like you beat me to a backward compatibility shim. Perhaps we should shove the version number into a metadata file such as `foo__record/_version.txt`.
No worries about the C-like Lua, I hadn’t really written any Lua prior to this extension so a lot of it was learned on the fly.
I did managed to squeeze out the compatibility shim, I think it’ll resolve any possible issues that may arise.
Regarding a version file, I don’t imagine it’ll be necessary as I tend to aim to keep things backwards compatible - and based on the nature of the utility I would figure people won’t tend to go back to previous snapshots once they’re done with their piece. Something to think about though, like tracking more meta data if necessary.
thank you for making this tool its really cool to see how the art got built up :)
I would be, but I assumed it’d require some way to to override the dialog that wasn’t exposed via the API.
I said Aseprite build :) It's open-source, so that can be changed.
Not sure about licensing though (assuming we're not talking about opening a Pull Request).
I figured as much - maybe they’d be open to accepting a PR for such a change to improve more automation like extensions if it was reasonable.
i have aseprite 1.2.25, will it work for me?
You will not be able to use the most recent version that contains the automatic snapshot tools, but you will be able to leverage the previous version that has the manual controls. That can be downloaded here (https://github.com/sprngr/aseprite-record/archive/refs/tags/v1.2.zip)
Thank you for sharing! It's super cool and helpful.
I don't know what I did wrong. I only got the screenshots. When I open the timelapse command it doesn't pop up the tab with "Do you want to load the following files as an animation?"
That’s an interesting problem.
What Aseprite version are you using?
Do the files have sequential names?
Are you able to open the first file in the list with Aseprite like you would any other file and have it try to prompt then to open as an animation? That piece is built into Aseprite, so I’d be interested to see if that works.
I’m going to test on my PC when I get some free time but hoping we can figure out what has gone wrong.
I'm using Aseprite v1.2.33
It's working now!! thank you for your help. It doesn't prompt a tab asking to load the files as an animation but it still plays as an animation. Haven't tried that the first time so I thought I got it all wrong.
Thank you again for your suggestion! Have an awesome day!!
Great tool, thanks for sharing!
An awesome tool! I recommend it to any pixel artist who want to save their timelapses on aseprite.
This is really nice! You introduced a very cool feature for aseprite!
Hope they will add this is the program
Amazing ^^ thank you
It cannot take automatic snapshots, I had tried to include a timer but doing so locks up Aseprite while the timer is enabled.
Given that’s the case, I do provide some tips as to how to enable triggering the snapshot via keyboard shortcut.
This is perfect ! Thank you so much for this <3
Hey man, hope you're doing alright.
Sadly I don't see the scripts tab. Is the version I am using way past the required one? that's what It looks like. Would definitely love to have this functionality for whatever art I make using aseprite.
Was going to donate the $2 bucks, but then saw I couldn't use it. If you're still working on this, I'd still be down, if not, I completely understand too.
Thank you for reaching out.
The scripts menu should be under the File tab on the main menu. I just checked it in the current version and did a reinstall to make sure everything is working as expected.
What version are you using? The scripts require at least version Aseprite 1.2.17.
Hey, Thanks alot for the prompt reply :D.
I am using this version
welp, it looks like I was using the beta version, rather than the latest stable version and it doesn't allow for scripts. I have switched and now I can see the scripts. Will let you know if this worked.
Hi just want to thank you for making this awesome tool! I havent used it but plan to use it in place or recording my screen and editing video thats hours long :) Good work!