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

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

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

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

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

  2. 在**MyBlueprint**窗口中创建4个**Bool**变量(IsJumpingIsCrouchingIsJogging**和**IsProne)。

  3. 创建2个**Float**变量(Speed**和**Direction)。

    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**,并拖入**Speed**和**Direction**变量。

    AnimBP_Walk2.png

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

  13. 关闭**Walk_BS**选项卡,然后在状态机图形上创建从**Idle_Rifle_Hip**到**Walk_BS**的**Transition**。

    AnimBP_Walk3.png

  14. 创建从**Walk_BS**到**Idle_Rifle_Hip**的**Transition,然后**Double-click**从**Idle_Rifle_Hip**到**Walk_BS**的**Transition Rule

    AnimBP_Walk4.png

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

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

    AnimBP_Walk5.png

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

  16. 返回状态机图形,并打开从**Walk_BS**到**Idle_Rifle_Hip**的**Transition Rule**。

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

    AnimBP_Walk6.png

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

  18. **Compile**并**Save**动画蓝图