QR-коды в Unreal

Если вы не знакомы с QR-кодами, вы можете изучить этот обзор.

Устройство HoloLens 2 способно видеть QR-коды в мировом пространстве с помощью веб-камеры, отрисовывая их в виде голограмм в месте расположения каждого QR-кода в реальном мире. Кроме того, HoloLens 2 может также отрисовывать голограммы в одном и том же месте на нескольких устройствах для общего взаимодействия с несколькими пользователями. Соблюдайте рекомендации по добавлению QR-кодов в приложения:

  • Тихие зоны
  • Освещение и фон
  • Размер, расстояние и угловое положение

Размещая QR-коды в приложении, следует уделять особое внимание особенностям пространственной среды. Более подробные сведения по каждой из этих тем, а также инструкции по скачиванию соответствующего пакета NuGet см. в главном документе с обзором отслеживания QR-кодов.

Внимание!

QR-коды — это единственный тип изображений, отслеживаемый HoloLens без дополнительной настройки. Модуль Unreal UARTrackedImage не поддерживается в HoloLens. Если вам требуется отслеживать собственные изображения, вы можете получать данные с веб-камеры устройства и обрабатывать кадры с нее с помощью сторонней библиотеки распознавания изображений.

Включение обнаружения QR-кодов

Поскольку для обнаружения QR-кодов устройству HoloLens 2 нужно задействовать веб-камеру, необходимо включить эту функцию в параметрах проекта:

  • Выберите Edit > Project Settings (Правка > Параметры проекта), прокрутите вниз до раздела Platforms (Платформы) и выберите элемент HoloLens.
    • Разверните раздел Capabilities (Возможности) и установите флажок Webcam (Веб-камера).  
  • Необходимо также включить отслеживание QR-кодов, добавив ресурс ARSessionConfig (по умолчанию оно выключено).

Если вы используете UE 4.26, мы рекомендуем использовать следующую настройку схемы для добавления небольшой задержки, так как отслеживание QR-кода должно быть инициализировано ПОСЛЕ запуска сеанса дополненной реальности:

Схема функции Toggle ARCapture с задержкой

Настройка отслеживаемого QR-кода

QR-коды выводятся в виде отслеживаемого изображения через систему отслеживания геометрии в дополненной реальности Unreal. Чтобы обеспечить работу этого механизма:

  1. Создайте схему субъекта и добавьте в нее компонент ARTrackableNotify:

AR Trackable Notify для QR-кодов

  1. Выберите компонент ARTrackableNotify и в панели Details (Сведения) разверните раздел Events (События):

События QR-кодов

  1. Щелкните + рядом с пунктом On Add Tracked Geometry (При добавлении отслеживаемой геометрии), чтобы добавить соответствующий узел в граф событий.
    • Полный список событий можно найти в API объекта UARTrackableNotify.

Добавление узла в событие On Add Tracked Geometry (При добавлении отслеживаемой геометрии)

Использование отслеживаемого QR-кода

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

Что происходит:

  1. Сначала отслеживаемое изображение приводится к типу ARTrackedQRCode и проверяется, что текущее обновленное изображение содержит QR-код.
  2. Закодированные данные извлекаются из переменной QRCode. Координаты левого верхнего угла QR-кода можно получить из расположения, возвращаемого функцией GetLocalToWorldTransform, а размеры кода — с помощью функции GetEstimateSize.

Можно также получить систему координат для QR-кода в программном коде.

Поиск уникального идентификатора

Каждый QR-код имеет уникальный идентификатор (GUID), найти который можно следующим образом:

  • Перетащите закрепление As ARTracked QRCode (Как отслеживаемый QR-код дополненной реальности) и найдите узел Get Unique ID (Получить уникальный идентификатор).

GUID для QR-кода

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

Если вы следуете изложенным нами этапам разработки для Unity, вы можете перейти к следующему разделу:

Или сразу перейдите к развертыванию приложения на устройстве или эмуляторе:

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

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