6.动画蓝图 - 蹲伏状态

在本节中,我们继续研究**Animation Blueprint**和专注于**Crouch**状态的**State Machine**。

  1. 在状态机图形的**MyAnimationBlueprint**中,从**Asset Browser**拖入**Crouch_BS**混合空间。

  2. 创建从**Crouch_BS**到**Walk_BS**以及从**Walk_BS**回到**Crouch_BS**的**Transition**。

    AnimBP_Crouch2.png

  3. **Double-click****Crouch_BS**并拖入**Direction**和**Speed**变量,然后将其与混合空间连接。

    AnimBP_Crouch3.png

  4. 返回状态机图形,然后打开从**Walk_BS**到**Crouch_BS**的**Transition Rule**并重建以下图形。

    AnimBP_Crouch4.png

    在这里,当按下蹲伏且玩家的速度大于 0 时,我们让玩家进入蹲走状态。

  5. 返回状态机图形,然后打开从**Crouch_BS**到**Walk_BS**的**Transition Rule**并重建以下图形。

    AnimBP_Crouch5.png

    上面,我们在玩家不再蹲伏且速度大于 0 时使其返回行走状态。

  6. 返回状态机图形,然后在**Asset Browser**中拖入图形**Crouch_Idle_Rifle_Hip**动画。

    AnimBP_CrouchIdle1.png

  7. 创建从**Crouch_BS**到**Crouch_Idle_Rifle_Hip**以及从**Crouch_Idle_Rifle_Hip**回到**Crouch_BS**的**Transition**。

  8. 也创建从**Crouch_Idle_Rifle_Hip**到**Idle_Rifle_Hip**以及从**Idle_Rifle_Hip**回到**Crouch_Idle_Rifle_Hip**的**Transition**。

    AnimBP_CrouchIdle2.png

    在这里,我们提供从蹲走进入蹲伏闲置的过渡(以及从蹲伏闲置到蹲走)。我们也将设置从蹲伏闲置到站立闲置的过渡(以及从站立闲置到蹲伏闲置)。

    如果需要,你可以在图形上移动节点,以更好地了解过渡。

  9. 打开从**Idle_Rifle_Hip**到**Crouch_Idle_Rifle_Hip**的**Transition Rule**。

  10. 对于本次**Transition**,我们只要求**IsCrouch**为_True_。

    AnimBP_CrouchIdle3.png

  11. 返回状态机图形,然后打开从**Crouch_Idle_Rifle_Hip**到**Idle_Rifle_Hip**的**Transition Rule**。

  12. 对于本次**Transition**,我们只要求**IsCrouch**为_False_。

    AnimBP_CrouchIdle4.png

  13. 返回状态机图形,然后打开从**Crouch_BS**到**Crouch_Idle_Rifle_Hip**的**Transition Rule**。

    AnimBP_CrouchIdle5.png

  14. 在**Transition Rule**中重建以下图形。

    AnimBP_CrouchIdle6.png

    如果玩家处于蹲伏状态且其速度为 0,则他们将进入蹲伏闲置动画。

  15. 返回状态机图形,然后打开从**Crouch_Idle_Rifle_Hip**到**Crouch_BS**的**Transition Rule**。

    AnimBP_CrouchIdle7.png

  16. 在**Transition Rule**中重建以下图形。

    AnimBP_CrouchIdle8.png

    如果玩家按下蹲伏且其速度大于 0,则他们将进入蹲走混合空间。

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