Table of Contents

Цель отслеживания в Unity AR — target

target в Unity представляет различные отслеживаемые объекты. Здесь вы узнаете основные концепции, состояния и жизненный цикл отслеживаемого объекта target в Unity AR.

Перед началом

  • Ознакомьтесь с основными концепциями, компонентами и рабочим процессом session в Введении в ARSession.

Что такое target

target — это представление в Unity объектов, которые распознаются и отслеживаются функциями AR. В реальном мире этими объектами могут быть изображения, 3D-объекты, пространственные карты и т.д. Распознавая и отслеживая эти объекты, AR-приложения могут накладывать виртуальный контент на реальный мир, создавая насыщенные интерактивные впечатления.

Некоторые target в реальном мире неподвижны (например, постер на стене).

Это видео демонстрирует простую AR-сцену с отслеживанием изображения. Слева — вид Hierarchy, в центре — вид Scene, справа — вид Game. Видео записано в режиме Play редактора Unity с использованием симулированных данных. Содержимое вида Game соответствует тому, что пользователь видит в реальном мире на телефоне. В этом видео target (ImageTarget) представляет визитную карточку в реальном мире. Мы разместили над ней желтую сферу для визуализации её движения.

Видно, что target неподвижен как в реальном мире, так и в сцене, а камера, представляющая пользователя (синий конус), перемещается в соответствии с движением пользователя в реальном мире. Белый конус показывает траекторию положения и ориентации камеры за прошедшее время. Желтая сфера находится под узлом target (ImageTarget), что является типичной иерархией для объектов в таких сценах.

Некоторые target в реальном мире могут перемещаться (например, постер в автобусе).

Это видео показывает ту же сцену, но на этот раз мы перемещаем target (визитку) в реальном мире. Видно, что после перемещения target желтая сфера следует за движением визитки, и в виде Game сфера по-прежнему точно наложена на визитку.

Для простоты понимания в обоих видео отключено отображение gizmo для ImageTarget, и используется режим центра SessionOrigin. В этих видео движение объектов в виде Scene соответствует движению в реальном мире. В реальных AR-сценах эта взаимосвязь сложнее.

Поведение target в разных режимах центра

В Unity центральная точка отсчета для всего AR-отслеживания называется центром session, а правило, определяющее этот центр во время работы session, называется режимом центра. Поведение target различается в зависимости от режима центра:

  • В режиме центра SessionOrigin target нельзя произвольно перемещать.

    Режим SessionOrigin возможен только в сценах с отслеживанием движения.

    Хотя этот режим хорошо демонстрирует движение target и камеры в простых сценах, на практике он используется редко. В этом режиме session контролирует движение target, и из-за погрешностей отслеживания движения или самих AR-функций сложно гарантировать полную неподвижность target. Корневой узел контента должен следовать за движением target, что может влиять на поведение контента (например, физическую систему) в Unity.

  • В режимах центра FirstTarget или SpecificTarget, если target выбран в качестве центра, его можно произвольно перемещать.

    Обычно режим FirstTarget наиболее распространен. Он гарантирует, что первый отслеживаемый объект в сцене не контролируется session. Если нет необходимости перемещать target, он остается неподвижным, независимо от движения соответствующего объекта в реальном мире.

  • В режимах центра FirstTarget или SpecificTarget, если target НЕ выбран в качестве центра, а также в режиме центра Camera, target нельзя произвольно перемещать.

    При одновременном отслеживании нескольких объектов, даже если они неподвижны относительно друг друга в реальности, из-за вычислительных погрешностей только один target в любой момент времени не контролируется session. В зависимости от конфигурации, движение других target не гарантируется — даже если в реальности они неподвижны, в сцене может наблюдаться небольшое движение. Следует учитывать это поведение при одновременном отслеживании нескольких объектов и соответствующим образом корректировать стратегию размещения контента.

Подробнее о режимах центра и движении объектов в сцене: Режим центра.

Состояния target

Состояние target отражает его распознавание и отслеживание в текущей session. Основные состояния:

  • Отслеживается (Tracked): target успешно распознан и отслеживается. AR-приложение может накладывать на него виртуальный контент, который будет точно соответствовать объекту в реальном мире.
  • Не отслеживается (Not Tracked): target в данный момент не распознан или не отслеживается. Если AR-приложение наложит на него виртуальный контент, он не будет соответствовать объекту в реальном мире.

При изменении состояния можно реагировать с помощью событий:

  • TargetFound: Срабатывает, когда target успешно распознан и начато его отслеживание.
  • TargetLost: Срабатывает, когда target теряет состояние отслеживания.

Жизненный цикл target

В AR-сценах Unity target обычно управляются соответствующим компонентом frame filter. Frame filter обрабатывает данные изображения от frame source, распознает и отслеживает в них target. Жизненный цикл frame filter зависит от session. Хотя реализации различных AR-функций могут отличаться, в большинстве случаев при запуске session target загружаются и после загрузки управляются session. При остановке session target выгружаются и остаются на месте до использования следующей session или ручного удаления.

Следующие шаги

Связанные темы