Разработка виртуальной реальности. Как стать VR-разработчиком?

разработка виртуальной реальности

Я основатель и президент . Мы предлагаем средства для создания VR-приложений, такие, как MiddleVR – связующее ПО, позволяющее 3D-приложениям (например, основанным на Unity) запускаться в любой VR-системе (комнаты виртуальной реальности, шлемы и другое). У меня есть блог про виртуальную реальность, который я начал вести задолго до того, как она стала популярной, и вы можете найти меня в твиттере.

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

Главное в виртуальной реальности – эффект присутствия. Если человек не может погрузиться в игру, значит, вы что-то сделали неправильно. Можно обмануть разум, заставляя его воспринимать происходящее, как иной мир, но это не так просто, как кажется. Эффект присутствия – очень зыбкое чувство.

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

Виртуальная реальность в 2013-м

Виртуальная реальность погружает человека в трёхмерное окружение с помощью специальных шлемов, очков или других систем погружения. Поэтому мы часто используем термин iVR (immersive VR – виртуальная реальность с погружением), чтобы обособиться от виртуальных миров вроде Second Life или World of Warcraft. В начале 90-х эти технологии приковали к себе всеобщее внимание, но не смогли предоставить ожидаемых ощущений.

Однако, они продолжили своё развитие на фронте серьёзных игр, и сегодня превратились в полезные средства, применяющиеся в нескольких областях:

  • Обучение в виртуальных симуляторах на порядок эффективнее реальной практики: можно с высокой точностью управлять имитируемой средой, просматривать повторы и безбоязненно отрабатывать реальные манипуляции во множестве потенциально опасных ситуаций. На таких тренажёрах обучают хирургов, военных, полицейских, пожарных, стоматологов и даже рабочих по наружной отделке зданий! Это позволяет предприятиям экономить на дорогостоящих материалах и избегать различных рисков, давая более прозрачное представление о способностях практикантов.
  • У всех ведущих автопроизводителей есть VR-системы для тестирования дизайна и эргономики продуктов, которые ещё не увидели свет, позволяющие быстрее перебирать разные вариации по сравнению с реальными макетами. Это применяется и в производстве катеров, самолётов, тракторов, производственных линий, фабрик и даже кухонь! Взгляните на VR-приложения и системы от Peugeot или Ford!
  • Цифровые модели выглядят очень правдоподобно: вы можете со всех сторон рассмотреть свой будущий дом или оценить городскую планировку задолго до начала строительства. Для примера посмотрите демонстрационное видео от Enodo.
  • VR – полезное средство для исследования рынка в области розничной торговли: вы можете вживую взглянуть на внешний вид своего магазина до его постройки или переноса, проследить за движением посетителей и за направлением их взгляда. Это полезно при оценке расстановки фурнитуры и позволяет убедиться, что ваш дизайн выделяется среди прочих.
  • Виртуальная реальность – хороший способ лечения фобий: при боязни высоты можно перенестись на смоделированный утёс и прочувствовать свой страх. В этом случае помощь терапевта будет более эффективной, чем в реальных условиях на настоящей скале. То же самое относится и к боязни перелётов, пауков, собак и выступлений на публике. Таким, к примеру, занимается Стефан Бушар (Stéphane Bouchard) в Лаборатории киберпсихологии Университета Квебека в Оттаве.

И конечно же, виртуальную реальность можно использовать в играх! Но с середины 90-х таких игр было очень мало и создавались они, как правило, либо в исследовательских лабораториях, либо энтузиастами. Для сборки VR-системы и программирования самой игры требуются соответствующие навыки и оборудование. Насколько мне известно, за последние 10 лет не вышло ни одной коммерческой VR-игры.

Вот скромный пополняющийся список известных VR-игр. Но так было до появления Oculus Rift, теперь же праздник на нашей улице будет каждый день! И мы уже становимся свидетелями новых виртуальных забав (гильотина, например).

Как создать виртуальный мир

