15/04/2019

Создание реалистичного ремонта авто в VR-симуляторе

Опытный игровой художник и увлеченный автомеханик-любитель Алек Муди направил свои уникальные знания и умения на создание Wrench — игры для виртуальной реальности, посвященной починке автомобилей. Свой проект он начинал в одиночку и без значимого опыта программирования, так что быстро обнаружил, что визуальная система скриптования — блюпринты Unreal Engine — отлично подходит для создания основ игры. Wrench привлекла к себе внимание с самого начала своей истории и даже стала лауреатом программы NVIDIA Edge.

В настоящее время игра находится в раннем доступе и собирает восторженные отзывы, подтверждающиеся рейтингом "очень положительные". Wrench эволюционирует, и сейчас ее разработкой занимаются уже два человека — студия Missing Digit. С 13 марта игра доступна в Oculus Store. Нам выпал шанс пообщаться с создателем игры Алеком Муди и программистом Джимом Эшкрафтом. В получившемся интервью затрагиваются темы реализма и обучающей функции Wrench, а также того, как авторам удалось сделать модели и графику настолько невероятными, в тоже время не забывая про производительность.

Спасибо за уделенное время. Насколько много игроки Wrench смогут узнать об устройстве автомобилей?

Основатель и художник Алек Муди: В своем нынешнем состоянии Wrench достаточно подробно воспроизводит внутреннее устройство машины. У нас есть двигатель, подвеска и тормозная система, которые требуют внимания игрока. В дальнейшем таких систем станет больше. Игроки, у которых нет опыта обслуживания автомобилей, смогут начать с несложных операций (замена жидкости, колес и т.п.) и со временем досконально во всем разобраться. Созданные нами режимы игры разработаны со следующим расчетом: если кто-то будет играть достаточно долго и сможет спокойно заменить двигатель в игре, то и в жизни он будет без проблем разбираться в инструкциях и выполнять стандартные операции со своим реальным транспортом.

Какие цели вы ставили перед собой в дизайне Wrench?

Муди: Я всем сердцем поддерживаю закон о праве на ремонт и стараюсь поощрять людей, которые предпочитают ремонтировать, а не менять свое имущество. Одна из моих надежд, которые я связываю с Wrench, заключается в том, что игра поможет развеять мистическую ауру вокруг машин и привьет людям практические навыки по их обслуживанию. Я предполагаю, что наши клиенты — чаще всего люди, заинтересованные в устройстве автомобилей, однако опасающиеся экспериментировать. А может их жилищные условия просто не позволяют обзавестись пространством для ремонта и размещения инструментов. Wrench позволяет комфортно начать обучение. Стремление позволить людям учиться в игре стало залогом множества дизайнерских решений.

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


К тому же мы понимаем, что Wrench — все-таки игра, а не полноценный образовательный проект. Следовательно, мы предоставляем игрокам способы "просто повеселиться", чего сложно было бы ждать от чисто образовательной программы. Например, это могут быть пасхалки, мини-игры, игрушки, представленные в проекте.

Что сподвигло вас на создание концепции игры?

Муди: Мне очень нравится виртуальная реальность, и я долгие годы хотел создать собственную игру. Как-то я сканировал автомобильные детали для сторонних проектов и задумался, что неплохо было бы иметь возможность взаимодействовать с целой машиной в виртуальной реальности. Симулятор ремонта хорошо подходил к концепции VR, поскольку местоположение в пространстве и то, как объекты сочетаются друг с другом — это краеугольные камни виртуальной реальности. А еще я хотел создать проект, который объединил бы мою работу и хобби. Я долгие годы рисовал объекты для игр, у меня богатый опыт работы с механизмами, знания фотографии. Все это помогало в сканировании [компонентов]. Я умею создавать основные элементы из металла, что в свою очередь необходимо для воссоздания более сложных элементов. Как-то мне пришло в голову, что далеко не каждый художник игровой индустрии обладает таким набором, казалось бы, несвязанных навыков. Я воспринял это как знак двигаться дальше.

Была ли для вас была важна образовательная функция Wrench?

Муди: Да, определенно. Я хочу, чтобы пользователи научились с помощью игры чему-то новому. Мы потратили много сил, чтобы не упрощать машину. Когда я разговариваю о Wrench с автолюбителями, часто описываю игру как нелинейное руководство по ремонту, которое позволит разобраться во всех нюансах. Вместо того, чтобы читать оглавление, искать нужную главу и нужный параграф, игрок может просто сфокусироваться на той части, которая для него сейчас интересна, и увидит все соответствующие диаграммы, сможет прочитать инструкции. Процесс сборки детализирован настолько, что этот опыт действительно можно применять в реальной жизни. Например, крепежные детали полностью соответствуют характеристикам вращающегося момента и т.д. По мере расширения игры мы получим возможность погрузиться в изучение каждой подсистемы автомобиля и реализовать уникальное поведение каждой детали.

Модели машин и отдельных деталей выглядят невероятно реалистично. Как вам удалось настолько точно воплотить объекты в игре?

