Как Kluge Interactive улучшила распознавание жестов VR в FINAL FURY

Kluge Interactive разрабатывает погружающие игры с 2008 года. Их флагманский проект, Synth Riders, ритм-игра в VR, вышел в 2018 году, и команда провела последние семь лет, выпуская стабильный поток музыкальных пакетов. Эти развлекательные обновления контента подняли интеллектуальную собственность на уровень A-листовых музыкантов и национальных спортивных событий.
У команды нет планов замедляться. Они объединили свой опыт в VR и страсть к файтингам, чтобы создать FINAL FURY. Название мультиплеер сочетает в себе классическую механику файтингов с реальными боями. Игроки делают каждый удар значимым, либо сражаясь в одиночку, либо бросая вызов лучшим в галактике.
Мы поговорили с Робом Альваресом, продюсером FINAL FURY, и Дэвидом Монтесдеокой, ведущим программистом игры, чтобы обсудить, как команда гармонизирует погружение и скорость, чтобы создать файтинг в VR нового уровня.
Как бы вы описали FINAL FURY?
Роб Альварес: Концепция FINAL FURY родилась из глубокой любви к классическим аркадным файтингам, переосмысленным через призму современных технологий VR. С самого начала мы постоянно задавали себе один основной вопрос: “Как мы можем сделать каждое действие, от ударов до уклонений, максимально реальным и ощутимым?”
Превращение этого видения в полностью играбельный опыт столкнулось с рядом проблем, особенно в нахождении правильного баланса между погружающей природой VR и интенсивными, быстрыми боями, которые определяют жанр. Сначала было нелегко адаптировать эти механики к VR, но через постоянные итерации мы в конечном итоге нашли золотую середину.

Как уникальная камера игры увеличивает погружение в игровой процесс?
Дэвид Монтесдеока: FINAL FURY использует модульную многокамерную систему, разработанную специально для поддержки погружения в различных игровых состояниях, перспективах и опыте игроков.
Мы поддерживаем несколько типов камер: от первого лица, от третьего лица, зрительская, 2D и камера «Вне тела», используемая во время кинематографических моментов, таких как захваты или ситуации, когда игрок не контролирует действия. Вместо того чтобы рассматривать их как изолированные системы, мы создали единый сервис камер, который управляет ими как единой логической сущностью или как отдельными камерами, когда требуются специфические эффекты.
Вот как это работает:
- Каждая камера управляется общей системой событий, но может выбирать, реагировать ли на события и как именно. Например, когда происходит захват, камеры от первого лица и «Вне тела» могут активировать эффекты, но по-разному.
- Система основана на данных и обладает высокой масштабируемостью. Мы можем добавлять новое поведение камер, не влияя на другие системы и не требуя специальной логики.
- Мы разделили мир на три основных визуальных слоя: HMD, 3rdPerson и HMDAnd3rd. Это позволяет нам контролировать видимость, изменяя слои объектов во время выполнения, и позволяет некоторым элементам появляться только в видах от первого лица, оставаясь скрытыми от третьего лица или кинематографических перспектив.
С этой настройкой мы можем сбалансировать агентство игрока в VR (наносить удары и выполнять жесты и способности с точки зрения от первого лица) с более кинематографическими моментами, которые более удовлетворительны при просмотре снаружи.

Почему так важно было усовершенствовать боевые жесты?
Роб: Боевые жесты являются основой погружающего боевого опыта, который мы хотим предоставить. Хотя FINAL FURY является любовным письмом ко всему, что мы любим в классических аркадных боевых играх, это также вызов заставить игроков потеть и чувствовать себя так, будто они находятся на арене и ведут бой.

