Цель отслеживания в 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 или ручного удаления.
Следующие шаги
- Попробуйте Получить состояние target
- Попробуйте использовать соответствующие target в различных AR-функциях