Пример Vehicle
Пример сцены Vehicle — это упрощенная версия присоединения камеры к транспорту или платформе, которые двигаются в виртуальном пространстве.
Терминология
Этот пример и демонстрируемая им функция НЕ связаны с использованием устройства дополненной реальности (AR) в движущемся транспорте, например автомобиле или поезде. Для такого сценария используется функция режима подвижного пола в HoloLens.
Этот пример демонстрирует камеру, подключенную к движущейся системе координат. Сама физическая камера не движется (за исключением отслеживания устройства пользователя). Но положение камеры в виртуальном пространстве изменяется при перемещении камеры по виртуальному миру.
Иллюстрация примера
Предположим, у вас есть физический макет транспорта. Например, это может быть городской автобус. Этот макет очень прост: у него есть наброски корпуса, возможно, сидения водителя и даже что-то похожее на панели управления. То есть это очень приближенный макет городского автобуса. Как декорация. Его не нужно будет куда-то везти.
Далее вам нужно воспользоваться дополненной реальностью, чтобы наложить более точные детали на базовый макет автобуса. Вы можете спроецировать данные на виртуальные панели. Вы можете спроецировать трубы, железнодорожные пути и другие препятствия. Спроецируйте любые объекты, важные для вашего приложения. Внутренняя обстановка виртуального автобуса будет наложена на физический макет.
Очевидно, что важно выровнять объекты виртуального автобуса с физическим макетом. К счастью, World Locking Tools (WLT) позволяют сделать это с помощью функции SpacePin
. Базовое использование SpacePins
более подробно описано в разделе понятий этой документации (вы также найдете несколько более простых примеров).
После закрепления виртуальных объектов внутренней обстановки к физическому макету вы можете проехаться на своем виртуальном автобусе по виртуальному городу.
Некоторые считают, что правильным подходом будет двигать виртуальный город вокруг автобуса, благодаря чему кажется, что автобус едет по городу. Ведь физическая камера не двигается, так зачем же менять ее координаты?
Аргументы против такого подхода можно найти в этой статье. Пока же мы примем, что координаты виртуального автобуса сдвигаются по виртуальному городу, а сам виртуальный город не будет двигаться в виртуальном пространстве.
Надежной техникой является присоединение камеры к движущейся системе координат транспорта. Так как камера отслеживает движения устройства пользователя, она перемещается относительно системы координат транспорта, а не относительно мирового пространства.
Пояснение содержимого примера
Корень дерева камеры представляет транспорт, в котором находится камера. При перемещении корня через глобальное пространство координат Unity глобальные координаты камеры будут постоянно изменяться. Естественно, изменение координат камеры не будет приводить к перемещению камеры в физическом пространстве. Камера перемещается через виртуальное пространство, но не через физическое.
Другие объекты, присоединенные к транспорту, также перемещаются с камерой. С точки зрения камеры такие другие объекты стационарны, а стационарные объекты в глобальном пространстве движутся. Объекты, присоединенные к транспорту, можно воспринимать как части транспорта, в котором находится камера. Объекты, которые стационарны в глобальном пространстве и движутся с точки зрения камеры, аналогичны виду из окна транспорта.
Этот пример демонстрирует два варианта использования SpacePins
в таком контексте. SpacePins
, которые являются частью этого движущегося транспорта (движущийся корень), работают как обычно в движущейся системе координат транспорта. Они позволяют привязывать части виртуального пространства транспорта к физическому. Хотя их координаты постоянно меняются при движении транспорта, они фиксированы в системе координат транспорта с камерой. В примере сцены части транспорта представлены сферами и связанными маркерами SpacePins
.
Второй вариант использования — присоединение системы координат за рамками системы координат транспорта к физическому миру. В случае привязки к физическому миру координаты будут постоянно обновляться. Система координат остается стационарной относительно физического мира, что также позволяет сохранять стационарными все присоединенные к ней объекты относительно физической среды. В сцене независимое подпространство представлено капсулами и связанными маркерами SpacePins
.
Кубы в примере стационарны в глобальном пространстве и представляют среду, через которую движется транспорт.
В примере камера пролетает круговой путь вокруг источника, при этом она всегда направлена на него. При первом запуске примера кубы будут вращаться как одно целое вокруг точки на расстоянии в несколько метров. Более точным будет сказать, что камера вращается вокруг кубов.
В коротком сопроводительном видео показан пример в HoloLens 2 и приведены пояснительные комментарии о происходящем и о том, чего можно ожидать. Для краткости в нем опущен контекст. Прочитайте статью, чтобы понять, о чем говорится в видео.