山高月小,水落石出。

Godot Animation介绍

Godot 的动画系统以简洁但极具深度著称。理解它的关键在于建立一个清晰的层次观:Tween、AnimationPlayer 和 AnimationTree 三者并非替代关系,而是分别针对不同场景、逐级递进的工具。 🗺️ 先看全景:你该在什么时候用什么? 社区里一条非常实用的“黄金法则”是:从 AnimationPlayer 开始;当你需要动画之间的混合、过渡或分层时,再引入 AnimationTree。 工具 最适合的场景 关键特征 Tween 代码驱动的一次性短动画:按钮悬停、屏幕震动、UI 淡入、伤害闪烁 纯代码创建,运行一次后自动释放 AnimationPlayer 需要在编辑器中“编排”的动画:精灵帧序列、复杂运动、过场动画、UI 过渡 可视化时间轴,可复用,能驱动几乎任何属性 AnimationTree 需要状态管理或混合的角色动画:idle→walk→run、8 方向移动、上下半身分层 包裹 AnimationPlayer,用状态机或混合树来调度播放 你的学习路径可以按照 Tween → AnimationPlayer → AnimationTree 的顺序推进,下面逐层展开。 🌱 第一层:Tween —— 代码里的“一次性动效” Tween 是三者中最轻量的。它不活在场景树里,而是由代码通过 create_tween() 创建,专注于将某个属性从当前值平滑插值到目标值。 1 2 3 4 5 # 让节点在 1 秒内移动到 (500, 300) var tween = create_tween() tween.tween_property(self, "position", Vector2(500, 300), 1.0) .set_ease(Tween.EASE_OUT) .set_trans(Tween.TRANS_CUBIC) 核心心智模型:Tween 是“即用即走”的。如果只是一个按钮弹一下、一个面板滑进来,用它最直接,不需要在场景里挂节点,也不需要打开动画面板。 ✂️ 第二层:AnimationPlayer —— 你的万能动画剪辑台 AnimationPlayer 是整个动画系统的数据基础。它本身是一个 Node,内部可以存放多条动画片段,每条动画由若干轨道组成,轨道上放置关键帧。 关键概念:轨道与关键帧 一条轨道绑定到“某个节点的某个属性”(例如 Sprite2D:position)。关键帧记录该属性在某一时刻的值;两个关键帧之间,引擎会自动插值,让属性平滑变化。 ...

November 4, 2026 · 2 min · zwdart