Aseprite Plugin For Excalibur
This extension adds support for Aseprite SpriteSheets and Animations exported to json or the native .aseprite
file format.
- Supports RGBA, Grayscale, and Indexed Sprites!
- Supports opacity on cells and layers!
- Supports tagged animations!
> npm install @excaliburjs/plugin-aseprite
-
Use the native .aseprite
file format or using export json the aseprite cli or through the UI.
-
Load the Aseprite resource and voila ✨
- Use
AsepriteResource.getAnimation(name)
to retrieve animations by the name in aseprite - Use
AsepriteResource.getSpriteSheet()
to get the equivalent Excalibur SpriteSheet
Example:
import { AsepriteResource } from "@excaliburjs/plugin-aseprite";
const game = new Engine({
width: 600,
height: 400,
displayMode: DisplayMode.FitScreen
});
const asepriteSpriteSheet = new AsepriteResource('./beetle.aseprite');
const loader = new Loader([asepriteSpriteSheet]);
game.start(loader).then(() => {
const anim = asepriteSpriteSheet.getAnimation('Loop');
const actor = new Actor({pos: vec(100, 100)});
actor.graphics.use(anim);
game.currentScene.add(actor);
});
Example exporting JSON in the UI
Contributing
- Built with webpack 5
- Uses webpack-dev-server
To start development server:
npm start
To watch:
npm run watch
To compile only:
npm run build
To run tests:
npx playwright install
npm test
To update snapshots
-
Windows
npx playwright test --update-snapshots
-
Linux for CI
docker run --rm --network host -v C:\projects\excalibur-aseprite:/work/ -w /work/ -it mcr.microsoft.com/playwright:v1.43.1-jammy /bin/bash
npm install
npx playwright test --update-snapshots
Currently unsupported in the Native format
PRs welcome to address!
- Layer blend modes
- Tilesets
- User Data
- External files
- Color Profiles