Муди: Создание графики — это всегда сложно. С этим нужно было разобраться до того, как я начал посвящать Wrench все свое время. В подобных играх невероятно важная точность расположения в пространстве. Обычно, когда для игры или фильма моделируется машина, она лишь снаружи выглядит достоверно. Ее детали на самом деле не подходят друг к другу, а пропорции могут искажаться без каких-либо последствий. В такой игре как наша все должно идеально соответствовать друг другу. Дабы решить эту проблему, больше половины геометрии высокого разрешения у нас — данные сканирования. Остальное — чистые модели и объекты Zbrush. Вещи, которые я моделирую с нуля, сначала тщательно измеряю циркулем или сканирую, чтобы точно передать габариты. Уверенность в том, что размеры всех деталей абсолютно точны, позволяет мне пропустить фазу блокаута и сразу работать с каждой частью как отдельным элементом. Я стараюсь относиться в каждому объекту в игре, как к декорации для крупного плана. Даже к таким обыденные вещам, как крепления. Большая часть материалов сразу создается в высоком разрешении. Низкокачественные модели переделываются с нуля, а материалы создаются в Substance Painter.

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

Муди: Наш проект совершенно неординарный, поэтому мы не использовали никакие из рекомендуемых рецептов работы с VR. Большинство VR-игр — статичные миры с набором динамических актеров. А Wrench — это маленькая статическая комната, в которой около 1000 подвижных актеров. Природа нашего проекта делает крайне важными динамические тени, алгоритмы перекрывания отражений и окружающий свет. По большому счету, собранный автомобиль — множество темных, блестящих подвижных актеров, втиснутых в затененное пространство. Такие объекты очень легко начинают выглядеть так, будто они светятся. Мы используем отложенный рендеринг путем Early Z Pass. Благодаря этому количество вызовов отрисовки и треугольников снижается вдвое. Сглаживание Temporal AA позволяет использовать SSAO с выставленными максимальными настройками без опасности заполнения пространства шумом в VR. Для динамических теней мы используем один каскад супервысокого разрешения. Также мы используем полноэкранные отражения для обеспечения окклюзии отражения. У игроков с более слабыми машинами фокус сместится на вызовы отрисовки и треугольники. Для таких пользователей отключение динамических теней даст заметную разницу.

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

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

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

Сложно ли делать игру и для виртуальной реальности, и для стандартных мониторов?

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

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

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

Как вы оцениваете UE4 в качестве технологии для виртуальной реальности?

Эшкрафт: UE4 — отличный фундамент для создания VR-игры. Доступные шаблоны проектов отлично подходят для тех, кто только начинается свой путь в VR-разработке. Со временем я осознал, что интерфейс для взаимодействия кода игры и "входящих команд" VR на самом деле очень интуитивный... Кроме того, у UE4 примечательные возможности физически обоснованного рендеринга. В сочетании с невероятно детализированными элементами, созданными Алеком, подобное качество рендеринга обеспечивает то, что наша игра великолепно выглядит в VR. Из соображений производительности мы пытаемся извлечь выгоду из любой функции, но в то же время ценим и визуальные достижения.

Можете ли вы выделить какой-то один особенно полезных инструментарий UE4?

Муди: Для меня это определенно блюпринты. Благодаря им я смог создать прототип, сделать экспозицию и запустить кампанию по сбору средств. Такие возможности для непрограммиста — просто фантастика. Помимо этого удивителен факт, что Epic Games и сама использует Unreal Engine для создания новых игр. Все возможности подходят друг к другу практически идеально. К тому же можно быть практически уверенным, что с почти любыми проблемами и сложностями до тебя кто-то уже столкнулся. Нам не пришлось использовать какой-то сторонний функционал. Не считая одной небольшой надстройки, мы пользовались чистой сборкой Unreal.

Учитывая, что в настоящее время Wrench находится в программе раннего доступа, какие обновления и улучшения запланированы для игры?

Муди: У нас большие планы. Во-первых, мы хотим сделать игру более доступной. Хотим сделать режим обычной игры для тех, кто не хочет погружаться в сложные взаимодействия, без ущерба визуальной проработке. После того, как реализуем задуманное, сможем усложнить стандартный режим. Сделаем взаимодействие деталей еще более реалистичным, добавим новые элементы, например, силиконовые прокладки и измерение допусков двигателя, а также предложим игрокам новые варианты действий, например, тюнинг интерфейса и выравнивание/настройку автомобиля. Последний вектор развития — пополнение библиотеки материалов. Больше деталей, больше трансмиссий, огромный выбор запчастей, с помощью которых игроки смогут собрать автомобиль в соответствии с собственными пожеланиями.

Оригинальный материал в блоге unrealengine.com

Recent Posts

Создание ассетов с твердой поверхностью в реальном времени с помощью UE4

18/06/2019
Разработка ассета с твердой поверхностью с использованием трассировки лучей: методы, материалы и параметры расчета освещения.

Wargaming Nexus — партнер конкурса от Epic Games и Disgusting Men

17/06/2019
Победитель специальной номинации Multiplayer PvP Competitive получит контракт на прототипирование до $100,000.

Сommandlets: разработка и применение

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