Возводим стены
Добавим текстурыПовесьте на стены картиныУстановите связи объектов с WebДобавьте к объектам звуковые файлыЭкспорт в формат VRMLИнструментальные средстваМультимедийный Web-узел можно создать с помощью таких простых средств, как, например, пакет Virtual Home Space Builder фирмы Paragraph International. Это конструктор трехмерной виртуальной базовой страницы, или, лучше сказать, домашней комнаты (Home Room, а не Home Page). В вашем распоряжении самая разнообразная графика, звуковые файлы и программные средства, а также огромный набор готовых трехмерных миров, и шум поезда, и связи с WWW.

Возводим стены

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

1. Для начала на панели инструментов (Builder) выберите инструмент «Коробка» и переместите курсор на свою «строительную площадку». Щелкните один раз мышью, чтобы зафиксировать рамку на месте.

2. Теперь создайте пространство комнаты, вырезая область внутри рамки. Выберите на панели инструментов «Ножницы» и нарисуйте внутри первой рамки еще одну несколько меньшего размера. Затем щелкните по левой кнопке мыши для завершения операции вырезания.

3. Перейдем к окнам. Установите верхний и нижний указатели высоты на уровне приблизительно 2,40 и 1,90 соответственно. На плане дома (Plane Builder) нарисуйте небольшие прямоугольники в пределах каждой стены («вид сверху»).

4. Точно так же сделайте и дверь, при этом нижний указатель высоты установите на отметке 0,00, а верхний — на отметке 2,80.

5. Чтобы сделать потолок, установите верхний и нижний указатели высоты на уровне 3,50 и 3,33 соответственно. Щелкните по инструменту «Коробка» и поверх рамки плана строения нарисуйте еще одну рамку несколько большего размера. Последний фиксирующий щелчок — и на экране появляется новое изображение с нарисованным потолком.

6. Теперь пол. Установите отметки высоты на уровнях 0,11 и 0,00, а затем нарисуйте с помощью инструмента «Коробка» рамку с такими же размерами, как внешний контур строения. Сделайте щелчок для фиксации рамки на месте (на этот раз вы ее не увидите, так как она совпадет с ранее сделанным рисунком, но на виртуальной модели ее увидеть можно).

7. Перемещая мышью камеру внутри и вокруг сделанной постройки, вы сможете увидеть, как она выглядит. Передвигаться и менять угол наклона камеры вам помогут значки на панели Walker («Пешеход»).

Добавим текстуры

8. Чтобы покрасить стены, перейдите в панель управления Select Picture Directory («Выбор каталога изображений»), щелкните по инструменту Spray Can («Пульверизатор») и выберите краску из предоставленной палитры.

9. Перетащите и эту краску на выбранную поверхность. Вот вы и покрасили одну стену.

10. Точно так же покрасьте все внутренние и внешние стены.

Используйте текстуры

11. Для наложения текстуры на потолок и пол выберите из панели инструментов «Обои», в результате появится диалоговое окно. Проверьте, чтобы в левом нижнем окне было выставлено All Graphics Files («Все графические файлы»), и перейдите в каталог с изображением.

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

13. Для редактирования изображения выберите в левой верхней полосе меню инструмент Gradient («Градиент»), который даст доступ к диалоговому окну для редактирования по вашему выбору цветовых параметров.

14. Щелкните по кнопке OK, чтобы сохранить все изменения, а затем щелкните по значку Door («Дверь») для возврата в главное окно.

15. Щелкните по инструменту D, чтобы перейти в диалоговое окно Wallpaper Detail («Детали обоев»). Для вывода изображения облака активизируйте кнопку Tile («Черепица»).

16. Теперь «оживите» текстуру, включив кнопку Slide Direction («Направление скольжения»). С помощью кружка справа можно управлять радиальным направлением движения текстуры.

17. Наконец, установите размеры выведенных изображений с помощью средств управления Tile Width («Ширина вывода»), Tile Height («Высота вывода») и Offset («Смещение»). Чем больше размер изображения, тем медленнее оно будет двигаться вдоль поверхности.

18. Щелкните по кнопке OK, чтобы сохранить изменения и вернуться в главное окно.

