3 - 实现瞄准偏移

在这步中,我们将把瞄准偏移添加到动画蓝图,并将其和我们现有的动画图表衔接起来。

步骤

  1. Content/AnimStarterPack 文件夹中打开 UE4ASP_HeroTPP_AnimBlueprint,然后 双击 MyBlueprint 面板中的 AnimGraph

    step3_01.png

  2. Asset Browser 标签拖入瞄准偏移资源。

    step3_02.png

  3. 将偏移资源进行如下连接,在 YawPitch 引脚上 点击右键,选择 Promote to Variable,然后将其命名为 Aim YawAim Pitch

    step3_02.png

    这两个变量将由使用鼠标进行的角色瞄准方向填充,将驱动瞄准偏移中的动作。

  4. MyBlueprint 面板中,跳至 EventGraph

    step3_04.png

  5. EventGraph 中,找到脚本 Movement 部分中的 Sequence 节点。

    step3_05.png

    点击 Sequence 节点上的 Add pin 按钮。

    step3_05b.png

  6. MyBlueprint 面板中按住 Alt 并拖入 Aim YawAim Pitch,然后连接至 Sequence 节点。

    step3_06.png

  7. Cast To Ue4ASP_Character 节点连出引线,添加 Get Control RotationGet Actor Rotation 节点。

    step3_07.png

  8. Get Control Rotation 节点连出引线,添加一个 Delta(Rotator) 节点。

    step3_08.png

  9. Get Actor Rotation 连接到 Delta(Rotator) B Pin,然后从 Return Value 连出引线,添加一个 RInterp To 节点(并交换从 Current 到 Target 的连接)。

    step3_09.png

    可按住 Ctrl 并在 Current 引脚上 点击左键,将其连接拖至 Target 引脚。

  10. RInterp To 节点的 Current 引脚连出引线并选择 Make Rotator

    step3_10.png

  11. MyBlueprint 面板中长按 Ctrl 拖入 Aim PitchAim Yaw 变量,并将它们连接到 Make Rotator 节点的 PitchYaw

    step3_11.png

  12. Movement 脚本的开头找到 Event Blueprint Update Animation 节点并将 Delta Time X 提升为一个名为 Time 的变量,并进行如下连接。

    step3_12.png

  13. 返回到 RInterp To 节点上,连接新的 Time 变量并将 Interp Speed 设为 15

    step3_13.png

    我们将使用角色的旋转和玩家输入的旋转创建一个新旋转体,限制角色的方向旋转量。

  14. RInterp To 节点连出引线,添加一个 Break RotatorPitchYawClamp Angle,最小/最大角度相应设为 -9090

    step3_14.png

  15. Clamp AnglePitch 连接到 Aim Pitch,从 Yaw 连接到 Aim Yaw

    step3_15.png

    驱动瞄准偏移的 Aim Yaw 和 Aim Pitch 数值将把角色的旋转、玩家当前的控制器旋转考虑在内,同时锁定(防止角色在某个方向上过度旋转)。 如果不锁定角度,角色完成360转身面向反方向后腿部还会朝向前方。出现这样的情况就比较尴尬了。

我们的设置即将完成。下一步中我们将把所有内容连接起来,测试角色的瞄准能力。