3 - 实现瞄准偏移
在这步中,我们将把瞄准偏移添加到动画蓝图,并将其和我们现有的动画图表衔接起来。
步骤
在 Content/AnimStarterPack 文件夹中打开 UE4ASP_HeroTPP_AnimBlueprint,然后 双击 MyBlueprint 面板中的 AnimGraph。
从 Asset Browser 标签拖入瞄准偏移资源。
将偏移资源进行如下连接,在 Yaw 和 Pitch 引脚上 点击右键,选择 Promote to Variable,然后将其命名为 Aim Yaw 和 Aim Pitch。
这两个变量将由使用鼠标进行的角色瞄准方向填充,将驱动瞄准偏移中的动作。
在 MyBlueprint 面板中,跳至 EventGraph。
在 EventGraph 中,找到脚本 Movement 部分中的 Sequence 节点。
点击 Sequence 节点上的 Add pin 按钮。
在 MyBlueprint 面板中按住 Alt 并拖入 Aim Yaw 和 Aim Pitch,然后连接至 Sequence 节点。
从 Cast To Ue4ASP_Character 节点连出引线,添加 Get Control Rotation 和 Get Actor Rotation 节点。
从 Get Control Rotation 节点连出引线,添加一个 Delta(Rotator) 节点。
将 Get Actor Rotation 连接到 Delta(Rotator) B Pin,然后从 Return Value 连出引线,添加一个 RInterp To 节点(并交换从 Current 到 Target 的连接)。
可按住 Ctrl 并在 Current 引脚上 点击左键,将其连接拖至 Target 引脚。
从 RInterp To 节点的 Current 引脚连出引线并选择 Make Rotator。
在 MyBlueprint 面板中长按 Ctrl 拖入 Aim Pitch 和 Aim Yaw 变量,并将它们连接到 Make Rotator 节点的 Pitch 和 Yaw。
在 Movement 脚本的开头找到 Event Blueprint Update Animation 节点并将 Delta Time X 提升为一个名为 Time 的变量,并进行如下连接。
返回到 RInterp To 节点上,连接新的 Time 变量并将 Interp Speed 设为 15。
我们将使用角色的旋转和玩家输入的旋转创建一个新旋转体,限制角色的方向旋转量。
从 RInterp To 节点连出引线,添加一个 Break Rotator 和 Pitch 和 Yaw 的 Clamp Angle,最小/最大角度相应设为 -90 和 90。
将 Clamp Angle 从 Pitch 连接到 Aim Pitch,从 Yaw 连接到 Aim Yaw。
驱动瞄准偏移的 Aim Yaw 和 Aim Pitch 数值将把角色的旋转、玩家当前的控制器旋转考虑在内,同时锁定(防止角色在某个方向上过度旋转)。 如果不锁定角度,角色完成360转身面向反方向后腿部还会朝向前方。出现这样的情况就比较尴尬了。
我们的设置即将完成。下一步中我们将把所有内容连接起来,测试角色的瞄准能力。