SuperAPI AI 工具集

godot-animation-tree-mastery

设计与创作

查看项目

更新于 10-15 21:33

技能介绍

用途:为 Godot 的 AnimationTree 提供专家级动画混合与状态机实践,适合构建带移动混合和状态管理的复杂角色动画系统,例如运动、战斗、瞄准分层等场景。

主要能力:涵盖 AnimationNodeStateMachine 的状态切换与嵌套子状态、BlendSpace1D/2D 的速度与方向混合、BlendTree 的分层混合(Add2/Blend2/OneShot)、root motion、过渡条件、advance 表达式等。附带多份 GDScript 脚本,分别处理参数写入保护、travel 调用、嵌套状态机、骨骼 IK 注视、受击一次性动画、运行时时间缩放、过渡遮罩、BlendTree 逻辑混合、root motion 同步、Sync 分组、运行时调试和动画事件分发等。

使用方式:先在 AnimationTree 编辑器中搭建图形,再用脚本驱动。AnimationTree 通过 anim_player 控制 AnimationPlayer,参数路径使用相对写法如 "parameters/...",需在 _ready 中设置 active 为 true。示例: @onready var anim_tree: AnimationTree = $AnimationTree @onready var playback: AnimationNodeStateMachinePlayback = anim_tree.get("parameters/StateMachine/playback")

func _ready() -> void: anim_tree.active = true

限制与注意:使用 AnimationTree 时不要直接调用 AnimationPlayer 的 play(),应使用 transition_request 或 travel()。AnimationTree 默认不激活。交互状态不应开启 auto_advance。仅混合速度用 BlendSpace1D,双向状态用 Blend2,BlendSpace2D 专用于 X+Y 方向输入。避免每帧无判断地写入参数与过深的嵌套 BlendTree。不同长度动画不宜使用 Sync 分组,长过场不宜依赖 auto_advance,可用 Method Tracks 发送状态完成信号。未在资料中提供的内容暂未提供。