Как Kluge Interactive перенесла Synth Riders на Apple Vision Pro

Synth Riders, иммерсивная ритм-игра, вышла на Steam VR и Meta Quest в 2019 году и с тех пор была портирована на множество устройств, включая Apple Vision Pro. Вот что узнала команда, разрабатывая опыт смешанной реальности для visionOS.
Как студии переосмыслить любимую игру для Apple Vision Pro, сочетая эстетику киберпанка с минималистичным и красочным дизайном Apple?
Поскольку Apple Vision Pro - это новая и развивающаяся платформа, команда Kluge Interactive знала о возможных трудностях, с которыми она столкнется, и понимала, что для достижения успеха ей придется адаптироваться. Основное внимание они уделяли тому, чтобы уложиться в сроки запуска платформы и отшлифовать свою игру до высоких стандартов перед предварительным просмотром в СМИ.
This content is hosted by a third party provider that does not allow video views without acceptance of Targeting Cookies. Please set your cookie preferences for Targeting Cookies to yes if you wish to view videos from these providers.
Подготовка к новому испытанию
"Наша команда всегда была настроена оптимистично по отношению к технологиям. Возможность разработки для Apple Vision Pro появилась как нельзя вовремя, поскольку мы хотели усилить визуальную составляющую Synth Riders и как раз занимались редизайном пользовательского интерфейса игры", - говорит Артуро Перес, исполнительный директор Kluge Interactive.
Любой релиз Synth Riders влечет за собой проблемы, связанные с конкретной платформой. Как только команда согласилась на новый порт или, в данном случае, переосмысление игры для нового носителя, они начали готовиться к работе с оборудованием. За последние полтора года команда выпустила порты для PlayStation VR2 и Meta Quest 3, а затем быстро запустила на Apple Vision Pro.
"Последние 12-18 месяцев разработки игр были посвящены погашению технического долга и приближению наших инструментов к 2022 LTS", - объясняет АннМари Виррел Бартоломеус, технический продюсер компании Kluge Interactive. "Мы уже перешли со встроенного конвейера рендеринга на универсальный конвейер рендеринга (URP) и перешли на бэкенд OpenXR. Это помогло нам оказаться в гораздо более выгодном техническом положении, чтобы работать с новыми технологиями".

Кроме того, они использовали более модульный подход и приложили все усилия, чтобы отделить геймплей от графики и ввода. Когда они начинали новый порт, этот пакет "Core" управлял такими вещами, как загрузка музыки, генерация меню и заполнение интерактивных заметок и рельсов в игре. Это позволило команде сосредоточиться на том, как эти данные будут отображаться на конкретной платформе, чтобы добиться желаемого внешнего вида и ощущения.
Бартоломеус говорит: "Чем больше мы хотели исследовать различные концепции того, что такое Synth Riders, тем более фантастическим было разделение этих частей. Мы использовали Core для продвижения Synth Riders для Apple Vision Pro, и это было очень полезно".
Результаты
- Создали новую, переосмысленную версию своей ритм-игры для первого дня запуска Apple Vision Pro
- Сэкономили на найме целой команды, состоящей из 15+ художников, разработчиков и других специалистов, специализирующихся на конкретной платформе.
- Получил среднюю оценку 4,7/5 на Apple Vision Pro

Разработка отзывчивого пользовательского интерфейса
Когда команда Kluge Interactive начала переделывать пользовательский интерфейс для Apple Vision Pro, они быстро поняли, что Apple предписывает, как нажимать на предметы и как должна выглядеть стандартная кнопка. Поскольку данные трекинга глаз не предоставляются разработчикам напрямую, они приспосабливались и решали проблемы, чтобы создать рабочий пользовательский интерфейс, работающий по всем правилам.
Без доступа к данным отслеживания движения глаз о создании индивидуального решения не могло быть и речи. Для того, чтобы хорошо работать со встроенной системой подсветки Apple Vision Pro, они воссоздали весь пользовательский интерфейс в 3D.
"Стандартный пользовательский интерфейс на основе холста мог бы работать, но мы столкнулись с проблемами, связанными с наложением различных прозрачных слоев", - объясняет Мигель Москера, разработчик из Kluge Interactive. "Основной проблемой была квадратная форма, которая выделяла холст, картину и 2D-элементы. Это было не эстетично, и подсветка не соответствовала объекту". Чтобы избежать этой проблемы, команда перешла на 3D-интерфейс, поскольку для 3D-элементов используется квадратная сетка и альфа-текстура.

