5.动画蓝图 - 闲置和行走状态

在本步中,我们将在动画蓝图中为人物创建闲置和行走状态的逻辑。

Windows
MacOS
Linux

在本节中,我们将设置基于玩家在游戏中所采取行动决定播放什么动画的 Animation Blueprint。然后,我们将设置 State Machine,并创建 IdleWalk 状态,并且设置各状态间的过渡。

有关动画蓝图的更多信息,请参见 动画蓝图 文档。

以下步骤将告诉你如何设置动画蓝图:

  1. 找到并打开你的 MyAnimationBlueprint 资源。

  2. MyBlueprint 窗口中创建4个 Bool 变量(IsJumpingIsCrouchingIsJoggingIsProne)。

  3. 创建2个 Float 变量(SpeedDirection)。

    AnimBP_1.png

  4. MyBlueprint 窗口中 Double-click EventGraph ,以打开 Event Graph 选项卡。

  5. Event Graph 上重建以下设置,然后点击 Compile 按钮。

    单击图像可查看全图。

    在以上图形中,我们将获取玩家人物的方向和速度,并将其分配给将用在动画蓝图内的变量。我们也将从 MyCharacter 蓝图获(通过拖开 Try Get Pawn Owner 节点和人物蓝图的 Casting)取响应玩家所采取行动的变量。然后将这些变量传给动画蓝图内决定何时在动画状态间过渡的变量。

  6. 点击 Anim Graph 选项卡,在图形中 Right-click ,然后搜索并添加新 State Machine

    AnimBP_AnimGraph2.png

  7. 赋予状态机名称,然后将其与 Final Animation Pose 节点连接。

    AnimBP_AnimGraph3.png

  8. Double-click 状态机来打开它。

  9. Asset Browser 窗口中搜索 Idle,并将 Idle_Rifle_Hip 资源拖入图形。

    AnimBP_AnimGraph4.png

  10. Entry 节点与 Idle_Rifle_Hip 节点连接,然后点击 Compile

    AnimBP_AnimGraph5.png

    点击编译后,你应该能在预览窗口中看到人物进入闲置姿势。

  11. Asset Browser 中搜索 Walk_BS,并将其拖入图形。

    AnimBP_Walk1.png

  12. Double-click Walk_BS,然后从 MyBlueprint 选项卡按住 Control,并拖入 SpeedDirection 变量。

    AnimBP_Walk2.png

    连接如上所示。在这里,我们将提供带有来自人物的值的混合空间。

  13. 关闭 Walk_BS 选项卡,然后在状态机图形上创建从 Idle_Rifle_HipWalk_BSTransition

    AnimBP_Walk3.png

  14. 创建从 Walk_BSIdle_Rifle_HipTransition,然后 Double-clickIdle_Rifle_HipWalk_BSTransition Rule

    AnimBP_Walk4.png

    Transition Rule 决定状态机何时能在动画状态间移动。

  15. Transition Rule 内重建如下所示图形。

    AnimBP_Walk5.png

    我们将在以上脚本中检查,以确保玩家人物目前未在空中(无论在下降或跳跃),并且其当前速度大于 160,如果是这样,我们将允许从闲置到行走的过渡发生。

  16. 返回状态机图形,并打开从 Walk_BSIdle_Rifle_HipTransition Rule

  17. Transition Rule 内重建如下所示图形。

    AnimBP_Walk6.png

    这里,如果人物的速度小于160,我们将允许过渡发生。

  18. CompileSave 动画蓝图。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback