1 个不稳定版本
0.1.0 | 2023年4月8日 |
---|
#2167 in 游戏开发
36KB
293 行
bevy_action_animation
Bevy 的基于动作的动画系统。
简介
此插件为 Bevy 游戏引擎 的用户提供了一个基于动作/触发器的动画系统。这种动画系统通过提供必要的工具来解耦动画逻辑和游戏逻辑,为将动画添加到游戏中提供了一个更可扩展的框架。
此插件基于 bevy_action。
警告: 此插件仍处于测试状态。请在问题页面上报告错误!
工作原理
动作
基于 bevy_action,动画与用户定义的特定动作类型紧密配置,并在 AnimationPlugin
的内部系统读取到与其中定义的动画相对应的动作时触发。
动画队列
bevy_action_animation
是一个相当简单的插件。它通过使用 动画队列 提供基于动作的动画系统。
此队列 排队 动画,并在它们从队列中弹出时(后进先出)按顺序播放。
有两种动画播放模式: Once
和 Repeating
。
Once
模式将动画剪辑完整播放一次,并且不能被中断。
Repeating
模式无限循环播放,直到将另一个动画添加到动画队列中。这意味着如果添加了 Repeating
动画,然后在下一帧添加了另一个动画,原始的 Repeating
动画很可能只播放一帧就被取消并由下一个动画覆盖。
动画属性
bevy_action_animation
的另一个功能是能够给某些动画赋予某些属性。这些属性由插件本身硬编码定义,包括以下内容
- FlipX(水平翻转精灵)
- FlipY(垂直翻转精灵)
- Trigger(Action)(完成时触发动作)[1]
备注
Once
动画将在完全完成时触发Trigger
属性的动作。Repeating
动画将在取消时触发属性的动作。
复制这些属性是可能的,但对于某些属性可能没有影响
- FlipX - 无影响
- FlipY - 无影响
- 触发器 - 添加另一个触发器
动画定义文件
动画在 RON 文件中定义。
注意:未来将支持自定义格式。
RON 文件格式结构的示例可以在 assets 目录中找到。
示例
请参阅 examples 目录。
未来工作
- 更好的文档
- 支持自定义格式
- 将动画文件与动画系统解耦
- 迁移离开
rand
用于 RNG(一旦 Bevy 提供了 RNG API) - 基准测试?
依赖关系
~38–73MB
~1M SLoC