为什么我的第一个 Animation Blueprint 在 Unreal Engine 中不起作用

发布: (2026年1月11日 GMT+8 15:50)
3 min read
原文: Dev.to

Source: Dev.to

导入网格和动画

我首先为角色网格创建了一个文件夹,并在其中导入了骨骼网格。随后我添加了一个 Animations 文件夹并导入了以下动画资源:

  • Idle(待机)
  • Walk(行走)
  • Run(奔跑)
  • Jump(跳跃)

注意: 导入动画时必须选中正确的骨骼网格,否则动画无法正确绑定。

先导入网格,后导入动画

先将网格导入项目再导入动画资产,可确保已建立骨骼引用,防止动画数据不匹配。

创建动画蓝图

使用角色的骨骼网格,我创建了一个 Animation Blueprint。在蓝图内部,我添加了一个 State Machine 并将其连接到 Final Animation Pose 节点。

添加状态机

状态机包含三个主要状态:

  • Idle(待机)
  • Walk(行走)
  • Run(奔跑)

以及一个单独的 Jump(跳跃) 状态用于空中移动。

让我困惑的地方

状态之间的转换逻辑是最大的困惑来源。我不清楚 Unreal 在何时切换到 Jump 状态或返回 Idle。

检测下落

解决方案是使用以下节点链:

Try Get Pawn Owner → Get Movement Component → Is Falling

我将结果存入一个布尔变量,并在状态转换规则中引用该变量。这样跳跃逻辑就能按预期工作。

收获

  • Animation Blueprints 控制角色的移动和反应。
  • State machines 看起来可能很复杂,但只要定义好转换条件,底层逻辑就很直观。
  • 先导入网格,再导入动画,以避免骨骼不匹配。
  • 使用 Pawn 的移动组件检测 “Is Falling” 是驱动跳跃转换的有效方式。

如果你也在学习游戏开发,刚开始时最让你困惑的是什么?

下篇文章见 🎮🚀

Back to Blog

相关文章

阅读更多 »