13个版本 (8个重大变更)
0.9.1 | 2024年7月9日 |
---|---|
0.8.0 | 2024年2月24日 |
0.7.0 | 2023年11月5日 |
0.6.0 | 2023年7月29日 |
0.2.1 | 2022年11月14日 |
#139 in 游戏开发
每月93次下载
55KB
706 行
Bevy精灵动画
轻松管理复杂的2D精灵动画
快速入门
- 将
BanimatePluginGroup
添加到您的应用 - 加载一个或多个动画集(请参阅以下如何定义文件中的动画集)
- 使用
SpriteSheetBundle
生成一个实体并附加一个SpriteAnimationBundle
组件,提供一个指向动画集的Handle
代码示例已移至示例文件夹 - 克隆源代码并查看它们的作用!
动画类型
简单动画
待定:描述简单动画
- 一个简单的循环动画,包含一组帧和帧率,不需要或提供控制
精灵动画
待定:描述精灵动画
- 设置要播放的动画名称,播放动画。很简单。
- 使用
AnimationOverride
临时中断当前动画
方向动画
待定:描述方向动画
- 包括一个组件,用于根据其值更改正在播放的动画名称,表示方向
子动画
向实体添加 ChildAnimationBundle
将导致其实体状态与其 Parent
实体同步
动画集
动画集将名称映射到一系列帧和帧率。给定的动画在整个动画中有一个帧率,但不同的动画可以有不同的帧率(例如,“行走”动画可以每帧100ms播放,而“空闲”动画可以每帧250ms播放,但你不能在任一动画中设置单个帧的持续时间)。
一个 AnimationSet
可能包含许多动画,并且一个特定的 AnimationSet
很可能被附加到许多实体上。因此,动画使用 Asset
系统来避免传递相对较大的重复对象。提供了 JSON
和 TOML
数据类型的加载器,但默认只启用 JSON
。加载器不是必需的,因此如果希望使用其他方法创建 AnimationSet
资产,可以禁用它们。
使用 JSON 定义动画
启用 json_loader
功能后,您可以从具有 .anim.json
后缀的文件中加载一个动画集,如下所示
{
"idle": {
"frames": [
1,
2,
3
],
"frame_time": 250
},
"shoot_right": {
"frames": [
34,
34,
34,
35,
36
],
"frame_time": 100
}
}
使用 TOML 定义动画
启用 toml_loader
功能后,您可以从具有 .anim.toml
后缀的文件中加载一个动画集,如下所示
[idle]
frames = [1, 2, 3]
frame_time = 250
[shoot_right]
frames = [34, 34, 34, 35, 36]
frame_time = 100
兼容性
banimate 版本 | bevy 版本 | tilemap 版本 |
---|---|---|
0.9.0 | 0.14 | n/a |
0.8.0 | 0.13 | n/a |
0.7.0 | 0.12 | n/a |
0.6.0-rc.1 | 0.11 | 55c15bfa43c7a9e2adef6b70007e92d699377454 |
0.5.x | 0.10 | 0.10 |
0.5.x | 0.10 | 0.10 |
0.2.x, 0.3.x, 0.4.x | 0.9 | 0.9 |
0.1.x | 0.8 | 0.8 |
依赖项
约 35-72MB
~1.5M SLoC