Bevy Sprite Animations
Easily manage complex 2D sprite animations
Quick Start
- Add the
BanimatePluginGroupto your app - Load one or more animation sets (see below for defining animation sets in files)
- Spawn an entity with a
SpriteSheetBundleand attach aSpriteAnimationBundlecomponent, providing aHandleto an animation set - Watch your sprites doing their thing!
- Optional: Use
AnimationQueryin one of your systems to control the animations
Types of Animation
Simple Animations
TODO: Describe simple animations
- A simple looping animation with a single set of frames and frame rate, no control needed or provided
Sprite Animations
TODO: Describe sprite animations
- Sets the name of the animation to play, play the animation. Simple.
- Interrupt the current animation temporarily with an
AnimationOverride
Directional Animations
TODO: Describe directional animations
- Includes a component for altering the name of a playing animation based on its value, representing direction
Child Animations
Adding a ChildAnimationBundle to an entity will cause its status to by synced to it's Parent entity
Animation Sets
An animation set maps a name to a series of frames and a frame rate. A given animation has one frame rate for the whole animation, but different animations can have different frame rates (i.e. a "walk" animation could play at 100ms per frame, and an "idle" animation could play at 250ms per frame, but you can not set the duration of an individual frame within either animation).
An AnimationSet might contains many animations, and a given AnimationSet is likely to be attached to many entities.
As such,
animations use the Asset system to avoid passing around relatively large duplicate objects. Loaders are included
for JSON and TOML
data types, but only JSON is enabled by default. The loaders are not required, and so can therefore be disabled if
another method
of creating AnimationSet assets is desired.
Defining animations with JSON
With the json_loader feature enabled, you can load an animation set from a file with a .anim.json suffix that looks
like this:
Defining animations with TOML
With the toml_loader feature enabled, you can load an animation set from a file with a .anim.toml suffix that looks
like this:
[]
= [1, 2, 3]
= 250
[]
= [34, 34, 34, 35, 36]
= 100
Compatibility
| banimate version | bevy version | tilemap version |
|---|---|---|
| 0.5.x | 0.10 | -- |
| 0.2.x, 0.3.x, 0.4.x | 0.9 | 0.9 |
| 0.1.x | 0.8 | 0.8 |