3. Настройка проекта для смешанной реальности3. Setting up your project for mixed reality

В предыдущем разделе мы настроили проект приложения для игры в шахматы.In the previous tutorial, you spent time setting up the chess app project. В этом разделе мы настроем приложение для разработки в контексте смешанной реальности, то есть добавим в него сеанс дополненной реальности.This section is going to walk you through setting up the app for mixed reality development, which means adding an AR session. Для этого мы воспользуемся ресурсом данных ARSessionConfig, который содержит полезные параметры для настройки функций дополненной реальности, такие как пространственное сопоставление и загораживание.You'll be using an ARSessionConfig data asset for this task, which has useful AR settings like spatial mapping and occlusion. Дополнительные сведения см. в разделах, посвященных ARSessionConfig и UARSessionConfig, документации по Unreal.You can find more details about the ARSessionConfig asset and the UARSessionConfig class in Unreal's documentation.

ЗадачиObjectives

  • Работа с параметрами дополненной реальности Unreal Engine.Working with Unreal Engine's AR settings
  • Использование ресурса данных ARSessionConfig.Using an ARSessionConfig data asset
  • Настройка объекта Pawn и игрового режима.Setting up a Pawn and game mode

Добавление ресурса для сеанса.Adding the session asset

Сеансы дополненной реальности в Unreal не возникают сами по себе.AR sessions in Unreal don't happen by themselves. Для работы с сеансом требуется ресурс данных ARSessionConfig, который мы сейчас и добавим:To use a session, you need an ARSessionConfig data asset to work with, which is your next task:

  1. В обозревателе контента (Content Browser) выберите Add New > Miscellaneous > Data Asset (Добавить > Разное > Ресурс данных).Click Add New > Miscellaneous > Data Asset in the Content Browser. Выйдите на уровень корневой папки Content.Make sure you're at the root Content folder level.
    • Выберите ARSessionConfig, нажмите кнопку Select (Выбрать) и присвойте ресурсу имя ARSessionConfig.Select ARSessionConfig, click Select, and name the asset ARSessionConfig.

Создание ресурса данных

  1. Дважды щелкните ресурс ARSessionConfig, чтобы открыть его, оставьте параметры по умолчанию и нажмите кнопку Save (Сохранить).Double-click ARSessionConfig to open it, leave all default settings and hit Save. Вернитесь в главное окно.Return to the Main window.

Конфигурация сеанса дополненной реальности

Следующий шаг — настроить сеанс дополненной реальности таким образом, чтобы он запускался при загрузке уровня и останавливался при его завершении.With that done, your next step is to make sure the AR session starts and stops when the level loads and ends. К счастью, для этого в Unreal есть специальная схема Level Blueprint (Схема уровня), которая работает как глобальный граф событий, относящихся к уровню.Luckily, Unreal has a special blueprint called a Level Blueprint that acts as a level-wide global event graph. Если подключить ресурс ARSessionConfig на схеме Level Blueprint (Схема уровня), сеанс дополненной реальности будет гарантированно стартовать в момент начала игры.Connecting the ARSessionConfig asset in the Level Blueprint guarantees the AR session will fire right when the game starts playing.

  1. В панели инструментов редактора выберите Blueprints > Open Level Blueprint (Схемы > Открыть схему уровня):Click Blueprints > Open Level Blueprint from the editor toolbar:

Открытие схемы уровня

  1. Перетащите закрепление выполнения (указывающую вправо стрелку) из узла Event BeginPlay (Событие BeginPlay) и отпустите его, а затем введите Start AR Session (Начать сеанс дополненной реальности) для поиска и нажмите клавишу "ВВОД".Drag the execution node (left-facing arrow icon) off Event BeginPlay and release, then search for the Start AR Session node and hit enter.
    • В разделе Session Config (Параметры сеанса) щелкните стрелку раскрывающегося списка Select Asset (Выбор ресурса) и выберите ресурс ARSessionConfig.Click the Select Asset dropdown under Session Config and choose the ARSessionConfig asset.

Запуск сеанса дополненной реальности

  1. Щелкните правой кнопкой мыши в EventGraph и создайте новый узел Event EndPlay (Завершение воспроизведения события).Right-click anywhere in the EventGraph and create a new Event EndPlay node. Перетащите закрепление выполнения и отпустите его, а затем введите Stop AR Session (Завершить сеанс дополненной реальности) для поиска и нажмите клавишу "ВВОД".Drag the execution pin and release, then search for a Stop AR Session node and hit enter. Если сеанс дополненной реальности не останавливается по окончании уровня, некоторые функции могут не работать после перезапуска приложения при потоковой передаче данных на гарнитуру.If the AR session is still running when the level ends, certain features may stop working if you restart your app while streaming to a headset.
    • Нажмите кнопку Compile (Компилировать), а затем Save (Сохранить), после чего вернитесь в главное окно.Hit Compile, then Save and return to the Main window.

Остановка сеанса дополненной реальности

Создание элемента PawnCreate a Pawn

