0.1.0 • Published 2 years ago

@prtksxna/conveyorbelt v0.1.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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.

conveyorbelt

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 to sprites/: GameMaker sprites
  • ART_DIR defaults to art/: Aseprite sprites
  • PREFIX defaults to s: The prefix that'll be used to find the sprite in GameMaker. For example if the aseprite is called Player.aseprite the sprite this script will try to update would be sPlayer.
  • ASEPRITE_PATH defaults to TODO. 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 make sUIBubble.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 eg LightMonsoon.aseprite with the layers -xBedroomMorning and -xtBedroomNight will result in the following PNG - sLightMonsoonBedroomMorning and sLightMonsoonBedroomNight.
  • Animations will have the frame number appended to the file name after a -. So RainParticle.aseprite would create sRainParticle-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 layers xWindowMorning and xLampNight:
    • 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 tags Night and Day
      • MomVideoCallBackgroundNight001.png, MomVideoCallBackgroundNight002.png... -> sMomVideoCallBackgroundNight
      • MomVideoCallBackgroundDay001.png, MomVideoCallBackgroundDay002.png... -> sMomVideoCallBackgroundDay
    • -xPortrait has animation with tags Happy and Sad:
      • MomVideoCallPortraitHappy001.png, MomVideoCallPortraitHappy002.png... -> sMomVideoCallPortraitHappy
      • MomVideoCallPortraitSad001.png, MomVideoCallPortraitSad002.png... -> sMomVideoCallPortraitSad