Поделиться через


Локальные пространственные привязки в Unreal

Пространственные привязки позволяют размещать в реальных пространствах голограммы, которые сохраняются между сеансами работы с приложением как ARPin. После сохранения в хранилище привязок HoloLens ARPin можно загрузить в будущие сеансы. Это идеальный вариант отката при отсутствии подключения к Интернету.

Примечание

Функции объектов из UE 4.25 считаются устаревшими в 4.26. Используйте новые функции.

Важно!

Локальные привязки хранятся на устройстве, а пространственные привязки Azure сохраняются в облаке. Если вы хотите использовать облачные службы Azure для хранения привязок, мы предоставляем документ, который поможем вам в интеграции Пространственных привязок Azure. Обратите внимание, что вы можете использовать локальные привязки и привязки Azure в одном проекте без каких-либо конфликтов.

Предварительные требования

Важно!

Для пространственных привязок требуется подключаемый модуль Microsoft OpenXR.

Необходимо использовать подключаемый модуль Microsoft OpenXR, доступный в Unreal Marketplace или GitHub.

Проверка хранилища привязок

Перед сохранением или загрузкой привязок обязательно убедитесь, что хранилище привязок подготовлено. Попытка вызвать любую из функций привязки в HoloLens при неготовности хранилища завершится ошибкой.

Сохранение привязок

Когда в приложении появится компонент, который вам нужно будет прикрепить к положению в реальном мире, сохраните его в хранилище привязок с помощью следующей последовательности:

Порядок действий:

  1. Породите субъект в известном расположении.

  2. Создайте элемент ARPin с этим расположением и именем, основанным на классе субъекта.

  3. Добавьте соответствующий субъект в ARPin и сохраните полученный элемент в хранилище привязок HoloLens.

    • Для привязки необходимо выбрать уникальное имя, поэтому в нашем примере к имени добавляется текущая метка времени.
  4. Привязка, успешно сохраненная в хранилище, отображается на портале устройства HoloLens в разделе System > Map manager > Anchor Files Saved On Device (Система > Диспетчер карт > Сохраненные на устройстве файлы привязок).

Загрузка привязок

При запуске приложения можно вызвать следующую схему, чтобы восстановить все компоненты в местах соответствующих привязок:

Порядок действий:

  1. Выполните перечисленные ниже шаги для всех привязок в хранилище.

  2. Породите субъект без преобразований.

  3. Прикрепите субъект к элементу ARPin из хранилища привязок.

    • Здесь важно порождать субъект без преобразований, так как привязка отвечает за размещение голограммы в мире в том месте, где она была сохранена. Любое преобразование на этом этапе добавит к нашей привязке ненужное смещение.

Идентификатор привязки также запрашивается, чтобы мы могли порождать разные субъекты в зависимости от сохраненного имени привязки.

Удаление привязок

Когда вы закончите с привязкой, то можете очистить отдельные привязки или очистить все хранилище привязок с помощью компонентов Remove ARPin from WMRAnchor Store (Удаление ARPin из хранилища WMRAnchor) и Remove All ARPins from WMRAnchor Store (Удаление всех элементов ARPin из хранилища WMRAnchor).

Примечание

Имейте в виду, что функциональность пространственных привязок находится пока в стадии бета-версии, поэтому стоит возвращаться сюда время от времени за новой информацией.

Следующий этап разработки

Если вы следуете изложенным нами инструкциям по разработке для Unreal, вы как раз прошли половину в изучении основных стандартных блоков MRTK. Отсюда вы можете перейти к следующему стандартному блоку:

Или перейдите к возможностям и API платформы смешанной реальности:

Вы можете в любой момент вернуться к этапам разработки для Unreal.

См. также статью