Пример закрепления в пространстве
Функциональные возможности, продемонстрированные в примере с закреплением в пространстве, также доступны в основной сцене примера физики с фиксацией в мировой системе координат.
Однако сцена с закреплением в пространстве предоставляет упрощенный и более точный обзор функции закрепления в пространстве. Она предназначена для описание работы реального приложения, для которого требуется выполнить привязку крупного объекта или объектов с признаками в реальном мире.
Таким образом, она не имеет большого количества вариантов и взаимодействий среды выполнения более общего примера физики с фиксацией в мировой системе координат.
Параметры по умолчанию
Примененные параметры 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-образный луч под шарами меняет цвет каждый метр. Измеряя отклонения цветовых изменений в лучах с помощью отметками на измерительном устройстве, можно увидеть погрешность в отрезках между местами закрепления в пространстве.
Операции повторного сопоставления
Автоматические операции повторного сопоставления, скорее всего, будут выглядеть следующим образом:
- После размещения одного или нескольких шаров виртуальные объекты будут правильно согласованы.
- В дальнейшем отслеживание теряется.
- Отслеживание возобновляется после перемещения в другую область физического мира.
- Выравнивание на основе первых шаров теряется и не действует (так как они находятся в другом фрагменте).
- После перемещения в новой части пространства (возможно, с размещением другой сферы) голова перемещается обратно в исходное пространство.
- Автоматически и без уведомления операция повторного сопоставления объединяет исходный и новый фрагменты.
- Выравнивание от первых шаров вступает в силу повторно (так как все они теперь находятся в одном фрагменте).