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


Пример закрепления в пространстве

Функциональные возможности, продемонстрированные в примере с закреплением в пространстве, также доступны в основной сцене примера физики с фиксацией в мировой системе координат.

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

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

Параметры по умолчанию

Примененные параметры World Locking Tools Manager можно исследовать в Unity Inspector, выбрав узел WorldLocking > WorldLockingManager.

В частности, функции автоматического сохранения (AutoSave) и автоматической загрузки (AutoLoad) средства World Locking Tools включены. Таким образом, после сопоставления положений шаров и измерения луча до объектов реального мира, как описано ниже, при запуске последующих сеансов сопоставление будет загружаться автоматически.

Чтобы сбросить пример до исходного состояния, удалите его и повторно разверните. Существуют и API-интерфейсы для сброса до исходного состояния с помощью сценария, но здесь они опущены, чтобы избежать усложнения. См. IAlignmentManager.ClearAlignmentAnchors().

Кроме того, демонстрация включает автоматические операции повторного сопоставления. См. ниже.

Настройка физического пространства

Этот пример содержит 4 маркера. Чтобы полностью изучить пример, поместите физические маркеры в пространство, соответствующее расположению виртуальных маркеров.

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

Расположение физических маркеров в помещении должно соответствовать расположению виртуальных маркеров в сцене Unity, как показано на этой схеме:

Макет маркеров закрепления в пространстве

Запуск примера

Запуск

При запуске первого сеанса источник пространства координат Unity будет находиться в положении головы при запуске.

Если посмотреть влево и вперед, расстоянии 6 метров будет виден голубой шар с голубым кубом над ним.

Если посмотреть вправо и назад, на расстоянии 10 метров будет виден красный шар и куб.

При перемещении вперед с исходной точки и повороте назад будет видна белый шар и куб. На расстоянии восьми метров сзади будет желтый шар и куб.

Кроме того, под шарами проходят лучи разных цветов. Их назначение станет ясно во время пошагового руководства.

Совмещение мира

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

Подойдите к красному шару. Шар можно взять с расстояния, используя лучи рук при использовании HL2, или взгляда и сжатия при использовании HL1. В случае HL2 ее также можно взять в руку.

Найдите в физическом помещении маркер, соответствующий красному шару. Возьмите виртуальный красный шар с помощью одного из описанных выше методов и перетащите ее на маркер красного шара. Дополнительно настройте шар так, чтобы он как можно лучше совпадал с физическим маркером.

Теперь другие шары тоже переместились. Однако их ориентация не поменялась. Это значит, что виртуальный мир преобразован, чтобы красный шар совпадал с его маркером, но его ориентация пока не изменилась.

Перейдите к другому шару. В этом пошаговом руководстве следующим будет белый шар.

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

Теперь виртуальное пространство повернуто и преобразовано, поэтому красный, белый и голубой шары по-прежнему расположены на одной линии со смещением в перпендикулярном направлении от белого шара.

Убедитесь, что при приближении к белому шару он сопоставлен с физическим маркером. подойдите к красному шару и убедитесь, что он сопоставлен с физическим маркером.

Теперь подойдите к оставшемуся шару. В этом пошаговом руководстве это будет голубой шар.

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

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

При необходимости повторите эту процедуру для последнего шара.

Альтернативный режим взаимодействия

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

В альтернативном режиме ориентацию можно задать явно, беря шары и поворачивая их вокруг оси Y.

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

Аналогично, при использовании QR-кодов для автоматического выравнивания положение, возвращаемое для маркера QR-кода, обычно гораздо надежнее, чем ориентация.

Однако некоторые приложения могут иметь предварительные и более подробные сведения о требуемой ориентации пространства, которые они могут применить при использовании этого второго метода.

Чтобы включить метод явной ориентации в этой демонстрации, просто отключите компоненты взаимодействия с ориентированием закреплений в пространстве для шаров маркеров:

Content (Содержимое) > Manipulation (Взаимодействие) > Markers (Маркеры) > CyanSphere/RedSphere/YellowSphere/GreySphere.

Затем включите компоненты взаимодействия с закреплением в пространстве.

В таком случае предлагается следующий порядок действий:

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

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

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

Проверка результатов

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

Если шары были размещены правильно, в каждом из них погрешность должна быть нулевой.

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

Операции повторного сопоставления

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

  1. После размещения одного или нескольких шаров виртуальные объекты будут правильно согласованы.
  2. В дальнейшем отслеживание теряется.
  3. Отслеживание возобновляется после перемещения в другую область физического мира.
  4. Выравнивание на основе первых шаров теряется и не действует (так как они находятся в другом фрагменте).
  5. После перемещения в новой части пространства (возможно, с размещением другой сферы) голова перемещается обратно в исходное пространство.
  6. Автоматически и без уведомления операция повторного сопоставления объединяет исходный и новый фрагменты.
  7. Выравнивание от первых шаров вступает в силу повторно (так как все они теперь находятся в одном фрагменте).