A Lua animation library for LÖVE that simplifies sprite sheet animation with grids and frame management.
anim8 is a Lua library for creating and managing sprite animations in LÖVE 2D games. It solves the problem of handling complex sprite sheets by introducing a grid system that simplifies frame extraction and animation sequencing. Developers use it to define animations with precise timing, flipping, and drawing controls directly integrated with LÖVE's update and render loops.
LÖVE developers and indie game creators working on 2D projects that require efficient sprite-based animation systems.
It offers a straightforward, grid-based approach to animation that reduces manual quad management, provides flexible timing options, and integrates seamlessly with LÖVE's graphics pipeline without unnecessary complexity.
An animation library for LÖVE
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Simplifies creating quads from sprite sheets using customizable grids with support for borders and offsets, reducing manual quad management as shown in the grid creation parameters (frameWidth, frameHeight, border).
Allows precise animation timing with per-frame or range-based durations, enabling complex sequences like the submarine example with forward and backward frames using the durations parameter in newAnimation.
Directly works with LÖVE's update and draw cycles via animation:update and animation:draw, and supports sprite batches through getFrameInfo for optimized rendering, as demonstrated in the spritebatch-demo branch.
Provides built-in flipH and flipV methods to mirror animations dynamically without creating new animations, useful for characters facing different directions, with examples in the README.
Requires matching specific anim8 versions with LÖVE releases (e.g., v2.1 for 0.9.x/0.10.x, v2.0 for 0.8.x), which can complicate updates and maintenance for projects on older LÖVE versions.
Setting up grids demands accurate parameters for frame dimensions, offsets, and borders, which can be tedious and error-prone for irregular sprite sheets, as seen in the detailed grid creation process.
Focused solely on 2D sprite sheet animations, lacking support for procedural, skeletal, or frame-independent animations that might be needed for more advanced game mechanics.