Пока что в проекте недостает объекта-игрока.At this point, the project still needs a player object. В Unreal объект Pawn представляет игрока в игре, но в нашем случае вместо игры будет взаимодействие в HoloLens 2.In Unreal, a Pawn represents the user in the game, but in this case it's going to be the HoloLens 2 experience.

  1. В папке Content выберите Add New > Blueprint Class (Добавить > Класс схемы) и разверните расположенный внизу раздел All Classes (Все классы).Click Add New > Blueprint Class in the Content folder and expand the All Classes section at the bottom.
    • Найдите элемент DefaultPawn, нажмите кнопку Select (Выбрать), присвойте ему имя MRPawn и дважды щелкните ресурс, чтобы открыть его.Search for DefaultPawn, click Select, name it MRPawn, and double-click the asset to open.

Создание нового объекта Pawn, наследующего от DefaultPawn

  1. Щелкните Add Component (Добавить компонент) > Camera (Камера) в панели Components (Компоненты) и присвойте ему имя Camera (Камера).Click Add Component > Camera from the Components panel and name it Camera. Убедитесь, что компонент Camera (Камера) является прямым дочерним объектом корня (CollisionComponent).Make sure that the Camera component is a direct child of the root (CollisionComponent). Это позволит камере игрока перемещаться вместе с устройством HoloLens 2.This allows the player camera to move with the HoloLens 2 device.

Примечание

По умолчанию у объектов Pawn есть компоненты, представляющие трехмерную сетку и столкновение.By default, Pawns have mesh and collision components. В большинстве проектов Unreal объекты Pawn — это твердые предметы, которые могут сталкиваться с другими компонентами.In most Unreal projects, Pawns are solid objects that can collide with other components. Поскольку в смешанной реальности объект Pawn и пользователь представляют собой одно и то же, необходимо, чтобы игрок мог проходить сквозь голограммы без столкновений.Since the Pawn and user are the same in mixed reality, you want to be able to pass through holograms without any collisions.

  1. В панели Components (Компоненты) выберите компонент CollisionComponent, а затем в панели Details (Сведения) прокрутите вниз до раздела Collision (Столкновение).Select CollisionComponent from the Components panel and scroll down to the Collision section of the Details panel.
    • Щелкните стрелку раскрывающегося списка Collision Presets (Предустановленные режимы столкновения) и выберите в нем значение NoCollision.Click the Collision Presets dropdown and change the value to NoCollision.
    • Выполните те же действия для компонента MeshComponent.Do the same for the MeshComponent

Изменение параметров столкновения для объекта Pawn

  1. Скомпилируйте и сохраните схему.Compile and Save the Blueprint.

Закончив с этим, вернитесь в главное окно.With your work here done, return to the Main Window.

Создание игрового режимаCreate a Game Mode

Последний аспект настройки приложения для смешанной реальности — это игровой режим (Game Mode).The last puzzle piece of the mixed reality setup is the Game Mode. Он определяет целый ряд параметров игры или взаимодействия, включая объект Pawn по умолчанию.The Game Mode determines a number of settings for the game or experience, including the default pawn to use.

  1. В папке Content выберите Add New > Blueprint Class (Добавить > Класс схемы) и выберите Game Mode Base в качестве родительского класса.Click Add New > Blueprint Class in the Content folder and select Game Mode Base as the parent class. Присвойте ему имя MRGameMode и дважды щелкните, чтобы открыть.Name it MRGameMode and double-click to open.

MRGameMode в обозревателе содержимого

  1. В панели Details (Сведения) перейдите в раздел Classes (Классы) и поменяйте значение параметра Default Pawn Class (Класс Pawn по умолчанию) на MRPawn.Go to the Classes section in the Details panel and change the Default Pawn Class to MRPawn.
    • Нажмите кнопку Compile (Компилировать), а затем Save (Сохранить), после чего вернитесь в главное окно.Hit Compile, then Save and return to the Main window.

Установка класса Pawn по умолчанию

  1. Выберите Edit > Projects Settings (Правка > Параметры проекта) и щелкните пункт Maps & Modes (Карты и режимы) в левом списке.Select Edit > Projects Settings and click Maps & Modes in the left-hand list.
    • Разверните раздел Default Modes (Режимы по умолчанию) и поменяйте значение параметра Default Game Mode (Игровой режим по умолчанию) на MRGameMode.Expand Default Modes and change Default Game Mode to MRGameMode.
    • Разверните раздел Default Maps (Карты по умолчанию) и вместо значений EditorStartupMap и GameDefaultMap выберите значение Main.Expand Default Maps and change both EditorStartupMap and GameDefaultMap to Main. Когда вы закроете и снова откроете редактор, по умолчанию будет выбрана карта Main.When you close and reopen the editor or play the game, the Main map will now be selected by default.

Параметры проекта — Карты и режимы

Проект настроен для смешанной реальности. Теперь можно переходить к следующему руководству, в котором показано, как добавить в сцену возможности пользовательского ввода.With the project fully set up for mixed reality, you're ready to move on to the next tutorial and start adding user input to the scene.

Следующий раздел: 4. Настройка интерактивной сценыNext Section: 4. Making your scene interactive