Action-based animation system for Bevy.

Overview

bevy_action_animation

Action-based animation system for Bevy.

Introduction

This plugin provides users of the Bevy game engine with an action/trigger-based animation system. This kind of animation system makes for a more scalable framework for adding animations into a game, by providing the necessary tools to decouple animation logic from game logic.

This plugin is based on bevy_action.

WARNING: This plugin is still in beta state. Please report bugs on the issues page!

How It Works

Actions

Based on bevy_action, animations are configured tightly with specific action types defined by the user, and are triggered when the AnimationPlugin's internal systems read an action that corresponds to one of its defined animations.

Animation Queue

bevy_action_animation is a fairly simple plugin. It provides the action-based animation system by using an animation queue.

This queue queues up animations as they are triggered, and plays them in order as they pop off the queue (LIFO).

There are two types of animation-play modes: Once, and Repeating.

The Once mode plays the animation clip entirely, once, and cannot be interrupted.

The Repeating mode plays in a cycle, infinitely, until another animation is added to the animation queue. This means that if a Repeating animation was added, and then another was added the next frame, the original Repeating animation would most likely only play one frame before being cancelled and overwritten by the next animation.

Animation Attributes

Another feature of bevy_action_animation is the ability to give certain animations certain attributes. These are hard-defined by the plugin itself, and include the following:

  • FlipX (flips sprite horizontally)
  • FlipY (flips sprite vertically)
  • Trigger(Action) (triggers an action upon completion) [1]

Side-notes:

  1. Once animations will trigger a Trigger attribute's action upon full completion. Repeating animations will trigger the attribute's action upon cancellation.

Duplicating these attributes is possible, but may have no affect for some:

  • FlipX - No affect
  • FlipY - No affect
  • Trigger - Adds another trigger

Animation Definition File

Animations are defined in RON files.

NOTE: Custom formats will be supported in the future.

An example of the format structure of the RON files is available in the assets directory.

Examples

See the examples directory.

Future Work

  • Better documentation
  • Support custom formats
  • Decouple animation files from the animation system
  • Migrate away from rand for RNG (once Bevy offers an RNG API)
  • Benchmark?

Compatibility

Bevy Version Plugin Version
0.10.x 0.1
You might also like...
2D and 3D physics engine based on Extended Position Based Dynamics for Bevy.

Bevy XPBD Bevy XPBD is a 2D and 3D physics engine based on Extended Position Based Dynamics (XPBD) for the Bevy game engine. Design Below are some of

Minecraft-esque voxel engine prototype made with the bevy game engine. Pending bevy 0.6 release to undergo a full rewrite.
Minecraft-esque voxel engine prototype made with the bevy game engine. Pending bevy 0.6 release to undergo a full rewrite.

vx_bevy A voxel engine prototype made using the Bevy game engine. Goals and features Very basic worldgen Animated chunk loading (ala cube world) Optim

bevy-hikari is an implementation of voxel cone tracing global illumination with anisotropic mip-mapping in Bevy
bevy-hikari is an implementation of voxel cone tracing global illumination with anisotropic mip-mapping in Bevy

Bevy Voxel Cone Tracing bevy-hikari is an implementation of voxel cone tracing global illumination with anisotropic mip-mapping in Bevy. Bevy Version

A simple extension for `bevy-editor-pls` to support tilemap editing right inside the bevy app.

What is this This is a simple tilemap editor plugin, that hooks right into bevy_editor_pls to work with bevy_ecs_tilemap. It works completely within i

Bevy Simple Portals is a Bevy game engine plugin aimed to create portals.
Bevy Simple Portals is a Bevy game engine plugin aimed to create portals.

Portals for Bevy Bevy Simple Portals is a Bevy game engine plugin aimed to create portals. Those portals are (for now) purely visual and can be used t

Minecraft using Bevy and Bevy-Meshem

minecraft_bevy Minecraft_bevy was built to showcase bevy_meshem. After a week of developing it has: Chunk loading / unloading each chunk's mesh is bei

Hanabi — a particle system plugin for the Bevy game engine.

Hanabi — a particle system plugin for the Bevy game engine

An atomic save/load system for Bevy Game Engine.

☢️ Bevy Atomic Save An atomic save/load system for Bevy. Features Save and load a World into a RON file on disk Control which entities should particip

🎆 CPU-driven, batch-rendered particle system for the Bevy game engine.
🎆 CPU-driven, batch-rendered particle system for the Bevy game engine.

Bevy Firework 🎆 Bevy firework is a particle system plugin where particles are simulated on the CPU and use GPU batching for rendering. This allows ea

Owner
undersquire
undersquire
A sprite-sheet animation plugin for bevy

Benimator A sprite sheet animation plugin for bevy Features A SpriteSheetAnimation component to automatically update the indices of the TextureAtlasSp

Jonathan Cornaz 140 Dec 27, 2022
Tweening animation plugin for the Bevy game engine.

?? Bevy Tweening Tweening animation plugin for the Bevy game engine. Features Animate any field of any component or asset, including custom ones. Run

Jerome Humbert 135 Dec 23, 2022
📺 An implementation of the retro bouncing DVD logo screensaver animation built with bevy and rust

?? Bevy bouncing DVD logo This project is a simple demonstration of using the Bevy game engine and the Rust programming language to create a bouncing

Victor Aremu 5 Jan 12, 2023
Animation graphs in Bevy!

bevy_animation_graph Motivation Animation graphs are an essential tool for managing the complexity present in the animation pipelines for modern 3D ga

Manuel Brea Carreras 11 Dec 18, 2023
Interoperation with the Automaton animation engine

Automaton-rs an interopt layer for the Automaton animation engine for creative coding

Aaron Bies 9 Sep 18, 2021
Sci-fi run 'n' gun action RPG created in Rust, using Macroquad

Capstone - Twilight of the Archons This is an action/run 'n' gun RPG, created in Rust using macroquad. The future holds huge boss fights, and a mind-n

Ole A. Sjo Fasting 58 Dec 5, 2022
Engine / framework for creating highly customizable and user modable action RPG's

Rust RPG Toolkit PLEASE NOTE: this in early and very heavy development. API is subject to constant change, as it has newly transitioned from being a g

Ole A. Sjo Fasting 58 Dec 5, 2022
Rustification of the excellent GD Script Action RPG Tutorial by youtuber HeartBeast

Godot Action RPG w/Rust A GDNative implementation in Rust of youtuber HeartBeast 's great step-by-step turoial series creating a Godot Action RPG, usi

Nejat 14 Apr 14, 2022
🐝 An action-packed game where you play as a missile-dodging, laser-evading, upgradeable bumbly bee.

Beeline The last known specimens of the Andor flower, the flower with the tastiest nectar in the world, are preserved at the Mount Dared fortified mil

plam 4 Oct 6, 2022
A light-weight Anchor-Offset based 2D sprite rendering system for the bevy engine.

Bevy AoUI A light-weight anchor-offset based 2D sprite layout system for the bevy engine. Bevy AoUI provides a light-weight rectangular anchor-offset

Mincong Lu 4 Nov 22, 2023