Воссоздание пользовательского интерфейса в 3D обеспечило соответствие выделения глаз форме кнопок, но одного этого оказалось недостаточно, чтобы пользовательский интерфейс выглядел естественно на платформе. Эффект подсветки всегда представлял собой мягкое белое свечение по границам силуэта объекта, и дизайнеры меню должны были это учитывать. Например, они отказались от светлых цветов и блочных границ в пользу более мягких градиентов с темными цветами.
Несмотря на то, что для команды был создан отдельный рабочий процесс, они приняли новый процесс и в целом очень довольны результатами. Перес говорит: "Это того стоило. Пользовательский интерфейс намного чище, чем на других устройствах".

Создание эффективных эффектов
Команда попробовала использовать методы Replicate Properties и Bake to Mesh для добавления эффектов Shuriken Unity в свой проект PolySpatial. При использовании опции Replicate Properties свойства системы частиц Unity применяются к собственной системе частиц в Xcode. С помощью метода Bake to Mesh выход системы частиц Unity преобразуется в стандартную сетку. Последняя была значительно более ресурсоемкой, но поддерживала более широкий спектр возможностей, которые невозможно было повторить в родной системе частиц.
Команда считала, что копирование свойств - лучший вариант в целом, но в итоге остановилась на варианте Bake to Mesh. "Траектории частиц были "обязательной" функцией, которую наш 3D-художник очень хотел использовать для создания аудиореактивных визуальных эффектов в игре, а это было невозможно при использовании опции Replicate Properties", - говорит Джастин Допириак, старший разработчик Kluge Interactive.

Опция Bake to Mesh была довольно трудоемкой, а некоторые системы частиц, которые они использовали на экране, были очень накладными. "Мы довели систему до предела, и было интересно попытаться определить, откуда берутся проблемы с производительностью, - продолжает Допирак. "Когда мы нашли и устранили проблемы, то обнаружили, что использование чистых вершин является хорошим решением".
Поскольку им приходилось каждый раз запекать эффект в сетку, количество вершин оказывало гораздо большее влияние, чем на других платформах. Чтобы управлять накладными расходами и оптимизировать экономию ресурсов, они очень тщательно выбирали, что именно разрешить использовать. Общее влияние на точность изображения было незначительным. "Когда мы стали более дисциплинированно подходить к выбору средств и ограничений, мы получили практически идеальный эквивалент", - заключает Допириак.
This content is hosted by a third party provider that does not allow video views without acceptance of Targeting Cookies. Please set your cookie preferences for Targeting Cookies to yes if you wish to view videos from these providers.
Освещение сцены
Для создания шейдеров и освещения команда обратилась к инструментам и документации по Unity PolySpatial. Они обнаружили новые узлы, специально разработанные для visionOS, которые помогали при отсутствии освещения в симуляторе, а также список узлов, показывающий, совместим ли каждый из них с платформой. Это оказалось полезным при преобразовании касательных пространств, управлении зондами отражения и направлениями взгляда, а также при работе с отображением нормалей.
Команда использовала PolySpatial Lighting Node в качестве основного выходного узла и подключила все на свои места. Базовый цвет, обычный, металлик и гладкость остались прежними.
"Он работал как двухпроходный шейдер, потому что на стороне PolySpatial, то есть на стороне Apple Vision Pro, гарнитура добавляла отражения от окружающей среды и освещение, основываясь на обратной связи с камерой", - объясняет Эстебан Менесес, 3D-художник. "Освещение PolySpatial управляло всем, что мы знали о движке, и имело опции для запеченного освещения. Мы обсуждали использование лайтмапов и световых зондов, и оба варианта оказались очень полезными".

Для тестов на размышление у команды был доступ к простым и смешанным вариантам. После этого они подключили все, что поступало от узла освещения PolySpatial, к базовому цвету и эмиссии, чтобы быть в безопасности.
"Есть пассы, в которых используется базовый цвет, и мы не хотели, чтобы он был черным", - продолжает Менесес. "Я добавил модификатор интенсивности, чтобы увеличить значения и получить художественную свободу. Я использовал переменную отражений Apple Vision Pro и отключил окружающую окклюзию в финальном узле, так что мы не видели отражений окружающей среды". Такой контроль над отражением позволил команде четко разделить игру на объекты, которые, казалось бы, находились в комнате вместе с пользователем, и те, которые он видел через портал.

