SuperAPI AI 工具集

bevy-animation

设计与创作

查看项目

更新于 10-15 17:33

技能介绍

用途:在 Bevy 0.19 中加载并播放 glTF 动画剪辑,构建混合图并触发游戏事件。

主要能力:AnimationPlayer + AnimationGraphHandle 播放角色剪辑;用 AnimationTransitions::play(player, node, Duration) 实现 idle/walk/run 交叉淡入淡出;用代码构建 AnimationGraph(混合节点、加性节点、权重、AnimationMask);用 #[derive(AnimationEvent)] + clip.add_event_to_target(...) + On<MyEvent> 观察者从剪辑时间轴触发脚步、碰撞盒、特效事件;用 EasingCurve + EaseFunction 或 CubicSegment::new_bezier_easing 逐帧采样曲线做无 AnimationClip 的程序化补间;按 Bevy 原语归类动画十二原则(缓动与时间、Transform 关键帧、图层遮罩、上游创作)。

使用方式:gltf_animation 是 bevy = "0.19" 默认特性;动画系统在 PostUpdate 中链式运行于 TransformSystems::Propagate 之前,写 Transform 的程序化系统应放在 Update 或显式排序。animated_field! 与 AnimatableCurve 需从 bevy::animation 显式导入。

限制与注意:AnimationTarget { id, player } 已拆分,骨骼实体使用 AnimationTargetId(Uuid) 与 AnimatedBy(Entity);0.19 更改了 AnimationTargetId 算法,0.18 持久化 ID 需重算;AnimationTransitions::play_with_transition 不存在;On<AnimationEvent> 非 EntityEvent 观察者,目标在 trigger.trigger().target;骨骼需有 Name 才能用 from_name 解析;AnimationMask 位为 1 表示该节点不驱动该组。核心不含 IK、粒子特效,glTF 加载器未实现 KHR_animation_pointer。其余细节暂未提供。