19. Для наложения редактируемых текстур перетащите и сбросьте их на поверхности так же, как вы это делали с красками.

Повесьте на стены картины

20. Для размещения картины выберите значок с картинкой в группе Select Picture Directory («Выберите каталог картин») и затем щелкните по инструменту Directory («Каталог»).

21. Перейдите в подходящий каталог диалогового окна и выберите группу картин из списка. Мы выбрали каталог Stones («Камни»). После появления на экране коллекции картин переместите курсор на картину, которую вы хотите повесить на стене.

22. Перетащив картину, «повесьте» ее на стене. Если вам кажется, что картина висит слишком высоко или слишком низко, используйте инструмент Undo («Оповесьте» ее.

Установите связи объектов с Web

23. Перетащите инструмент Camera Lens («Объектив камеры») к изображению или объекту, который вы хотите связать с Web. То же самое можно сделать с помощью стрелок. Мы выбрали огромный зеленый кристалл.

24. Приблизившись вплотную к объекту, выберите в панели Walker («Пешеход») средство Select Object («Выделить объект»). Курсор тотчас превратится в этот инструмент, а фронтальное изображение объекта переместится в середину экрана.

25. Теперь выберите значок Attachment Editor («Редактирование присоединения»), в результате чего появится диалоговое окно. В этом окне найдите поле Function («Функции») и щелкните по Link to URL — появится еще одно диалоговое окно, которое запросит у вас адрес URL.

26. Наберите, начиная с метки https://, полный адрес узла, к которому вы хотите подсоединиться. Щелкните по кнопке OK для возврата в диалоговое окно, а затем еще раз щелкните по OK для возврата в главное окно.

27. Если теперь вы дважды щелкнете на объекте, то сразу же заработает Web-браузер, который выведет вас на базовую страницу по указанному адресу. При необходимости повторите.

Добавьте к объектам звуковые файлы

28. Выберите изображение или объект, с которыми вы хотите связать звуковой файл.

29. Щелкните на инструменте Select Object («Выбор объекта»), чтобы поместить объект в центр кадра.

30. Щелкните на Attachment Editor («Подключить редактор») и выделите в поле Function («Функции») опцию Play Sound («Воспроизведение звука»).

31. Чтобы выбрать звуковой файл, щелкните на Browse в верхнем левом углу и в дереве вашего каталога выберите WAV-файл. Вы можете прослушать выбранный музыкальный файл, щелкнув на кнопке Play.

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

Экспорт в формат VRML

33. Для экспорта файла в формат VRML или в собственный формат VHSB перейдите в диалоговое окно Save («Сохранить»), выбрав повернутую налево букву P (значок «слева»).

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

35. Хотя VRML и является достаточно широко применяемым стандартом, вам, возможно, придется покопаться в исходном тексте файла, чтобы найти некоторые VRML-браузеры, позволяющие правильно считывать текстуры. Если вы выберете формат MUS фирмы Paragraph, то вам придется переписать на вашу Web-страницу программу для просмотра VHSB.

Инструментальные средства

Virtual Home Space Builder Paragraph Int»l,

адрес для загрузки:
https://www.us.paragraph.com
Virtus Walkthrough Pro Virtus,

тел. в США: 800/847-8871 Fountain Caligary, адрес для загрузки:
https://www.caligary.com

Когда (не) стоит добавлять VR в игры

В первую очередь, нужно ответить на вопрос, действительно ли вашей игре нужна виртуальная реальность. Это как с 3D. Не каждое занятие автоматически становится интереснее в трёхмерном представлении, и что-то неподходящее будет ещё хуже выглядеть в VR.

В таком случае, где VR будет уместной идеей?

Задача виртуальной реальности – заставить вас почувствовать себя в другом мире, будь он реалистичным или не очень. Вообще, для меня эффект присутствия – это определение VR. Нет чувства присутствия – нет VR!

Очевидно, среди жанров, отлично подходящих для VR, будут игры с видом от первого лица. Вообразите Mirror’s Edge или Call of Duty в VR! В некоторые играх (Assassin’s Creed, Splinter Cell, или Gears of War) вид из-за спины потенциально можно переделать в вид из глаз, чтобы мы могли почувствовать себя в теле героя. Полагаю, мы увидим возрождение квестов и бродилок. Вероятно, виртуальная реальность появится и в совершенно других играх. Симуляторы Бога? Guitar Hero?

Но я считаю, что больше всех от VR выиграют игры, давящие на эмоции.

Хорроры могут быть очень впечатляющими. Ещё можно вспомнить про Heavy Rain. Отличная игра, я по-настоящему погружался в неё и сильно переживал. Однако, временами всё портилось неестественным взаимодействием, к тому же, там нет элемента физического присутствия. И вот тут может помочь виртуальная реальность!

Сферы применения VR

Сегмент развлечений

VR дает новый опыт погружения, более плотно связывает игрока, персонажа и игровую среду.

Убивайте зомби своими руками в игре Arizona Sunshine

Игра Terminator VR Arcade для LBE — развлечений в специальных местах: игровых клубах, центрах, парках виртуальной реальности

Маркетинг

VR позволяет создать быстрый и мощный wow-эффект; презентовать товар и услугу, которую в реальности продемонстрировать сложно; показать объем пространства, планировки объекта, который может быть еще не построен.

В Modum Lab разработали виртуальный шоурум апартаментов YE’S

Обучение

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

Компания BIOCAD применяет тренажер от Modum Lab для отработки навыков в виртуальной реальности

Уроки химии от проекта MEL Science

Медицина

С помощью VR можно обучать хирургов, тренировать навыки врачей, консультировать пациентов.

The Susan Project — VR-симулятор для медицинских сотрудников в психиатрии

VR как новый формат медиа

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

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

Мне приятно видеть, что многие инди-разработчики изначально планируют VR в своих играх, то есть, делают всё, как положено. А почему бы и нет? VR– это запредельные впечатления! Если кто-то из читателей работает в этом направлении, не стесняйтесь писать мне, мы будем рады поделиться мнением о вашей игре.

Дополненная реальность

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

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

Одним из самых популярных инструментов для разработки AR является Vuforia: он доступен для Unity, Android и iOS, предлагает огромное количество функций и поддерживает множество устройств, включая телефоны Tango, head-display, смартфоны, очки, а также специально изготовленные козырьки Microsoft HoloLens.

Эффект присутствия

Как я и говорил, для меня определение VR – эффект присутствия. Без чувства, что вы оказались в каком-то другом месте игра останется обычной интерактивной трёхмерной средой, а не настоящей VR-средой – даже, если в неё вложены миллионы долларов. Уж поверьте, я опробовал несколько таких, и это просто беда.

При наличии эффекта присутствия игрок будет демонстрировать естественные реакции и эмоции. На высоком обрыве вы испытаете страх высоты (гарантированно). Если вам бросят виртуальный мяч, вы попытаетесь поймать его. Если нарисованный человек спасёт вас от неминуемой смерти, вы ему улыбнётесь. Я серьёзно!

Эффект присутствия – это сложная и деликатная тема. На данный момент самые интересные его исследования проводит Мэл Слэйтер (Mel Slater). В довольно известной статье он разделят ощущение присутствия на два типа: когнитивное (разум) и персептивное (чувства).

Люди нередко говорят, что чувство присутствия у них вызывают игры, фильмы, книги и даже просто кем-то рассказанная история (как глубоки корни VR!). Это когнитивное присутствие – в иные миры вас переносит воображение.

Персептивное присутствие

Вышеперечисленные способы погружения не подразумевают персептивного присутствия, которое в самом деле реалистично обманывает ваши чувства. Зрение, слух, осязание, обоняние, проприоцепция ( от лат. proprius — «собственный, особенный» и receptor — «принимающий»; от лат. capio, cepi — «принимать, воспринимать»), глубокая чувствительность — ощущение положения частей собственного тела относительно друг друга, далее гугли википедию)… Не забывайте, что человеческое восприятие не идеально: человеческий мозг многое упрощает. Знание этих ограничений – являющееся основой теории VR – позволяет вам создавать персептивные иллюзии, вроде ходьбы в неправильном направлении или пространств с невозможной геометрией.

