Crate bevy_trickfilm
source ·Expand description
§bevy_trickfilm
bevy | bevy_trickfilm |
---|---|
main | main |
0.14 | 0.7.0, 0.8.0 |
0.13 | 0.6.0 |
0.12 | 0.4.0, 0.5.0 |
0.11 | 0.3.0 |
0.10 | 0.2.0 |
0.9 | 0.1.0 |
§What is bevy_trickfilm?
Simple plugin to load spritesheet animations from manifest files written in ron. The animations are not directly tied to a certain sprite sheet. You can combine this with plugins that add the ability to load a texture atlas from a manifest file. For example: bevy_titan or bevy_heterogeneous_texture_atlas_loader.
§Quickstart
# In your Cargo.toml
bevy_trickfilm = "0.8"
§animation_clip.trickfilm.ron
//! A basic example of a trickfilm ron file.
{
"idle": (
keyframes: KeyframesRange((start: 0, end: 4)),
duration: 1.0,
),
"run": (
keyframes: KeyframesRange((start: 4, end: 10)),
duration: 0.6,
),
"jump": (
keyframes: KeyframesVec([10,11,12]),
keyframe_timestamps: Some([0.0. 1.0, 3.0]),
duration: 0.4,
),
}
§main.rs
//! A basic example of how to load an AnimationClip2D asset from a trickfilm file
//! and play the animation clip.
use bevy::prelude::*;
use bevy_trickfilm::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(Animation2DPlugin)
.add_systems(Startup, (setup, load_texture_atlas).chain())
.add_systems(Update, play_animation_once_loaded)
.run();
}
fn setup() {
/* Setup camera and other stuff */
}
fn load_texture_atlas(mut commands: Commands) {
let texture_handle = /* Create your TextureAtlas and retrieve a handle to it */;
let layout_handle = /* Create your TextureAtlas and retrieve a handle to it */;
commands
.spawn(SpriteBundle {
texture: texture_handle,
..Default::default()
})
.insert(TextureAtlas {
layout: layout_handle,
..Default::default()
})
.insert(AnimationPlayer2D::default());
}
// Once the scene is loaded, start the animation
fn play_animation_once_loaded(
asset_server: Res<AssetServer>
mut players: Query<&mut AnimationPlayer2D, Added<AnimationPlayer2D>>,
) {
for mut player in &mut players {
player.start(asset_server.load("animation_clip.trickfilm.ron#idle")).repeat();
}
}
§Documentation
§Future Work
- Not sure
§License
bevy_trickfilm is free, open source and permissively licensed! Except where noted (below and/or in individual files), all code in this repository is dual-licensed under either:
- MIT License (LICENSE-MIT or http://opensource.org/licenses/MIT)
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
at your option. This means you can select the license you prefer!
Some of the code was adapted from other sources. The assets included in this repository fall under different open licenses. See CREDITS.md for the details of the origin of the adapted code and licenses of those files.
§Your contributions
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Modules§
- This module handles playing animations from an ‘AnimationClip2D’ asset using the ‘AnimationPlayer2D’ component.
- This module defines all assets for 2D Animations. This crate allows you to directly load an
AnimationClip2DSet
and/orAnimationClip2D
from a manifest file. Assets with the ‘trickfilm’ extension can be loaded just like any other asset via theAssetServer
and will yield anAnimationClip2DSet
Handle
(or anAnimationClip2D
Handle
directly via labeled assets). use bevy_trickfilm::prelude::*;
to import common components and plugins.
Structs§
- Adds support for 2d animation loading and playing.