Впервые на русском: Документация Unity для разработчиков. Движение в сценах VR Sample

Продолжаем публикацию эксклюзивной информации для разработчиков Unity. Новый раздел посвящён движению в сценах VR Sample.

Документация Unity для разработчиков:

  1. Обзор виртуальной реальности
  2. Проекты сэмплов для виртуальной реальности
  3. Начало работы с VR Development. Основы
  4. Начало работы с VR Development. Создание первого проекта виртуальной реальности
  5. Начало работы с VR Development. Полезная информация для разработки виртуальной реальности
  6. Обзор VREyeRaycaster, VRInput и VRInteractiveItem
  7. Обзор SelectionRadial и SelectionSlider
  8. Примеры взаимодействия в VRSampleScenes. Взаимодействия в Menu scene
  9. Примеры взаимодействия в VRSampleScenes. Взаимодействие в Лабиринте
  10. Примеры взаимодействия в VRSampleScenes. Взаимодействие в Тире 180 и Тире 360
  11. Вращение и позиционирование головы в виртуальной реальности
  12. Взаимодействие с тачпадом и клавиатурой во время игры в виртуальной реальности
  13. Примеры VRInput в VR Samples
  14. Пользовательские интерфейсы для виртуальной реальности
  15. Взаимодействие с пользовательским интерфейсом
  16. Свободное сглаживание текста для виртуальной реальности
  17. Движение в виртуальной реальности
  18. Движение в сценах VR Sample

Как уже упоминалось в статье «Начало работы», вы не можете перемещать непосредственно камеру в Unity. Вместо этого камера должна быть дочерним элементом другого игрового объекта, и изменения в положении и вращении должны применяться к изначальному родительскому элементу.

Мы хотели убедиться, что у пользователей будет удобный опыт виртуальной реальности в нашем проекте VR Samples, поэтому большинство сцен (Меню, Тиры) не включают в себя движения камеры. Тем не менее, некоторые из них, такие как Лётчик и Лабиринт, включают в себя движение: давайте рассмотрим, какое движение они включают в себя, и почему мы выбрали именно его. Обратите внимание, что мы отметили эти сцены как «комфортные для некоторых пользователей», а не «большинства» в пользовательском интерфейсе меню. И хотя вы не должны удерживать пользователей от желания попробовать на этом раннем этапе развития виртуальной реальности, мы считаем справедливым, что нам остаётся только надеяться на то, что они будут обеспечены позитивным впечатлением.

Движение в виртуальной реальности в Лётчике

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

Со следами движения позади корабля и частицами, движущимися по краям окружающей среды, получается создать общее впечатление об общей скорости и движении вдаль. Эти элементы также обеспечивают определённую статичную точку, когда вы смотрите вокруг в качестве попытки уменьшить тошноту.

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

Движение в виртуальной реальности в Лабиринте

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

Однако, поскольку мы используем карту освещения и NavMesh для персонажа и его навигации по лабиринту, мы не можем вращать стол, так как на нём располагаются объекты, помеченные как статические. Вместо этого у нас есть следующая иерархия:

Объект VROrbitCamera расположен в центре лабиринта с объектом MazeUnityLogo на одной стороне лабиринта, а MainCamera – с другой:

Это позволяет вращать объект VROrbitCamera, а персонажи поворачиваются вокруг точки центра лабиринта. Логотип Unity действует как визуальная статичная точка и заставляет нас думать, что вращается только плоская поверхность стола.

Для выполнения вращения VROrbitCamera имеет два компонента:

  • CameraOrbit, который обрабатывает вращение
  • Rigidbody, который позволяет легко изменять параметры массы и демпфирования

Этот компонент CameraOrbit имеет три важных варианта стиля Orbit:

  • Smooth – это вариант, который мы используем в проекте. Он плавно вращает поверхность и медленно гасит движение. Попытайтесь изменить Rotation Increment и свойства в RigidBody, чтобы добиться различных вариаций скорости, демпфирования и количества орбит камеры для каждого свайпа.
  • Step: иногда мы можем захотеть немедленно привязаться к следующей позиции в момент, когда мы вращаемся. Изменение увеличения вращения изменит скорость вращения камеры.
  • Step With Fade – это работает так же, как и Step, но очень быстро затемняет камеру до чёрного, вращает поверхность и исчезает. Быстрое затемнение камеры, перемещение положения камеры и новое замирание – полезный способ передвижения пользователя внутри среды виртуальной реальности без боязни вызвать тошноту. Изменение продолжительности затемнения вращения изменяет продолжительность каждого замирания.

Движение и предотвращение тошноты являются важными областями, которые следует учитывать при разработке контента виртуальной реальности. Мы настоятельно рекомендуем внимательно ознакомиться с руководствами Oculus по теме «Болезнь симуляции» и движение», в котором подробно рассматриваются эти важные темы.

Движение в виртуальной реальности в Тире 180/360

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

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

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

 

Примечание: Данный материал представлен для ознакомления, при перепечатывании ссылка на оригинал обязательна. Если вы хотите принять участие в помощи проекту, пишите на editor@vrgeek.ru

Если вы разработчик и вы хотите продолжить свою карьеру в лучших компаниях России, пишите на editor@vrgeek.ru с пометкой «Работа мечты», и мы поможем вам с этим.