Квест в реальности с Oculus Rift





Привет, мы завтра запускаем квест в реальности (я уже писал об эскейп-румах) при участии Oculus Rift и хотим рассказать, как это — разрабатывать игру для виртуальной реальности — чем нам пришлось пожертвовать, что получилось, и как тут виртуальность связана с реальностью.

Для тех, кто пропустил предыдущую серию, эскейп-рум — это игра, в которой тебя и твоих друзей запирают в реальном помещении с реальными предметами. Вы ищите подсказки, ключи, решаете головоломки и пытаетесь выбраться за 60 минут. Все настоящее.

Наш квест называется «Киберпанк» и не использовать VR мы не могли. (Ниже спойлеров нет.)




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

Главным вопросом изначально был способ взаимодействия с виртуальной реальностью. Шлем обеспечивает только отслеживание поворотов головы, нажать кнопку или переместиться в пространстве им нельзя. Единственный метод воздействия с помощью шлема — «долго посмотреть на предмет, и тогда что-то случится». Такой способ мы оставили на крайний случай и пошли исследовать более продвинутые варианты.

Ныне популярным способом управления в VR является девайс Razer Hydra. Он состоит из двух джойстиков и базы, полностью отслеживает положение рук в пространстве, плюс кнопки на джойстиках. С помощью Гидры можно двигать руками, брать и перемещать предметы в VR. Однако, мы отказались от нее по причине излишней сложности — на джойстиках очень много кнопок, не будешь же писать инструкцию, какая чем управляет. К тому же, сама конструкция содержит много тоненьких проводов и вообще довольно нежная, вандалоустойчивость минимальна.



Другой, более заманчивый вариант — использование сенсора Microsoft Kinect. Это камера, которая снимает не только изображение, но и «карту глубины», то есть позволяет реконструировать трехмерное пространство. Кинект также умеет восстанавливать движение скелета человека, анализируя 3д картинку, но это работает очень плохо, все дрожит и глючит. Нас интересовали именно сырые данные о глубине.

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



В итоге нам удалось интегрировать Кинект в игру. Игрок мог видеть свои руки и тело, нажимать виртуальные кнопки, а также скроллировать и зумить жестами, аналогичными тач интерфейсу, практически как Тони Старк. Однако открылась неприятная проблема — чтобы все работало должным образом, игрок должен сидеть строго в определенном месте. Иначе, если он сдвинется вперед, то как бы выйдет из своего виртуального тела, увидит свою спину и голову и не сможет ничем управлять. Чтобы решить эту проблему, нужно точно отслеживать положение головы игрока в пространстве. Эта фича будет реализована штатно во второй версии шлема Oculus RIft, а в первой отслеживания положения нет, только повороты. Мы могли бы сделать такой трекинг сами (например, наклеить на шлем светодиоды и анализировать их положение с камеры), но время уже поджимало, и в итоге — увы! — решили отказаться от использования Кинекта.

Мы обошлись только трекингом поворота головы. Времени оставалось уже совсем немного, оставалось реализовать интерфейс «посмотри на нечто долгое время, и оно активируется», так и сделали.

Насчет сценария квеста — основным лейтмотивом было то, чтобы виртуальность была связана с реальностью. Обойтись без спойлеров тут трудно, но скажу лишь, что одевая шлем, человек видит копию комнаты, в которой он находится. Но кое-что все же отличается…

Тестеры говорят, что сносит башню порядочно, но разработчик уверен, что можно в 8 раз лучше. В следующих квестах будем использовать более продвинутые сенсоры. Уже есть идеи на этот счет. Кроме того, в мире уже разработаны костюмы для полного отслеживания тела в VR, и скоро начнут рассылать Oculus Rift 2, в общем перспективы самые радужные.

Ну и разумеется, будем вести дневник разработки на Хабре.

То, что получилось в текущей версии — можете оценить лично (в Санкт-Петербурге).





Источник: habrahabr.ru/post/221517/