Пробуем следить за руками
Занимаясь переосмыслением игры, команда впервые по-настоящему погрузилась в процесс отслеживания движения рук. Хотя поначалу они сомневались в отсутствии тактильных ощущений, результат им понравился. "Обычно, когда вы держите контроллер, ваша рука заканчивается на запястье, но с отслеживанием рук ваши пальцы становятся важными, и вы можете жестикулировать и взаимодействовать с музыкой по-другому. Это привнесло в игру новое измерение", - говорит Бартоломеус.
Без контроллеров они приспособились к новому способу ввода информации. Им также нужно было заполнить пробел в связи с тактильными ощущениями, которые игрок получает не навязчивым способом. Бартоломеус объясняет: "Мы работали над аудиореактивными эффектами, освещением и различными частицами, которые способствовали установлению связи с песней в зависимости от их действий. Взаимодействие с рельсами было особенно важным".
Команда опиралась на документацию по платформам, чтобы узнать о смещениях скелета в Apple Vision Pro, которых нет в других платформах. Что касается геймплея, то единственной точкой экстраполяции для них стало запястье. Поскольку они выбрали сочетание отслеживания рук для игровых элементов и пространственного тапа для всего остального, они не стали делать пользовательские жесты. "Мы воспользовались тем, что предлагала нам операционная система. Я призываю людей использовать это. Он был очень эффективным", - говорит Бартоломеус.

Рендеринг и оптимизация производительности
Команде также пришлось освоить новый процесс рендеринга. На других платформах созданное обычно рендерилось непосредственно в Unity, но в visionOS появился второй шаг - RealityKit. Одной из главных проблем, с которыми столкнулась команда, было отсутствие Line Renderer- компонента, который берет массив из двух или более точек в 3D-пространстве и рисует между ними прямую линию. Этот компонент стал огромным подспорьем для команды при создании рельсовой системы в других версиях Synth Riders.
"Когда мы столкнулись с этим препятствием, команда Unity PolySpatial оказалась просто находкой для мозгового штурма, - говорит Бартоломеус. "Для рельсов - функции, которая еще не поддерживалась платформой, - они предложили нашему техническому художнику воссоздать ее с нуля с помощью стандартной сетки и смещения вершин, что получилось очень хорошо".

Когда дело дошло до оптимизации производительности, один из главных уроков, который они извлекли, - не делать предположений на основе своего опыта работы с другими платформами. Когда команда прошла через всю игру, тестируя пути оптимизации для ускорения производительности по частям, они обнаружили, что решения, которые уменьшили влияние инстансирования материалов в URP на других платформах, не применимы к Apple Vision Pro. "Как только мы обнаружили эту проблему, мы изменили несколько строк кода. Это было легко исправить, а улучшение было значительным", - говорит Допириак.
Команда также отлаживала производительность с помощью Unity Profiler, Xcode Debugger и функции Play to Device. "Вначале было трудно тестировать и находить проблемы", - объясняет Москера. "Функция Play to Device помогла нам быстрее локализовать проблемы, и без нее работа над проектом заняла бы больше времени".

Переход на новый уровень
С момента своего основания в качестве дизайн-студии в 2007 году Kluge Interactive использует новые технологии и пробует себя в новых сферах. Хотя Synth Riders существует уже пятый год, команда предвидит длинный хвост нового контента, и они намерены активно развивать функции и повышать уровень визуально-музыкальных отношений на Apple Vision Pro.
"Дизайн - это важная часть нашей ДНК, поэтому то, что в этом устройстве и в его ОС было заложено столько замысла, продолжает нас вдохновлять. Я знаю, что мы можем достичь большего, и мне не терпится увидеть, что будет дальше", - говорит Перес.
Сборка для Apple Vision Pro уже сегодня
Обратитесь к нашей команде, чтобы узнать, как мы можем помочь вам использовать мощные инструменты и рабочие процессы Unity для создания захватывающих пространственных впечатлений.
Изучите конкретный пример
Заполните эту форму, чтобы получить доступ к последним историям успеха клиентов.