3. Настройка проекта для смешанной реальности
В предыдущем разделе мы настроили проект приложения для игры в шахматы. В этом разделе мы настроем приложение для разработки в контексте смешанной реальности, то есть добавим в него сеанс дополненной реальности. Для этого мы воспользуемся ресурсом данных ARSessionConfig, который содержит полезные параметры для настройки функций дополненной реальности, такие как пространственное сопоставление и загораживание. Дополнительные сведения см. в разделах, посвященных ARSessionConfig и UARSessionConfig, документации по Unreal.
Задачи
- Работа с параметрами дополненной реальности Unreal Engine.
- Использование ресурса данных ARSessionConfig.
- Настройка объекта Pawn и игрового режима.
Добавление ресурса для сеанса.
Сеансы дополненной реальности в Unreal не возникают сами по себе. Для работы с сеансом требуется ресурс данных ARSessionConfig, который мы сейчас и добавим:
- В обозревателе содержимого (Content Browser) выберите Add New > Miscellaneous > Data Asset (Добавить > Разное > Ресурс данных). Выйдите на уровень корневой папки Content.
- Выберите ARSessionConfig, нажмите кнопку Select (Выбрать) и присвойте ресурсу имя ARSessionConfig.
- Дважды щелкните ресурс ARSessionConfig, чтобы открыть его, оставьте параметры по умолчанию и нажмите кнопку Save (Сохранить). Вернитесь в главное окно.
Следующий шаг — настроить сеанс дополненной реальности таким образом, чтобы он запускался при загрузке уровня и останавливался при его завершении. К счастью, для этого в Unreal есть специальная схема Level Blueprint (Схема уровня), которая работает как глобальный граф событий, относящихся к уровню. Если подключить ресурс ARSessionConfig на схеме Level Blueprint (Схема уровня), сеанс дополненной реальности будет гарантированно стартовать в момент начала игры.
- В панели инструментов редактора выберите Blueprints > Open Level Blueprint (Схемы > Открыть схему уровня):
- Перетащите закрепление выполнения (указывающую вправо стрелку) из узла Event BeginPlay (Событие BeginPlay) и отпустите его, а затем введите Start AR Session (Начать сеанс дополненной реальности) для поиска и нажмите клавишу "ВВОД".
- В разделе Session Config (Параметры сеанса) щелкните стрелку раскрывающегося списка Select Asset (Выбор ресурса) и выберите ресурс ARSessionConfig.
- Щелкните правой кнопкой мыши в EventGraph и создайте новый узел Event EndPlay (Завершение воспроизведения события). Перетащите закрепление выполнения и отпустите его, а затем введите Stop AR Session (Завершить сеанс дополненной реальности) для поиска и нажмите клавишу "ВВОД". Если сеанс дополненной реальности не останавливается по окончании уровня, некоторые функции могут не работать после перезапуска приложения при потоковой передаче данных на гарнитуру.
- Нажмите кнопку Compile (Компилировать), а затем Save (Сохранить), после чего вернитесь в главное окно.
Создание элемента Pawn
Пока что в проекте недостает объекта-игрока. В Unreal объект Pawn представляет игрока в игре, но в нашем случае вместо игры будет взаимодействие в HoloLens 2.
- В папке Content выберите Add New > Blueprint Class (Добавить > Класс схемы) и разверните расположенный внизу раздел All Classes (Все классы).
- Найдите элемент DefaultPawn, нажмите кнопку Select (Выбрать), присвойте ему имя MRPawn и дважды щелкните ресурс, чтобы открыть его.
- Щелкните Add Component > Camera (Добавить компонент > Камера) в панели Components (Компоненты) и присвойте ему имя Camera (Камера). Убедитесь, что компонент Camera (Камера) является прямым дочерним объектом корня (CollisionComponent). Это позволит камере игрока перемещаться вместе с устройством HoloLens 2.
Примечание
По умолчанию у объектов Pawn есть компоненты, представляющие трехмерную сетку и столкновение. В большинстве проектов Unreal объекты Pawn — это твердые предметы, которые могут сталкиваться с другими компонентами. Поскольку в смешанной реальности объект Pawn и пользователь представляют собой одно и то же, необходимо, чтобы игрок мог проходить сквозь голограммы без столкновений.
- В панели Components (Компоненты) выберите компонент CollisionComponent, а затем в панели Details (Сведения) прокрутите вниз до раздела Collision (Столкновение).
- Щелкните стрелку раскрывающегося списка Collision Presets (Предустановленные режимы столкновения) и выберите в нем значение NoCollision.
- Выполните те же действия для компонента MeshComponent.
- Скомпилируйте и сохраните схему.
Закончив с этим, вернитесь в главное окно.
Создание игрового режима
Последний аспект настройки приложения для смешанной реальности — это игровой режим (Game Mode). Он определяет целый ряд параметров игры или взаимодействия, включая объект Pawn по умолчанию.
- В папке Content выберите Add New > Blueprint Class (Добавить > Класс схемы) и выберите Game Mode Base в качестве родительского класса. Присвойте ему имя MRGameMode и дважды щелкните, чтобы открыть.
- В панели Details (Сведения) перейдите в раздел Classes (Классы) и поменяйте значение параметра Default Pawn Class (Класс Pawn по умолчанию) на MRPawn.
- Нажмите кнопку Compile (Компилировать), а затем Save (Сохранить), после чего вернитесь в главное окно.
- Выберите Edit > Projects Settings (Правка > Параметры проекта) и щелкните пункт Maps & Modes (Карты и режимы) в левом списке.
- Разверните раздел Default Modes (Режимы по умолчанию) и поменяйте значение параметра Default Game Mode (Игровой режим по умолчанию) на MRGameMode.
- Разверните раздел Default Maps (Карты по умолчанию) и вместо значений EditorStartupMap и GameDefaultMap выберите значение Main. Когда вы закроете и снова откроете редактор, по умолчанию будет выбрана карта Main.
Проект настроен для смешанной реальности. Теперь можно переходить к следующему руководству, в котором показано, как добавить в сцену возможности пользовательского ввода.