3.设置混合现实项目

在上一个教程中设置了象棋应用项目。 本部分将逐步介绍如何设置此应用,来进行混合现实开发,这意味着要添加 AR 会话。 此任务将使用 ARSessionConfig 数据资产,其中包含有用的 AR 设置,如空间映射和遮挡。 可以在 Unreal 的文档中找到有关 ARSessionConfig 资产和 UARSessionConfig 类的更多详细信息。

目标

  • 使用 Unreal Engine 的 AR 设置
  • 使用 ARSessionConfig 数据资产
  • 设置 Pawn 和游戏模式

添加会话资产

Unreal 中的 AR 会话无法自行发生。 要使用会话,需要借助 ARSessionConfig 数据资产,这就是接下来的任务:

  1. 单击“内容浏览器”中的“添加新项 > 杂项 > 数据资产”。 请确保自己处于根 Content 文件夹级别。
    • 选择“ARSessionConfig”,单击“选择”,然后将资产命名为“ARSessionConfig”。

Create a data asset

  1. 双击“ARSessionConfig”将其打开,保留所有默认设置,点击“保存”。 返回到主窗口。

AR Session Config

完成此操作后,下一步是确保在关卡加载时 AR 会话会启动,而在关卡结束时 AR 会话会停止。 幸运的是,Unreal 具有叫做“关卡蓝图”的特殊蓝图,它用作关卡范围的全局事件图。 在关卡蓝图中连接 ARSessionConfig 资产,可确保游戏开始时 AR 会话将立即触发。

  1. 从编辑器工具栏中单击“蓝图 > 打开关卡蓝图”:

Open Level Blueprint

  1. 将执行节点(向左箭头图标)拖离“事件 BeginPlay”,随后放开,然后搜索“启动 AR 会话”节点并按 Enter
    • 单击“会话配置”下的“选择资产”下拉列表,然后选择“ARSessionConfig”资产。

Start AR Session

  1. 右键单击 EventGraph 中的任意位置,然后创建一个新的 Event EndPlay 节点。 拖动执行脚本,随后放开,然后搜索“停止 AR 会话”节点并按 Enter。 如果在关卡结束时 AR 会话仍在运行,那么在流式传输到头戴显示设备时,如果你重启应用,某些功能可能会停止工作。
    • 点击“编译”和保存”,然后返回到主窗口。

Stop AR Session

创建 Pawn

此时,项目仍需要一个玩家对象。 在 Unreal 中,Pawn 表示游戏中的用户,但在本例中它将代表 HoloLens 2 体验。

  1. 在 Content 文件夹中单击“添加新项 > 蓝图类”,展开底部的“所有类”部分。
    • 搜索“DefaultPawn”,单击“选择”,将其命名为“MRPawn”,然后双击资产打开它

Create a new Pawn inheriting from DefaultPawn

  1. 从“组件”面板中单击“添加组件”>“相机”,然后将其命名为“相机”。 确保“相机”组件是根 (CollisionComponent) 的直接子级。 这样,玩家相机就能随 HoloLens 2 设备一起移动。

注意

默认情况下,Pawn 具有网格和碰撞组件。 在大多数 Unreal 项目中,Pawn 都是可与其他组件碰撞的固体。 在混合现实中 Pawn 与用户相同,因此需要能够在不发生碰撞的情况下传递全息影像。

  1. 从“组件”面板中选择“CollisionComponent”,向下滚动到“详细信息”面板的“碰撞”部分。
    • 单击“碰撞预设”下拉列表,将值更改为“NoCollision”。
    • 对“MeshComponent”执行同样的操作

Adjust the Pawn's Collision Presets

  1. 编译并保存蓝图

从此处完成操作后,返回到主窗口。

创建游戏模式

混合现实设置的最后一个部分是游戏模式。 游戏模式决定着游戏或体验的诸多设置,其中包括要使用的默认 Pawn。

  1. 在“内容”文件夹中单击“添加新项”>“蓝图类”,然后选择“游戏模式基类”作为父类。 将其命名为“MRGameMode”并双击以打开

MRGameMode in the Content Browser

  1. 转到“详细信息”面板中的“类”部分,将“默认 Pawn 类”更改为“MRPawn”。
    • 点击“编译”和保存”,然后返回到主窗口。

Set the Default Pawn Class

  1. 选择“编辑”>“项目设置”,然后从左侧列表单击“地图和模式”。
    • 展开“默认模式”,将“默认游戏模式”更改为“MRGameMode”。
    • 展开“默认地图”,将“EditorStartupMap”和“GameDefaultMap”都设置为“主”。 当你关闭并重新打开编辑器或玩游戏时,现在将默认选择主地图。

Project Settings - Maps & Modes

针对混合现实全面设置此项目后,你可以继续学习下一个教程,开始将用户输入添加到场景中。

下一部分:4. 使场景具有交互性