Как же этого добиться?

Я считаю, самый простой способ добиться эффекта персептивного присутствия – отслеживать движения головы. Поворот головы и поворот камеры в трёхмерном мире – основа для цикла «действие – восприятие».

Значит, вам нужна возможность совершать движения, и эти движения должны отражаться в виртуальном мире. Ваше тело вовлекается в процесс. Как сказал Антонио Дамасио: «Разум заключён в теле, а не в одном лишь мозге».

Минимальная VR-система

Я бы рекомендовал отслеживание движений головы (повороты и смещения), хотя бы одной руки (повороты и смещение) и джойстик с парой кнопок. По личному опыту могу сказать, что такой минимум позволяет переступить определённый порог и мозг принимает другую реальность гораздо проще.

Для меня это значит, что сам по себе OculusRift– это (пока) не минимальная VR-платформа. Ему не хватает полноценного отслеживания головы, а отслеживания рук нет вообще. Я знаю, что всё это можно исправить своими силами, с помощью таких устройств, как Razer Hydra. Но пока у нас нет всеобъемлющей VR-платформы, производители не смогут спокойно полагаться на единый стандарт оборудования.

JavaScript, Three.js и Ориентация на устройство просмотра

Один из способов работы большинства проектов виртуальной реальности на основе браузера — через событие браузера deviceorientation . Это сообщает браузеру, как устройство ориентировано, и позволяет браузеру подобрать устройство, если оно было повернуто или наклонено. Эта функция в перспективе VR позволяет вам определять, когда кто-то смотрит вокруг, и настраивать камеру, чтобы она следила за ним.

