使用摄像机组件

在这份操作指南中,我们要了解如何将 Camera 组件添加到 Blueprint,从而为您关卡中的可玩人物或非可玩人物创建第三人称视角。在本次教程结束时,您将完整体验向人物蓝图添加摄像机组件的过程,并能够切换两个不同的人物视角。

在这个示例中,我们将使用 Blueprint Third Person Template 项目并包含 Starter Content

  1. 打开您的项目,选择关卡中的人物,然后按 Delete 将它移除。

    Camera1.png

    这是该模板附带的默认人物蓝图。请注意,它已经附加了一个 Camera 组件,而且您可以看到一个预览窗口,其中呈现了使用该人物时所用的视角。我们将以一个新的可玩人物类型为基础,从零开始重新建立这个设置。

  2. Content Browser 中,单击 Add New 按钮,然后从菜单中选择 蓝图类

    Camera2.png

  3. Pick Parent Class 窗口中,选择 Character,然后将蓝图命名为 MyCharacter

    Camera3.png

    在选择新蓝图的保存位置和名称后,蓝图编辑器界面 将自动打开。

  4. Components 窗口中选择 CapsuleComponent,然后在 Details 面板中,将 Capsule Half Height 改为 64

    Camera4.png

    胶囊组件 用于为人物提供碰撞检测

  5. Components 窗口中单击 Add Component 按钮,然后搜索并添加 Static Mesh 组件。

    Camera5.png

  6. Static MeshDetails 面板中,将其 Z 值设置为 -60,并将 Shape_NarrowCapsule 指定为静态网格。

    Camera6.png

    通过调整胶囊所在位置的 Z 值,您会看到静态网格下落到我们的 CapsuleComponent 内部。

  7. Components 窗口中单击 Add Component 按钮,然后搜索并添加 Camera 组件。

    Camera7.png

    这个摄像机将被绑定到该人物,从而为我们提供第三人称视角。这个示例的重点是可玩人物,您可以添加一个摄像机组件到任意蓝图,例如,创建一个安全摄像机为玩家提供一个窥视视角。

  8. CameraDetails 面板中,将其 X 位置设置为 -120,并将 Z 设置为 20

    Camera8.png

    我们使用这些值将摄像机定位在胶囊后方,但您也可以根据自己的观察来调整位置。

  9. 再次单击 Add Component 按钮,然后搜索并添加一个 Arrow 组件。

    Camera9.png

    我们不仅要让该人物使用第三人称视角,还要让玩家通过一个按钮将摄像机移动到一个过肩观察点。我们将使用这个箭头组件告诉摄像机在按钮被按下或释放时向哪里移动。

  10. Arrow 组件的 Details 面板中,将其位置设置为与 Step 8 相同。

    Camera10.png

    这是一个对默认摄像机位置的引用,我们希望在按钮松开时返回该位置。

  11. 单击 Add Component 按钮并添加另一个 Arrow 组件,然后按以下方式设置其 Location

    Camera11.png

    我们将 X 设为 -40,将 Y 设为 40 以产生出以下示例。

    Camera11b.png

    您可以随意调整箭头组件的位置。

  12. 单击 Event Graph 选项卡,在图表内 Right-click,然后搜索并添加一个 Right Mouse Button 事件。

    Camera12.png

    事件图表 将提供移动摄像机所用的脚本化功能。

  13. My Blueprint 窗口中,按住 CtrlLeft-click,将 Camera 组件拖入图表。

    Camera12.png

    Camera13.png

    这样可以让我们设置属性或影响摄像机组件,因为我们在前面对它做了引用。

  14. My Blueprint 窗口中,Ctrl-Left-click 并拖入所有 Arrow 组件。

  15. 在图表中 Left-click 并拖出 Camera 节点的外针,然后搜索并添加一个 SetRelativeLocation 节点。

    Camera14.png

    这样可以让我们将摄像机移到所需位置。

  16. 拖出 Arrow 2 并搜索和添加 Get Relative Location 节点,然后按以下方式连接节点。

    Camera15.png

    在按下 Right Mouse Button 时,我们为摄像机 Set Relative Location,设置值即为 Arrow 2 组件的 Relative Location(也就是我们的过肩摄像机位置)。 接下来,我们需要在鼠标右键释放时将摄像机设置回默认位置(即箭头 1 的位置)。

  17. 复制/粘贴 SetRelativeLocation 并按上面的方式对 Arrow 1 重复之前的步骤。

    Camera16.png

    我们的脚本已经完成,现在,我们可以在鼠标右键被按下/释放时切换两个摄像机位置。

  18. 单击工具栏上的 Compile,然后 Save 并关闭蓝图

    Camera17.png

    我们的人物已经设置完成,但我们仍然需要告诉项目:我们创建的这个人物应当是游戏运行时所用的默认人物。这可以通过关卡世界设置 来实现, 即更改该模板所用的游戏模式 中的设置。

  19. 在主关卡编辑器窗口中,单击工具栏上的 Settings 按钮并选择 World Settings

    Camera18.png

  20. World Settings 窗口的 Selected GameMode 中,单击 Default Pawn Class 并将其改为 MyCharacter

    Camera19.png

  21. 在主工具栏中,单击 Play 按钮在编辑器中运行程序。

最终结果

现在,当您在编辑器中运行程序时,您可以移动我们指定的 Camera 组件来切换两个不同的摄像机位置。我们在上述视频中的人物还具有移动能力, 我们已经从 ThirdPersonCharacter 蓝图(位于 Content/ThirdPersonBP/Blueprints 文件夹)获取了相关脚本并将其复制到了我们的 MyCharacter 蓝图。

如果您想增加移动功能,可以将以下脚本从 ThirdPersonCharacter 复制到您的 MyCharacter 蓝图

上述脚本可以让人物移动、跳跃并控制摄像机的视角。

在添加 Camera 组件后,您通常还要包含一个弹簧臂 组件与您的摄像机组合。这有助于避免在摄像机进入狭窄空间,或是人物与摄像机之间存在移动对象时出现摄像机受阻的情况。