Как команда реализовала систему управления на основе жестов?
Дэвид: Распознавание жестов было одним из самых технически и творчески сложных аспектов дизайна FINAL FURY. Наша цель всегда заключалась в том, чтобы игроки чувствовали себя бойцом, а не просто человеком, управляющим им.
Ключевые элементы нашей системы:
- Отслеживание ввода: В основе мы создали легкую систему, которая постоянно отслеживает положение и ориентацию каждой руки относительно центральной опорной точки. Она обычно расположена на голове игрока (центр масс). Это помогает нам нормализовать ввод, минимизируя движение головы или ориентацию тела как переменные, которые могут повлиять на точность распознавания жестов.
- Утилиты жестов: Мы используем набор низкоуровневых математических утилит для обнаружения таких паттернов, как "Двигается ли рука вперед?" или "Находится ли рука с левой стороны зоны обнаружения?"
- Система ActionTrigger: Мы определяем сложные жесты через то, что мы называем ActionTriggers. Каждый ActionTrigger слушает конкретные последовательности жестов, используя наши утилиты.
- Процесс обнаружения включает в себя систему состояний с тремя возможными состояниями:
- Неудача: Ввод не соответствует требованиям
- Частично: Жест, похоже, начинает выполняться правильно
- Полностью: Жест был успешно выполнен
Частичное состояние очень важно, так как оно помогает нам приоритизировать жесты в зависимости от контекста, предоставлять игроку обратную связь в реальном времени, чтобы он знал, что движется в правильном направлении, и сигнализировать намерения противникам.
Вот пример того, как работает наш "Жест захвата":
- Система проверяет, что обе руки находятся далеко друг от друга и симметрично расположены по обе стороны от центра масс. Это вызывает Частичное состояние ("начало захвата")
- Если игрок быстро сводит руки вместе, жест завершается, и действие выполняется.
- Если движение слишком медленное или непоследовательное, система переходит в состояние Ошибки, и жест отменяется.
Этот подход позволил нам объединить плавный ввод с точными действиями, и мы продолжаем его дорабатывать на основе отзывов сообщества.

Как Unity попала в дело?
Роб: Честно говоря, это даже не было вопросом с нашей стороны. Наши команды используют Unity уже много лет для Synth Riders, и это был отличный опыт. Это дает нам возможность бесшовно работать на разных платформах.
Движок позволяет нам объединять широкий спектр инструментов и систем, чтобы создать что-то динамичное и отзывчивое, когда мы строим FINAL FURY. В результате мы можем довольно быстро итеративно работать, что для нас очень волнительно. Это дает нам гибкость тестировать новые игровые концепции с минимальным стрессом.
Экосистема плагинов Unity была большим преимуществом. Инструменты, такие как NodeCanvas, были бесценны для создания сложных ИИ-поведенческих моделей в визуальном и модульном формате. Мы также используем поддержку OpenXR от Unity, и интеграция оказалась удивительно гладкой. Это практически подключи и работай, что сделало разработку VR гораздо менее болезненной, чем ожидалось.
Встроенная поддержка PlasticSCM в Unity помогла нам найти правильный баланс между простотой и мощью, необходимой для управления кодовой базой нашего проекта.

Команда привлекла профессионального игрока Джастина Вонга в качестве консультанта для игры. Каково его участие?
Роб: Мы очень публично обсуждали нашу необходимость изменить подходы, поскольку начальная разработка FINAL FURY изменилась. Мы углубляемся в это в нашем первом FINAL FURY блоге. По мере углубления в процесс, мы хотели убедиться, что находимся не только на правильном пути, но и можем еще более точно настроить вещи. Помимо того, чтобы поставить игрока на место бойца, мы хотели понять, что делает хорошую конкурентоспособную боевую игру. Поэтому было логично обратиться к Джастину за его мнением.
В нескольких игровых сессиях мы заходили в игру с Джастином, показывали наши дизайны и проводили несколько матчей. Его отзывы о балансе и механике боя были действительно ценными. Обычно они касались областей, которые мог бы поднять только эксперт в боевых играх. На самом деле, он помог нам увидеть вещи, которые мы иначе не заметили, и его участие сделало некоторые механики игры гораздо лучше. Также, я должен признаться, он победил нас в нашей собственной игре.
Что дальше для FINAL FURY?
Роб: У нас большие планы по тому, что мы собираемся добавить в игру во время раннего доступа. Команда FINAL FURY продолжает исследовать новые идеи и улучшения, продвигая игровой процесс с каждым обновлением. Новые бойцы, новые арены, новые движения добавлены для всех бойцов – это только начало. Некоторые из них уже строятся, другие функции будут зависеть от игроков.
Наша команда разработчиков планирует присоединиться к боям, слушать, что говорят игроки, и продолжать улучшать игру. Метод «выпустить→играть→слушать→улучшать» – это то, как мы выпустили Synth Riders в 2018 году, и это сработало очень хорошо для нас.
Наша амбиция – стать основным ориентиром для аркадных боевых игр в виртуальной реальности, и с преданностью нашей команды мы уверены, что можем сделать это реальностью.
Чтобы узнать больше о проектах, сделанных с помощью Unity, посетите страницу ресурсов Unity.