Чтобы создать замечательную 3D-сцену в браузере, мы используем JavaScript-инфраструктуру three.js , которая позволяет легко создавать 3D-фигуры и сцены. Это берет большую часть сложности из создания трехмерного опыта и позволяет вам сосредоточиться на том, что вы пытаетесь собрать в вашей сцене.

Я написал две демонстрации здесь в SitePoint, которые используют метод Device Orientation:

  • Внедрение виртуальной реальности в Интернет с помощью Google Cardboard и Three.js
  • Визуализация потока Twitter в VR с Three.js и Node

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

Ключевые компоненты каждого из них включают в себя следующие файлы JavaScript (вы можете получить эти файлы из демонстрационных примеров выше, а также найти их в загруженных примерах three.js ):

  • three.min.js — наш фреймворк three.js
  • DeviceOrientationControls.js — это плагин three.js, который обеспечивает ориентацию устройства, которую мы обсуждали выше. Он двигает нашу камеру, чтобы встретить движения нашего устройства.
  • OrbitControls.js — это резервный контроллер, который позволяет пользователю перемещать камеру с помощью мыши, если у нас нет устройства, которое имеет доступ к событию Ориентация устройства.
  • StereoEffect.js — эффект Three.js, который разделяет экран на стереоскопическое изображение, слегка наклоненное для каждого глаза, как в VR. Это создает реальный разделенный экран виртуальной реальности без необходимости делать что-то сложное.

Ориентация устройства

Код для включения элементов управления Ориентация устройства выглядит так:

function setOrientationControls(e) { if (!e.alpha) { return; } controls = new THREE.DeviceOrientationControls(camera, true); controls.connect(); controls.update(); element.addEventListener(‘click’, fullscreen, false); window.removeEventListener(‘deviceorientation’, setOrientationControls, true); } window.addEventListener(‘deviceorientation’, setOrientationControls, true); function fullscreen() { if (container.requestFullscreen) { container.requestFullscreen(); } else if (container.msRequestFullscreen) { container.msRequestFullscreen(); } else if (container.mozRequestFullScreen) { container.mozRequestFullScreen(); } else if (container.webkitRequestFullscreen) { container.webkitRequestFullscreen(); } }

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

