#animation #action #sprite #bevy #atlas

bevy_action_animation

基于动作的动画系统

1 个不稳定版本

0.1.0 2023年4月8日

#2167 in 游戏开发

MIT/Apache

36KB
293

bevy_action_animation

Bevy 的基于动作的动画系统。

简介

此插件为 Bevy 游戏引擎 的用户提供了一个基于动作/触发器的动画系统。这种动画系统通过提供必要的工具来解耦动画逻辑和游戏逻辑,为将动画添加到游戏中提供了一个更可扩展的框架。

此插件基于 bevy_action

警告: 此插件仍处于测试状态。请在问题页面上报告错误!

工作原理

动作

基于 bevy_action,动画与用户定义的特定动作类型紧密配置,并在 AnimationPlugin 的内部系统读取到与其中定义的动画相对应的动作时触发。

动画队列

bevy_action_animation 是一个相当简单的插件。它通过使用 动画队列 提供基于动作的动画系统。

此队列 排队 动画,并在它们从队列中弹出时(后进先出)按顺序播放。

有两种动画播放模式: OnceRepeating

Once 模式将动画剪辑完整播放一次,并且不能被中断。

Repeating 模式无限循环播放,直到将另一个动画添加到动画队列中。这意味着如果添加了 Repeating 动画,然后在下一帧添加了另一个动画,原始的 Repeating 动画很可能只播放一帧就被取消并由下一个动画覆盖。

动画属性

bevy_action_animation 的另一个功能是能够给某些动画赋予某些属性。这些属性由插件本身硬编码定义,包括以下内容

  • FlipX(水平翻转精灵)
  • FlipY(垂直翻转精灵)
  • Trigger(Action)(完成时触发动作)[1]

备注

  1. Once 动画将在完全完成时触发 Trigger 属性的动作。 Repeating 动画将在取消时触发属性的动作。

复制这些属性是可能的,但对于某些属性可能没有影响

  • FlipX - 无影响
  • FlipY - 无影响
  • 触发器 - 添加另一个触发器

动画定义文件

动画在 RON 文件中定义。

注意:未来将支持自定义格式。

RON 文件格式结构的示例可以在 assets 目录中找到。

示例

请参阅 examples 目录。

未来工作

  • 更好的文档
  • 支持自定义格式
  • 将动画文件与动画系统解耦
  • 迁移离开 rand 用于 RNG(一旦 Bevy 提供了 RNG API)
  • 基准测试?

依赖关系

~38–73MB
~1M SLoC