9.动画蓝图 - 俯卧状态

在这个最后一节中,我们通过添加**Prone**状态以及到/从它的过渡,完成**State Machine**。

  1. 在状态机图形中,从**Asset Browser**拖入**Stand_To_Prone**动画。

    AnimBP_StandToProne1.png

  2. 创建从**Idle_Rifle_Hip**到**Stand_To_Prone**的**Transition,然后单击**Transition Rule

    AnimBP_StandToProne2.png

  3. 打开从**Idle_Rifle_Hip**到**Stand_To_Prone**的**Transition Rule**,并重建以下图形。

    AnimBP_StandToProne3.png

  4. 返回状态机图形,然后从**Asset Browser**拖入**Prone_Idle**动画。

    AnimBP_ProneIdle1.png

  5. 创建从**Stand_To_Prone**到**Prone_Idle**的**Transition**。

  6. 从**Asset Browser**拖入**Prone_To_Stand**动画,并创建从**Prone_Idle**到**Prone_To_Stand**的**Transition**。

  7. 创建从**Prone_To_Stand**到**Idle_Rifle_Hip**的**Transition**。

  8. 单击从**Stand_To_Prone**到**Prone_Idle**的**Transition Rule**。

    AnimBP_ProneIdle2.png

  9. 在**Transition Rule**的**Details**面板中,将**BlendSetting**下的**Duration**设置为**0.0**。

    AnimBP_StandToProne1b.png

  10. 打开从**Stand_To_Prone**到**Prone_Idle**的**Transition Rule**。

  11. 在**Transition Rule**内重建以下图形。

    AnimBP_ProneIdle3.png

    我们将检查俯卧是否为_true_,以及在进入闲置俯卧状态前,进入俯卧的动画是否已结束。

  12. 返回状态机图形,并打开从**Prone_Idle**到**Prone_To_Stand**的**Transition Rule**。

    AnimBP_ProneIdle4.png

  13. 在**Transition Rule**内重建以下图形。

    AnimBP_ProneIdle5.png

    如果俯卧不再为_true_,我们将开始返回站立姿势的序列。

  14. 点击从**Prone_To_Stand**到**Idle_Rifle_Hip**的**Transition Rule**。

    AnimBP_ProneToStand1.png

  15. 在**Transition Rule**的**Details**面板中,将**BlendSetting**下的**Duration**设置为**0.0**。

    AnimBP_ProneToStand1b.png

  16. 打开从**Prone_To_Stand**到**Idle_Rifle_Hip**的**Transition Rule**,并创建以下图形。

    AnimBP_ProneToStand2.png

  17. 你的全状态机图形应类似于以下(节点的排列可能与你的设置不同)。

    单击图像可查看全图。

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

  19. 返回**Content Browser**和**AnimStarterPack**文件夹,然后打开**Prone_To_Stand**动画。

  20. 在**Anim Asset Details**窗口内,在**Animation**部分下将**Rate Scale**值设置为**1.4**。

    ProneToStand_Rate.png

    这将略微提升动画的播放速度,并改善从俯卧到站立时的外观。

  21. 单击**Content Browser**中的**Save**按钮和主工具栏,以保存你的资源和关卡。

  22. 单击**Play**按钮,以在编辑器中播放。

你现在应该拥有一个能以许多不同方式在你的等级内移动的完全有生气的人物。你应该能行走、蹲走、慢跑,跳跃(从静止或活动姿势),或从站立或慢跑状态俯卧。

还有几种可以添加到该状态机的其它状态(死亡、刷新等),或者你可以将现有动作换成自己的动作。不论是哪个情况,你现在应该了解如何在**Blueprints**中设置人物动作,用**Animation Blueprint**定义动画状态,以及如何通过**Blend Spaces**混合动画。