Если он имеет это альфа-значение, то мы создаем элемент управления Ориентация устройства и предоставляем его нашей переменной camera для управления. Мы также установили его, чтобы установить нашу сцену в полноэкранный режим, если пользователь нажимает на экран (мы не хотим смотреть в адресную строку браузера, когда в VR).

Управление орбитой

Если это альфа-значение отсутствует, и у нас нет доступа к событию Device Orientation, этот метод вместо этого предоставляет элемент управления для перемещения камеры, перетаскивая ее мышью. Это выглядит так:

controls = new THREE.OrbitControls(camera, element); controls.target.set( camera.position.x, camera.position.y, camera.position.z ); controls.noPan = true; controls.noZoom = true;

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

Стерео эффект

Чтобы использовать стереоэффект, мы определяем его так:

effect = new THREE.StereoEffect(renderer);

Затем при изменении размера окна мы обновляем его размер:

effect.setSize(width, height);

Внутри каждого requestAnimationFrame мы устанавливаем сцену для рендеринга через наш эффект:

effect.render(scene, camera);

Это основы того, как работает стиль Ориентация устройства для достижения VR. Это может быть эффективно для красивой и простой реализации с Google Cardboard, однако это не так эффективно на Oculus Rift. Следующий подход намного лучше для Rift.

Задержки

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

Джон Кармак (John Carmack) говорит, что «при задержках менее 20 миллисекунд начинается настоящая магия – трёхмерный мир кажется незыблемым!»

Некоторые исследователи и вовсе советуют добиваться задержки менее 4 мс от момента начала движения до вывода необходимого изображения на экран. Для наглядного представления скажу, что при игре с фреймрейтом 60 fps между кадрами проходит 16 мс. Добавьте к этому задержку устройства ввода, которая может варьироваться от нескольких миллисекунд до более 100 мс в случае с Kinect, и задержку дисплея, которая тоже может быть как невысокой, так и более 50 мс у потребительских моделей VR-гарнитур.

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

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

Мы разобрались, что персептивное присутствие – это реалистичный обман органов чувств. Когнитивное – обман разума, но не чувств – истекает из ощущения, что вы можете влиять на виртуальный мир и что события в нём происходят на самом деле. Это означает, что вы должны поверить в «правила» симуляции. Для этого нужно убедиться, что ваш мир будет не столько реалистичным, сколько связным и последовательным. К примеру, непоследовательность может проявляться в том, что игрок может взять со стола один стакан, но не может взять другой. Прерванный эффект когнитивного присутствия восстановить очень сложно. Игрок постоянно вспоминает, что вокруг не настоящий мир, и чтобы он снова показался реальным, потребуется время.

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

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

Вот почему я считаю, что наиболее сильное погружение из всех увиденных мной приложений достигнуто в Verdun 1916-Time Machine. Оно обманывает множество чувств за раз: зрение, обоняние, осязание… Но что самое интересное: для наилучших впечатлений там специально ограничили взаимодействие с миром. Вы можете только крутить головой, поскольку вы – раненый солдат.

Учитывая это жёсткое ограничение, будет очень просто удержать игрока от прерывания присутствия. Вы не можете шевелить руками, так что и сквозь объекты они не провалятся; вас не заставляют двигаться с помощью неестественных нажатий на кнопки. Было не раз замечено, что люди улыбались, когда видели подбегающего на помощь виртуального товарища!

Области применения центров виртуального прототипирования

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

Виртуальное прототипирование и макетирование

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

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

Маркетинг и продажи

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

Совещания и удаленная работа

Рис. 2. Использование виртуального прототипирования в проекте

Рис. 2. Использование виртуального прототипирования в проекте

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

Промышленные компании сейчас активно расширяют штат программистов, так как практически все современные изделия становятся мехатронными. При разработке программного обеспечения активно используется подход Agile (гибкое проектирование). Системы виртуальной реальности и виртуального прототипирования активно используются для совместной работы команды программистов проекта и инженеров, разрабатывающих аппаратную часть (рис. 2).

