Awesome
conveyorbelt
This tool is being developed for 🐟 Fishbowl, you can follow along on Twitter.
⚠️ Warning: The tool doesn't work when the number of frames in an animation changes.
⚠️ Warning: The tool isn't able to update the bounding box (collision map) of sprites that have a non-default bounding box. If you run the tool in
--verbose
it'll warn you about the sprites whose bounding box wasn't changed.
Installation
You'll need to have NPM and Node to be able to install and run this tool. Once you have those installed run:
npm install -g @prtksxna/conveyorbelt
For local development clone the repository and then install it globally:
npm install -g .
CLI Help
% conveyorbelt run --help
Usage: conveyorbelt run [options]
Options:
-sd, --sprites-dir <string> Directory of GMS sprites (default: "sprites/")
-ad, --art-dir <string> Directory of Aseprite art (default: "art/")
-ap, --aseprite-path <string> Path to Aseprite executable (default: "~/Library/Application\\ Support/Steam/steamapps/common/Aseprite/Aseprite.app/Contents/MacOS/aseprite")
-p, --prefix <string> String prefix for GMS sprites (default: "s")
-v, --verbose Whether or not to use the verbose renderer (default: false)
-ne, --no-export Whether or not to export all Aseprite files on first run
-h, --help display help for command
Configuration
SPRITES_DIR
defaults tosprites/
: GameMaker spritesART_DIR
defaults toart/
: Aseprite spritesPREFIX
defaults tos
: The prefix that'll be used to find the sprite in GameMaker. For example if the aseprite is calledPlayer.aseprite
the sprite this script will try to update would besPlayer
.ASEPRITE_PATH
defaults toTODO
. You will need to change this based on your platform and how you installed Aseprite. Possible paths- C:\Program Files (x86)\Aseprite\Aseprite.exe
- C:\Program Files\Aseprite\Aseprite.exe
- C:\Program Files (x86)\Steam\steamapps\common\Aseprite\Aseprite.exe (Steam)
- /Applications/Aseprite.app/Contents/MacOS/aseprite
- ~/Library/ApplicationSupport/Steam/steamapps/common/Aseprite/Aseprite.app/Contents/MacOS/aseprite (Steam)
Convention
- Aseprite file names need to match the sprite names in GameMaker (except the
PREFIX
, see Configuration above) - If the sprite doesn't have any particular export layers or animations then a single PNG should be exported. For eg
UIBubble.aseprite
should makesUIBubble.png
- Files can have only particular layers exported by prefixing the layer name with
-x
or-xt
(if you want the PNG to be trimmed). For egLightMonsoon.aseprite
with the layers-xBedroomMorning
and-xtBedroomNight
will result in the following PNG -sLightMonsoonBedroomMorning
andsLightMonsoonBedroomNight
. - Animations will have the frame number appended to the file name after a
-
. SoRainParticle.aseprite
would createsRainParticle-001.png
,sRainParticle-002.png
and so on. - Files that have multiple animation tags will have the tag added at the end.
Example Aseprite files and how they'll be exported
- Single sprite
UIBubble.aseprite
->UIBubble.png
->sUIBubble
- Single animation
AirConFan.aseprite
->AirConFan001.png
,AirConFan002.png
... ->sAirConFan
- Multiple animations (tags)
Alo.aseprite
with tags (WalkFront
,WalkBack
)AloWalkFront001.png
,AloWalkFront002.png
... ->sAloWalkFront
AloWalkBack001.png
,AloWalkBack002.png
... ->sAloWalkBack
- Multiple layers (some prefix to mark only those for export):
LightBedroom.aseprite
with layersxWindowMorning
andxLampNight
:LightBedroomWindowMorning.png
->sLightBedroomWindowMorning
LightBedroomLampNight.png
->sLightBedroomLampNight
- Multiple layers + one animation for each
Window.aseprite
with layers-xtOutside
and-xCurtains
:WindowOutside001.png
,WindowOutside002.png
... ->sWindowOutside
WindowCurtains001.png
,WindowCurtains002.png
... ->sWindowCurtains
- Multiple layers + multiple tagged animation for each:
MomVideoCall.aseprite
with layers-xBackground
and-xPortrait
.-xBackground
has animation with tagsNight
andDay
MomVideoCallBackgroundNight001.png
,MomVideoCallBackgroundNight002.png
... ->sMomVideoCallBackgroundNight
MomVideoCallBackgroundDay001.png
,MomVideoCallBackgroundDay002.png
... ->sMomVideoCallBackgroundDay
-xPortrait
has animation with tagsHappy
andSad
:MomVideoCallPortraitHappy001.png
,MomVideoCallPortraitHappy002.png
... ->sMomVideoCallPortraitHappy
MomVideoCallPortraitSad001.png
,MomVideoCallPortraitSad002.png
... ->sMomVideoCallPortraitSad