为什么我的第一个 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” 是驱动跳跃转换的有效方式。
如果你也在学习游戏开发,刚开始时最让你困惑的是什么?
下篇文章见 🎮🚀