Разработка VR и MR в Unity
Начните разработку проектов виртуальной и смешанной реальности в Unity.
Виртуальная реальность (VR) и смешанная реальность (MR) — это разновидности расширенной реальности, в которых специальные устройства дают пользователю возможность взаимодействовать с виртуальным окружением.
В VR-сценариях окружение замкнуто: пользователь не видит окружающую обстановку и воспринимает только виртуальный контент на экране. Взаимодействовать он может лишь с виртуальным контентом, а не с физическим окружением. Обычно VR реализуется через гарнитуру (шлем, Head-Mounted Display, HMD), экран которой показывает виртуальное окружение. VR полностью погружает пользователя, поэтому хорошо подходит для иммерсивных сюжетных сценариев и геймплея.
MR сочетает элементы реального и виртуального окружения, позволяя пользователю одновременно видеть и то и другое и взаимодействовать с ними. MR опирается на устройства, способные показывать вид окружения пользователя в реальном времени и совмещать его с виртуальным контентом. Некоторые гарнитуры, например Meta Quest 3, реализуют MR через passthrough камеры, которые снимают окружающую обстановку и выводят её на экран. Разработчики часто называют такие приложения passthrough-приложениями. Другие устройства достигают MR без сквозных камер: например, устройства Microsoft HoloLens — это прозрачные очки, проецирующие виртуальный контент прямо на линзы. MR полезна там, где важна интеграция с реальным миром, — например, в обучающих или образовательных сценариях. С помощью MR можно также создавать социальные игровые сценарии или дополнять геймплей информацией о местоположении.
Примечание: На некоторых современных устройствах вы можете разработать приложение, которое имеет режимы MR и VR, чтобы позволить пользователю переключаться между этими режимами в вашем приложении.
Соображения в отношении разработки VR и MR
Разработка VR и MR имеет общие рабочие процессы и соображения дизайна с любой разработкой 3D в реальном времени в Unity. Однако отличительные факторы включают:
- Более богатый пользовательский ввод: в дополнение к традиционным кнопкам и джойстик-контроллерам, VR устройства обеспечивают пространственное отслеживание головы, контроллера, руки и пальца (на поддерживаемых платформах).
- Более близкое взаимодействие с окружающей средой: в сочетании с возможностями более богатого ввода, VR повышает ожидания гораздо более близкого и физического взаимодействия с окружающей средой, чем типичные 3D игры и приложения. Пользователи ожидают, что они смогут поднимать вещи и взаимодействовать с объектами в окружающей среде. С отслеживанием головы камера может подойти гораздо ближе к стенам и другим границам окружающей среды и может даже пройти через них.
- Проблемы с комфортом пользователя: многие люди испытывают боль от движения в VR, когда движение камеры не совпадает с движением их головы. Вы можете смягчить причины болей от движения, поддерживая высокую частоту кадров, предлагая широкий спектр вариантов передвижения, чтобы пользователи могли выбрать режим, который им удобно, и избегая перемещения камеры независимо от отслеживания движения головы пользователя.
Чтобы начать разработку VR, используйте систему управления плагинами XR для установки и включения плагинов поставщика XR для устройств, которые вы хотите поддерживать. Дополнительные сведения см. в разделе XR Project настройка.
Основные элементы сцены VR и MR
Базовая сцена VR или MR должна содержать XR Начало, которая определяет 3D Origin для отслеживания данных. Эта коллекция GameObjects и компонентов также содержит основную сцену Camera и GameObjects, представляющую контроллеры пользователя. См. Настройка сцены XR для инструкций по настройке базовой сцены VR.
Как правило, вам нужен способ для пользователя перемещаться и взаимодействовать с созданным вами миром 3D. Набор инструментов взаимодействия XR предоставляет компоненты для создания взаимодействий, таких как выбор и захватывание объектов. Он также предоставляет настраиваемую систему локомоции. Вы можете использовать Input System в дополнение к или вместо XR Набора инструментов взаимодействия.
VR пакета
Большинство функций и APIs, используемых для разработки VR в Unity, предоставляются через пакеты. Эти пакеты включают:
- Плагины поставщика
- XR Набор инструментов взаимодействия
- XR Основные коммунальные услуги
- Input System
- VR шаблон проекта
- Ручной отслеживание
Плагины поставщика VR и MR
Платформы VR и MR доступны в качестве плагинов поставщика в системе XR Plug-in Management. Чтобы понять, как использовать систему XR Plug-in Management для добавления и включения плагинов поставщика для ваших целевых платформ, см. XR Project настройка.
В следующей таблице описаны плагины, доступные для разработки VR и MR, и поддерживаемые ими устройства:
| Плагин | MR/VR | Поддерживаемые устройства |
|---|---|---|
| Apple visionOS XR Плагин | MR и VR | Apple Вижн Про |
| Плагин Oculus | VR | Oculus Rift, Meta Quest 2, Meta Quest 3, Meta Quest 3s, Meta Quest Pro |
| OpenXR | MR и VR | Устройства с OpenXR runtime включая устройства Meta Quest, Valve SteamVR, HoloLens |
| Unity OpenXR: Цель | MR и VR | Устройства Meta Quest |
| Unity OpenXR: Android XR | MR и VR | Android XR устройства |
| Unity OpenXR: Пространственные объекты | MR | OpenXR Средства выполнения, реализующие OpenXR Расширения пространственных объектов (Khronos) |
| PlayStation VR | VR | PlayStation VR и VR2. (Требуется регистрация разработчика Sony.) |
| Мок HMD | VR | Симулирует гарнитуру VR в режиме Unity Editor Play |
Примечание: Многие производители гарнитур работают над использованием runtime OpenXR в качестве стандарта. Однако, этот процесс не является полным, и могут возникнуть расхождения в функциях между OpenXR и плагином поставщика производителя гарнитуры или SDK.
XR Набор инструментов взаимодействия
Набор инструментов XR Набор инструментов взаимодействия может облегчить и ускорить разработку приложений VR. Набор инструментов XR Interaction Toolkit предоставляет:
- XR Начало, настроенный с контроллерами.
- XR контроллер устанавливает с Input System предварительными настройками для основных взаимодействий, таких как select и grab.
- Интерактивные и интерактивные компоненты для создания манипуляций с объектами.
- Конфигурируемая двигательная система.
- XR UI вход.
XR Основные средства
Пакет XR Основные средства содержит программные утилиты, используемые другими плагинами и пакетами Unity XR. Как правило, этот пакет устанавливается в вашем проекте как зависимость от других пакетов XR.
Input System
Пакет Unity Input System не только поддерживает доступ к вводу пользователя с VR кнопок контроллера и джойстиков, но также обеспечивает доступ к XR данных отслеживания и ощущений. Пакет Input System требуется, если вы используете XR Набор инструментов взаимодействия или OpenXR поставщика плагин.
Шаблоны VR и MR
Unity предоставляет шаблоны для разработки VR и MR. Эти шаблоны доступны из Unity Hub и предоставляют примерную сцену, предварительно настроенную с соответствующими пакетами и компонентами, чтобы начать разработку VR и MR.
Чтобы создать passthrough-сценарий, где пользователь видит реальный мир через камеры гарнитуры вместе с виртуальным контентом, используйте MR Шаблон или MR Настольный мультиплеер Шаблон. Эти шаблоны включают в себя AR Foundation, который обеспечивает поддержку проходных камер. VR Шаблон и VR Мультиплеер Шаблон создают полностью виртуальное окружение без поддержки сквозного видео.
Доступны следующие шаблоны VR и MR:
- VR Шаблон
- VR Мультиплеер Шаблон
- MR Шаблон
- MR Настольный мультиплеерный шаблон
Чтобы узнать больше о создании проекта XR из шаблона, см. Создание проекта XR.
Отслеживание движения руки
Отслеживание движения руки — это функция, которая позволяет пользователям взаимодействовать с приложением VR с помощью своих рук. Отслеживание движения руки поддерживается пакетом XR Руки.
Пакет Hands предоставляет:
- Стандартная модель данных руки.
- API для доступа к данным отслеживания рук.
- Компонент XR Hand Skeleton Driver, который сопоставляет набор преобразований с их соответствующими суставами руки и обновляет эти преобразования по мере получения данных отслеживания.
- Контроллер сетки XR Hand Mesh Controller, который включает и отключает сетку по мере получения или потери отслеживания руки.
- Образец HandVisualizer, демонстрирующий, как использовать отслеживание движения руки API.
Дополнительные ресурсы
- Создание опыта виртуальной и смешанной реальности в Unity (Электронная книга)
- Создание многопользовательской игры VR, Часть 1 | Unity (YouTube)