Crates.io | bevy_animation_graph |
lib.rs | bevy_animation_graph |
version | 0.5.0 |
source | src |
created_at | 2023-12-03 14:05:49.856151 |
updated_at | 2024-07-21 17:17:32.073313 |
description | Animation graph library for the Bevy game engine |
homepage | |
repository | https://github.com/mbrea-c/bevy_animation_graph |
max_upload_size | |
id | 1056915 |
size | 315,025 |
Animation graphs are an essential tool for managing the complexity present in the animation pipelines for modern 3D games. When your game has tens of animations with complex blends and transitions, or you want to generate your animations procedurally from very few keyframes, simple animation clip playback is not enough.
This crate works as a replacement to most of bevy_animation
, and aims to
provide a complete animation system and development workflow including
animation graphs, animation state machines (i.e. animation controllers)
and a graphical editor to create your animation graphs and state machines.
NOTE: This project is separate from the animation graphs introduced in bevy_animation
in version 0.14.
Being worked on:
Wishlist:
bevy_xpbd
, possibly rapier later):
bevy_xpbd
, currently WIP)This project is divided in two crates:
bevy_animation_graph is the library part of this project. This should be added as a dependency to your project in order to use animation graphs. To install the latest published version from crates.io run
cargo add bevy_animation_graph
or manually add the latest version to your Cargo.toml
.
To install the latest git master, add the following to Cargo.toml
# ...
[dependencies]
# ...
bevy_animation_graph = { git = "https://github.com/mbrea-c/bevy_animation_graph.git" }
# ...
bevy_animation_graph_editor is the editor. You can install like you would install any other rust binary:
# for the latest crates.io version
cargo install bevy_animation_graph_editor
# for the latest master
cargo install --git https://github.com/mbrea-c/bevy_animation_graph bevy_animation_graph_editor
# for the version from a local workspace
cargo install --path <PATH_TO_WORKSPACE> bevy_animation_graph_editor
# use the --force flag to force reinstall
bevy |
bevy_animation_graph |
bevy_animation_graph_editor |
---|---|---|
0.14 | 0.5 | 0.5 |
0.13 | 0.4 | 0.4 |
0.13 | 0.3 | 0.3 |
0.12 | 0.2 | 0.2 |
The documentation in docs.rs contains an introduction of the library and editor and an explanation of a simple animation graph example. See also the video below for a demonstration of editor usage.
Examples are included in the examples directory.
NOTE: This video was taken with the last version of the crate. A lot has changed since then!
In YouTube:
If you run into a bug or want to discuss potential new features, feel free to post an issue, open a PR or reach out to me in Discord
(@mbreac in the Bevy discord, there's a crate-help post for bevy_animation_graph
there: link).
Depends.
It can already be useful for small-ish projects, but I cannot guarantee
API stability between different 0.x
versions (it is a big library, it is
relatively young and I don't have previous experience with animation programming,
so I'm still figuring out the best ways of doing things).
This means that it will likely be necessary to go into your animation graph
assets and manually migrate them between versions, at least until I find a
better way to handle migrations.
Additionally, there may will be bugs and other issues. I try to get them
fixed as they come up.
If it's a small feature (e.g. some additional vector or floating point arithmetic node) it's likely that I have just not got around to it. If you open an issue I will probably implement it quickly. PRs are also welcome.
For larger features, it's better to start by opening an issue for discussion or pinging me in the Bevy discord.
Many thanks to Bobby Anguelov for his lectures on animation programming.