3.完成人物设置

在本节中,我们将通过执行基于玩家输入控制人物的脚本来完成人物设置。

  1. 打开**MyCharacter**蓝图。

  2. 在图形中**Right-click**并添加**InputAxis MoveForward**和**InputAxis MoveRight**事件。

  3. 按住**Control**并拖入**DisableMovement**变量,使其与每个事件的**Branch**上的**Condition**连接。

  4. 按如下所示设置其余节点网络。

    单击图像可查看全图。

    在这里,我们将仅在**DisableMovement**为_False_时允许人物运动。我们这样做是为了在没有动画存在时防止人物运动,例如,我们有俯卧闲置动画,但我们没有俯卧爬行动画。为防止玩家俯卧时在地上滑动,我们将禁用动作。

  5. **Right-Click**并添加**InputAxis Turn**和**InputAxis LookUp**事件。

  6. 使 Turn 事件与**Add Controller Yaw Input**节点连接,并使 LookUp 事件与**Add Controller Pitch Input**节点连接。

    Character_MouseInput.png

  7. 在图形中**Right-click**并添加**InputAction Jog**事件。

  8. 在**MyBlueprint**窗口中点击**Show inherited variables**复选框和**Control**,并将**CharacterMovement**拖入图形。

    Character_JogA.png

  9. 按住**Alt**并拖入**Jog Pressed**变量,然后按住**Control**并拖入**Crouch Pressed**变量。

  10. 设置节点网络,确保在适当的**Set**节点勾选“按下慢跑”,如下所示:

    Character_JogB.png

    在这里,当按下慢跑时将**Jog Pressed**设置为_True_,然后启动**Character Movement**组件,将人物**Max Walk Speed**设置为**375** (you can adjust this value to increase/decrease Jog speed)。

    当放开慢跑时,我们将检查是否处于蹲伏状态,如果是则将行走速度设置为**160(我们的蹲走速度)。如果未处于蹲伏状态,我们将行走速度设置为**200(我们的默认行走速度)。这使我们能从蹲伏或行走状态进入慢跑,并适当地返回。

  11. 在图形中**Right-click**并添加**InputAction Crouch**事件。

  12. 按住**Alt**并拖入**Crouch Pressed**变量,然后按住**Control**并拖入**Jog Pressed**和**Prone Pressed**变量。

  13. 设置节点网络,确保在适当的**Set**节点勾选“按下蹲伏”,如下所示:

    单击图像可查看全图。

    对于蹲伏脚本,我们先检查目前是否处于俯卧状态,在这种情况下我们将不允许蹲伏(我们这样做的唯一原因是,我们没有从俯卧到蹲伏的动画,反之亦然,如果你有这些动画,你可能会允许玩家从蹲伏进入俯卧状态)。

    我们使用了**FlipFlop**节点作为蹲伏的切换键,而不需要持续按下蹲伏按钮(取决于你喜欢的方法这是可选的)​​。当首次按下时,我们将**Crouch Pressed**设置为_True_,并将**Max Walk Speed**设置为**160**。当第二次按下以便切换掉蹲伏时,我们检查是否在从蹲伏进入慢跑(如果是,我们将行走速度设置为**375**),如果不是,我们将行走速度设置回**200**。

  14. 在图形中**Right-click**并添加**InputAction Prone**事件。

  15. 按住**Alt**并拖入**Prone Pressed**和**DisableMovement**变量。

  16. 按住**Control**并拖入**Crouch Pressed**变量。

  17. 设置节点网络,确保在适当的**Set**节点勾选“按下俯卧”,如下所示:

    单击图像可查看全图。

    对于俯卧脚本,我们先检查目前是否处于蹲伏状态,如果是将不允许进入俯卧状态(正如前面提到的,因为我们没有过渡动画)。然后,我们再次用**FlipFlop**节点来切换俯卧状态。

    当首次按下时,我们将**Prone Pressed**和**DisableMovement**设置为_True,以便进入俯卧状态,并禁用人物的动作。当第二次按下时,我们将**Prone Pressed**设置为_false,以退出俯卧状态,然后我们在重新启用动作前添加一些延迟(设置为**1.4**),以防止玩家在动画播放返回站立状态时四处移动。

  18. 在图形中**Right-click**并添加**InputAction Jump**事件,然后从**MyBlueprint**窗口拖入**CharacterMovement**。

  19. 按住**Alt**并拖入**Jump Pressed**变量,然后**Control**拖入**DisableMovement**和**CrouchPressed**变量。

  20. 设置节点网络,确保在适当的**Set**节点勾选“按下跳跃”,如下所示:

    单击图像可查看全图。

    对于跳跃脚本,我们先检查是否处于俯卧或蹲伏状态。如果均不为_true_,我们接着用**CharacterMovement**组件来确定当前速度,如果它是大于 0 则意味着我们在移动。

    然后,我们通过将**JumpZVelocity**设置为**365(为移动人物)或在静止时设为**340,以基于人物是否在移动来设置人物可以跳跃多高。在这两种情况下,我们将**Jump Pressed**设置为_True,并在放开跳跃时将**Jump Pressed**设置为_False