使用弹簧臂组件

您可以使用您自己的人物来完成本次教程,但必须为它分配一个 Camera 组件。如果您没有自己的人物,我们建议您先完成 使用摄像机组件 教程以创建基本人物用于本次指南。

在这份操作指南中,我们要添加一个 Spring Arm 组件并使其作为一个 Camera 组件的父对象,以便使我们的摄像机能根据游戏中的情况来进行外扩/内收。 通常情况下,当您为人物添加一个摄像机组件用于创建第三人称视角时,您还会包含一个弹簧臂来自动控制摄像机在受到关卡内几何体或其他对象阻碍时的应对方式。

springArm1.png

尽管这可能无法消除摄像机在关卡中穿透对象的情况(取决于您的弹簧臂设置),但却能帮助减少这种情况的发生,因为摄像机会在受阻时自动移动位置,而后在不受阻碍时返回其默认位置。

  1. 继续之前的 使用摄像机组件 操作指南,打开您的 Character Blueprint

  2. Components 窗口中,单击 Add Component 按钮,然后选择 Spring Arm 组件。

    Spring1.png

  3. Components 窗口内,将您的 Camera 组件拖到 Spring Arm 组件上,以便将其附加到弹簧臂。

    Spring2.png

  4. 有多项设置可与 Spring Arm 配合使用(请见下文)。

    Spring4.png

    设置项 说明
    Sockets 可用于将弹簧臂关联到骨骼网格上的某个骨骼或是某个插槽(Socket),以此作为弹簧臂的父对象。
    Camera 如果不存在碰撞,您可以在此设置弹簧臂的长度,还可以设置偏移量。
    Camera Collision 设置是否检查碰撞,同时定义检查碰撞时所用的查询探针的大小。
    Camera Settings 是否从父对象或 Use Pawn Control Rotation 中继承 Pitch、Yaw 或 Roll 值。
    Lag 用于设置摄像机是否滞留在目标位置后面,还包含与滞留有关的设置。
  5. 我们将 Target Arm Length 设置为 100Enabled Camera lag

    spring3.png

    这样能得到比默认设置更短的长度,同时在摄像机移动时让它稍微滞后。

  6. 单击 CompilePlay,在编辑器中运行程序。

最终结果

在移动人物时,您会注意到摄像机会稍微滞后于人物移动。另外,在我们靠近一面墙并旋转摄像机时,它会尝试重新定位并与之接近。如果不存在阻挡,它将回到我们在设置中指定的默认长度。