Цель отслеживания Unity AR -- target
target в Unity выражает различные отслеживаемые объекты. В следующих разделах вы узнаете основные понятия, состояния и lifecycle отслеживаемого объекта target в Unity AR.
Перед началом
- Ознакомьтесь с основными понятиями, составом и рабочим процессом session в Введении в ARSession.
Что такое target
target означает представление в Unity объектов, которые распознаются и отслеживаются AR-функциями. В реальном мире такими объектами могут быть изображения, 3D-объекты, пространственные карты и т. д. Распознавая и отслеживая эти объекты, AR-приложение может накладывать виртуальный контент на реальный мир и создавать богатый интерактивный опыт.
Некоторые target в реальном мире неподвижны, например постер на стене.
Это видео показывает простую AR-сцену с image tracking. Слева находится вид
Hierarchy, в центре видScene, справа видGame. Видео записано в режимеPlayUnity Editor с использованием данных симуляции выполнения. Содержимое видаGameсовпадает с тем, что пользователь видит на телефоне в реальном мире. В этом видео target (ImageTarget) представляет визитную карточку в реальном мире. Над ней размещена жёлтая сфера, чтобы было легче наблюдать её движение.Видно, что положение target в реальном мире и в сцене фиксировано, а камера, представляющая пользователя, то есть синий конус, перемещается согласно движению пользователя в реальном мире. Белый конус показывает траекторию положения и направления камеры за прошедший период. Жёлтая сфера находится под узлом target (ImageTarget), что является типичной структурой организации объектов для таких сцен.
Некоторые target в реальном мире могут двигаться, например постер на автобусе.
Это видео показывает ту же сцену, но на этот раз мы перемещаем target, то есть визитную карточку, в реальном мире. Видно, что после перемещения target жёлтая сфера движется вместе с визитной карточкой, а в виде
Gameэта сферическая метка по-прежнему прилегает к карточке.
Для упрощения понимания в двух видео выше отключено отображение gizmo у ImageTarget, и в обоих используется центр-режим SessionOrigin. В этих видео движение объектов в виде Scene совпадает с реальным миром. В реальных AR-сценах такая связь движения несколько сложнее.
Поведение target в разных center mode
В Unity центральная опорная точка всего AR tracking называется session center, а правила, определяющие этот центр во время работы session, называются center mode. В разных center mode поведение target отличается:
В center mode SessionOrigin target нельзя произвольно перемещать.
Режим SessionOrigin может существовать только в сцене с motion tracking.
Хотя этот режим в предыдущей простой сцене хорошо показывает движение target и камеры в реальности, в практических AR-сценах он используется нечасто. В этом режиме session управляет движением target, а из-за вычислительных ошибок motion tracking или самих AR-функций трудно гарантировать, что target полностью неподвижен. В таком случае корневой узел контента должен двигаться вслед за target, что может влиять на поведение контента в системе Unity, например на физическую систему.
В center mode FirstTarget или SpecificTarget, если target как раз выбран центральным объектом, его можно свободно перемещать.
Обычно чаще используется режим FirstTarget. Он гарантирует, что первый отслеженный объект в сцене не управляется session. Если нет необходимости перемещать target, он будет неподвижным независимо от того, движется ли соответствующий объект в реальном мире.
В center mode FirstTarget или SpecificTarget, если target не выбран центральным объектом, а также в center mode Camera, target нельзя произвольно перемещать.
При одновременном отслеживании нескольких объектов, даже если в реальной среде они относительно неподвижны, из-за вычислительной ошибки в один момент времени только один target может быть не под контролем session. В этот момент, в зависимости от конфигурации, движение других target не гарантируется; даже если в реальности движения нет, в сцене могут быть небольшие движения. Это поведение при одновременном отслеживании нескольких объектов следует полностью учитывать и разумно корректировать стратегию контента.
Подробности о center mode и способах движения объектов в сцене см. в Center mode.
Состояние target
Состояние target отражает его распознавание и tracking в текущей session. Частые состояния:
- Tracked: target успешно распознан и отслеживается; AR-приложение может накладывать на него виртуальный контент, и контент будет прилегать к объекту в реальном мире.
- Not Tracked: target сейчас не распознан или не отслеживается; если AR-приложение всё же накладывает на него виртуальный контент, контент не будет прилегать к объекту в реальном мире.
При изменении состояния можно реагировать через следующие events:
- TargetFound: срабатывает, когда target успешно распознан и отслеживается.
- TargetLost: срабатывает, когда target теряет состояние tracking.
Lifecycle target
В сценах Unity AR target обычно управляется соответствующим компонентом frame filter. frame filter обрабатывает данные изображения из frame source и распознаёт и отслеживает содержащиеся в них target. Lifecycle frame filter опирается на session. Хотя реализации разных AR-функций могут отличаться, в большинстве случаев при запуске session target загружается, а после загрузки находится под управлением session. При остановке session target выгружается и остаётся на месте, пока не будет использован следующей session или удалён вручную.
Следующие шаги
- Попробуйте получить состояние target
- Попробуйте использовать соответствующий target в разных AR-функциях