动画
2026/4/14大约 7 分钟
最后同步日期:2026-04-15 | Godot 官方原文 — Animation
动画
动画就是"让静止的东西动起来"。在 Godot 中,动画相关的能力主要分为三大类:
- 属性动画:用 AnimationPlayer 预先录制好的动画(比如角色走路、UI 淡入淡出)
- 动画状态机(Animation State Machine):用 AnimationTree 做角色动作的自动切换(待机 -> 走路 -> 跑步 -> 攻击)
- 骨骼动画(Skeletal Animation):用 Skeleton2D/Skeleton3D 驱动带骨骼的角色模型
Tween 不是节点
除了上面三类之外,Godot 还有一种叫 Tween 的补间动画。Tween 是通过代码创建的对象,不是场景节点,不能在场景树中添加。它适合用代码实时创建简单的动画效果(比如按钮弹出、物品飞向背包)。由于不是节点,这里不单独列出。
节点继承关系图
下面这张图展示了动画相关节点之间的"家族关系"——箭头从父类指向子类,表示"谁派生出谁":
节点列表
动画播放与控制
| 节点 | 描述 | 使用频率 |
|---|---|---|
| AnimationMixer | 动画混合器基类——AnimationPlayer 和 AnimationTree 的共同父类 | ★ |
| AnimationPlayer | 属性动画播放器——录制和播放任何节点的属性变化 | ★★★ |
| AnimationTree | 动画状态机——让角色动作之间自动平滑切换 | ★★ |
骨骼系统(Skeleton)
| 节点 | 描述 | 使用频率 |
|---|---|---|
| Skeleton2D | 2D 骨骼系统——用于制作 2D 角色的骨骼动画 | ★★ |
| Skeleton3D | 3D 骨骼系统——用于 3D 模型的骨骼动画(通常从导入模型自动生成) | ★★ |
| BoneAttachment3D | 骨骼附着点——在骨骼的某个位置挂载武器、特效等 | ★ |
| SkeletonIK3D | 3D 逆向运动学——让骨骼链自动计算中间关节角度 | ★ |
IK 与骨骼修改器
| 节点 | 描述 | 使用频率 |
|---|---|---|
| SkeletonModifier3D | 骨骼修改器基类——所有 IK 和骨骼修改器的父类 | ★ |
| TwoBoneIK3D | 双骨骼 IK——最常用的 IK 方案,适合手脚着地 | ★★ |
| CCDIK3D | CCD 逆向运动学——多骨骼链 IK,适合触手、尾巴 | ★ |
| FABRIK3D | FABRIK 逆向运动学——更自然的 IK 算法 | ★ |
| SplineIK3D | 样条线 IK——让骨骼沿曲线排列 | ★ |
| XRBodyModifier3D | XR 身体追踪修改器——将身体追踪数据应用到骨骼 | ★ |
| XRHandModifier3D | XR 手部追踪修改器——将手部追踪数据应用到骨骼 | ★ |
| XRFaceModifier3D | XR 面部追踪修改器——将面部追踪数据应用到骨骼 | ★ |
节点选择指南
不知道该用哪个动画方案?跟着下面的流程图走一遍就知道了:
常见场景搭配
动画节点需要挂载到有外观的节点上才有意义。下面按具体场景逐一展示典型的节点搭配结构。
2D 帧动画角色
2D 横版游戏角色,用帧动画切换图片。AnimatedSprite2D 做帧动画 + CharacterBody2D 做移动。
3D 角色动作系统
3D 游戏角色有多种动作状态(待机/走/跑/跳/攻击),需要自动平滑切换。AnimationPlayer 录制动画 + AnimationTree 做状态机。
2D 骨骼动画
2D 角色用骨骼做动画(如龙骨/Spine 导入的角色)。Skeleton2D 管理骨骼 + AnimationPlayer 驱动骨骼。
3D 骨骼挂接武器
3D 角色手上拿武器,武器跟随手部骨骼移动。BoneAttachment3D 挂在骨骼上 + 武器 MeshInstance3D 作为子节点。
动画方案对比总结
| 特性 | AnimationPlayer | AnimationTree | Tween |
|---|---|---|---|
| 创建方式 | 场景节点 | 场景节点 | 代码创建 |
| 动画来源 | 编辑器录制 | 引用 AnimationPlayer 的动画 | 代码实时定义 |
| 状态管理 | 手动 Play() | 自动切换 | 无状态 |
| 过渡效果 | 无(直接切换) | 平滑过渡 | 自带缓动 |
| 复杂度 | 简单 | 中等 | 简单 |
| 典型用途 | UI 动画、简单角色动画 | 角色动作系统 | 一次性补间动画 |
