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

Далее я расскажу о своем опыте разработки уровней для игры The Climb — аркадного симулятора скалолаза для очков виртуальной реальности Oculus Rift.

Геймплей

Скалолазание в The Climb представляет собой очень простую игровую механику. Игрок ищет взглядом ближайший уступ и, чтобы за него зацепиться, зажимает правый или левый курок на геймпаде (либо контроллере Oculus Touch). Для выполнения прыжка требуется посмотреть в нужном направлении и нажать на определенную кнопку. Игрок не может постоянно прыгать и перебирать руками с большой скоростью, т.к. ему периодически нужно отдыхать.

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

Например, на изображении ниже видно, что до контрольной точки с флагом можно добраться двумя путями: 1. быстрый, но рискованный путь по разрушающимся уступам с использованием прыжка (сверху), 2. безопасный путь по обычным уступам, которые перед использованием необходимо сначала отчистить от мелких камней (снизу). Если игрок делает ошибку на «рискованном» пути, то при падении у него всё еще есть шанс зацепиться за уступы на «безопасном» маршруте.

Еще один пример. На маршруте слева игрок получает преимущество в скоростном восхождении за риск (прыжки по разрушающимся выступам). В то время как путь по правой стороне скалы богат на уступы и точки сохранения.

Навигация

Навигация игрока по уровню осуществляется несколькими способами.

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

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

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

В-третьих, за счет геометрии скалы. Чтобы остановить подъем игрока наверх и заставить его двигаться влево или вправо используется каменный навес (ступеньки наоборот), образующий естественный тупик.

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

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

ЧТО В VR РАБОТАЕТ ПЛОХО

Само по себе движение при скалолазании не является проблемой, т.к. ощущается естественно. Основная проблема — это резкие повороты камеры. Чтобы игрока не мутило от внезапного и грубого движения камеры от одного уступа к другому, в игру добавили автоповорот тела игрока. Что это дало?

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

Возможность контролировать наклон тела позволила дизайнерам (в зависимости от крутости наклона скалы) задавать естественное положение камеры по отношению к рукам на уступах.

Например, для вертикальной стены очень хорошо подойдет наклон тела в 5-15 градусов. А в случае, если мы хотим создать ощущение движения по натянутой веревке или уступам на потолке, то наклон тела должен быть не менее 45-60 градусов.

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

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

Для уступов под сводом арки наклон тела составляет уже около 70 градусов, что позволяет создать ощущение свисания над пропастью только на одних руках.

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

Во время многочисленных плейтестов была замечена еще одна проблема VR, повлиявшая в дальнейшем на планировку уровней. Выяснилось, что автоматический разворот тела на 90 градусов, выполненный на внутреннем стыке двух стен, сразу же вызывает у игрока ощущение дискомфорта. От использования участков с резкими поворотами на внутреннем стыке двух стен было решено полностью отказаться. В результате дизайнеры получили новое правило — планировать движение игрока нужно таким образом, чтобы его маршрут проходил только по внешней (выпуклой) стороне стены.

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

Например, в первой версии моего уровня (изображение слева) перед платформой для сохранения игрок был вынужден выполнить внутренний поворот. Решение проблемы заключалось в изменении маршрута (изображение справа). Игрок забирался на платформу в обход всех участков с внутренними поворотами — не сбоку, а снизу.

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

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

Что в VR работает хорошо

При правильном подходе к проектированию уровней VR позволяет очень остро прочувствовать высоту. Особенно ярко воспринимаются прыжки над пропастью и непродолжительные (3-5 секунд) падения вниз. Именно поэтому все локации игры расположены достаточно высоко над землей, чтобы игрок успел ощутить весь ужас падения в пропасть и не успевал «удариться» об землю до начала загрузки точки сохранения.

Для усиления эффекта высоты было использовано несколько приемов из арсенала дизайнера уровней.

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

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

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

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

Работа со слоями

С технической точки зрения все уровни игры разбиты на отдельные слои. После запуска игра основательно загружается всего один раз. Всё, что происходит дальше — это подгрузка или выгрузка нужных слоев прямо на лету.

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

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

Итого

Разработка игр под VR — это не только потрясающий игровой опыт, но и десятки сопутствующих проблем, которые требуют оригинальных решений. Поэтому, если во время разработки вы не уделите свое внимание проблеме дискомфорта, то игроки навряд ли оценят ваш VR проект по достоинству.

Больше интересной информации о разработке The Climb можно найти в официальном блоге проекта на английском языке. Например, если вас интересует почему было решено отрисовывать только кисти рук, а не все тело, то советую почитать очень любопытную статью посвященную этой проблеме.