Измерение присутствия

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

Впрочем, вы можете попробовать оценить, насколько естественны реакции игрока. Мы уже упоминали о некоторых из них – попытка поймать мяч, страх высоты, страх за своё здоровье при угрозе нападения, попытка избежать столкновения…

Советы по VR-играм

На этом закончим с философскими размышлениями и перейдём к практическим советам:

Масштабируйте 1 к 1

Масштаб игрового мира должен быть реальным. Камера должна располагаться на высоте, соответствующей нормальному человеческому росту (если, конечно, вы не хотите играть ребёнком, как в Among the Sleep). Движения головы не должны усиливаться (если вы не используете техники перенаправления).

Самый простой способ добиться реального масштаба: единица длины в виртуальном мире должна соответствовать реальной — 1 виртуальный метр равен 1 метру реальному. Поле зрения должно идеально совпадать с углами обзора вашего дисплея. В идеальном виртуальном мире (или большом промышленном VR-тренажёре) расстояние между глазами должно быть подсчитано с высокой точностью. Мозг будет обрабатывать все эти сигналы; вы можете не добиться эффекта присутствия или он будет нестабильным – к тому же пользователи могут почувствовать тошноту – если строго не следовать этому правилу.

Ознакомьтесь с аппаратным обеспечением

Ознакомьтесь с возможностями отслеживания: позволяет ли устройство отслеживать смещения или только повороты? Способен ли датчик сообщать данные позиционирования и в каких пределах? Какова его точность? Когда данные отслеживания перестают быть полезными? Ознакомьтесь с полем зрения: следуя совету о масштабе, вы не должны искажать виртуальное поле зрения. При узком поле зрения пользователь будет вынужден чаще мотать головой и рискнёт пропустить важные события на периферии. Ознакомьтесь с разрешением: если пользователь должен прочитать текст, придётся размещать его ближе перед глазами. Как и с разработкой под Android, ваша игра в итоге будет запускаться на большом количестве разных устройств. Вскоре нас может ожидать война множества платформ с разными характеристиками. Такие инструменты, как MiddleVR, помогут вам работать с разными VR-системами.

Не меняйте точку обзора

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

Боритесь с плохими привычками

У многих заядлых игроков есть плохие привычки: надев шлем, они будут сидеть ровно, будто перед телевизором. Те же, кто играет редко, сразу начнут оглядываться по сторонам. Игроков нужно отучать от сегодняшних игровых ограничений. В обучающих миссиях нужно мотивировать игрока оглядываться вокруг и двигать руками. Игра должна извлекать из этого пользу. Например, в одном моём недавнем прототипе враги появлялись справа, слева и сверху, и нельзя было двигаться/осматриваться кнопками или мышкой. Чтобы победить, пользователь вынужден поворачивать голову и целиться рукой. В другом моём недавнем прототипе единственным интерактивным объектом была свеча посреди очень тёмного окружения. Отличный способ заставить игрока исследовать местность: он берёт свечу и идёт в темноту, двигая и поджигая некоторые объекты при решении головоломок.

Поддерживайте активность игроков

В том же Heavy Rain вас почти не отрывают от игрового процесса. Есть множество роликов, похожих на неигровые, но тут, вдруг, вам даётся управление. Если в это время у вас в руках нет контроллера, вы не успеете выполнить действие. Это заставляет всегда быть начеку.

Ещё одна интересная особенность Heavy Rain – события происходят в реальном времени, а значит вам нужно думать и действовать быстро: застрелить парня до того, как он убьёт моего товарища? Вас заставляют быстро принимать решения, и, как и в реальной жизни, вы никогда не узнаете, насколько правильными они были.

Придумывайте реалистичные головоломки

Опять пример из Heavy Rain: вам нужно быстро позвонить в одну из комнат гостиницы. Сможете вспомнить её номер за 15 секунд? Как и в жизни, приходится напрягать память, переживая сильный стресс.

И наконец, как можно усерднее работайте над эффектом присутствия

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

Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Понравилась статья? Поделиться с друзьями: