3 - 实现瞄准偏移

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

Windows
MacOS
Linux
On this page

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

步骤

  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_03.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转身面向反方向后腿部还会朝向前方。出现这样的情况就比较尴尬了。

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

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback