首页/ 第 14 章 · 3D 游戏进阶/ 第 240 课
LESSON 240 · 3D 游戏进阶

3D 动画进阶(混合树与层)

3D 动画进阶完成。下一课做角色换装系统。

⏱ 约 15 分钟📊 难度:入门🗂 第 14 章 · 3D 游戏进阶📍 第 240 / 300 课
课程进度
240 / 300

🎯本节学习目标

  • 深化混合树
  • 掌握动画层
  • 掌握高级事件

🚀课程导读

3D 角色动画进阶:全身混合、上下身分层、精确事件。把第 9 章能力推到高级。

全身混合树

移动“全方向”。

  1. 【2D 混合树】第 134 课基础:用两个参数做八方向移动:
  2. 参数 MoveX、MoveY(输入方向),混合 4-8 个方向动画。
  3. 【配置】Blend Type=2D Simple Directional;每个动画设 Position。
  4. 【代码】
  5. anim.SetFloat("MoveX", Input.GetAxisRaw("Horizontal"));
  6. anim.SetFloat("MoveY", Input.GetAxisRaw("Vertical"));
  7. 【转向】配合 Root Motion 或代码旋转。
  8. 【效果】任意方向移动动画自然过渡。
  9. 【进阶】Freeform 2D 更自由。
  10. 【注意】混合树里方向动画的“朝向”要一致(都朝前)。
  11. 【测试】八方向走路/跑步。
  12. 【完成】移动动画“丝滑”。
  13. 【技巧】角色“面向移动方向”时用单参数 1D 混合即可;“侧向跑”用 2D 混合。
  14. 【说明】大部分动作游戏:角色朝相机方向移动(面向移动方向),1D 够用。
💡
移动动画二选一:面向移动方向(1D 混合)or 全方向平移(2D 混合)。

动画层与高级事件

上层动作、下层移动。

  1. 【动画层】UpperBody 层(第 136 课):挥手/拿枪,Mask 上半身。
  2. 【权重控制】举枪时开权重:anim.SetLayerWeight(1, 1f);
  3. 【应用】边跑边举枪、边跑边挥手。
  4. 【高级事件】动画事件(第 135 课)进阶:
  5. 在复杂动画(攻击/翻滚)的关键帧触发:伤害判定、音效、粒子。
  6. 【精确时机】攻击“挥到一半”判定伤害:动画事件放对帧。
  7. 【参数曲线】用动画曲线驱动代码参数:
  8. 在 Animation 窗口添加曲线(如攻击力度 0-1),用 OnAnimatorMove 读取(进阶)。
  9. 【状态行为】StateMachineBehaviour(第 131 课):进入/退出状态时回调,替代一部分代码逻辑。
  10. 【实战】攻击状态:进入时锁定移动、事件帧判定伤害、退出恢复。
  11. 【注意】事件方法与参数名必须精确(第 135 课)。
  12. 【完成】动画控制“炉火纯青”。
  13. 【应用】把“边走边挥手”做出来。
3D 动画进阶 = 2D 混合(方向)+ 动画层(分身体)+ 事件(卡时机)。三件套全掌握。

常见错误与排查

错误:混合树方向乱?
原因:动画 Position 设错或朝向不一致
解决:确认各方向动画的 Position 对应正确方向;动画都朝前。

动手练习

课后小任务(做出来才算真的学会)

  • 做 2D 方向混合树
  • 做上下半身分层(边走边挥手)
  • 用动画事件卡攻击判定

本节小结

3D 动画进阶完成。下一课做角色换装系统。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课3D 环境交互(物理环境)