Проектирование и анимация милого робота для игрового прототипа
Поль Тюро и Адияр Айдарбеков рассказали о рабочем процессе, который стоял за «Loot 4 Coconut | Robot». Они обсудили, как проект начинался как учебное исследование, а затем превратился в игровой прототип, а также подробно описали, как была смоделирована модель робота и как они использовали плагин Locomotor для его анимации.

Введение
Адияр: Привет! Я Адиyar, специалист по визуальным эффектам в реальном времени и технический художник из Казахстана, живу в Хельсинки, Финляндия. Мой путь начался в 2018 году с 3D-моделирования, что случайно привело меня к SideFX Houdini и симуляциям, огню, песку и воде. Открытие Unreal Engine полностью переключило моё внимание на VFX в реальном времени, что идеально совпало с моим игровым прошлым.
В 2019 году я начал работать младшим художником по визуальным эффектам в мобильных играх в студии в Санкт-Петербурге, и с тех пор переходил из студии в студию, в конце концов переехав в Финляндию и внося свой вклад в Overwatch 2 в составе местной команды разработчиков-партнёров. Этот опыт познакомил меня со многими талантливыми профессионалами, включая Пола, с которым я до сих пор поддерживаю связь.
Пол: Привет! Я Пол, французский 3D-художник для игр и анимации, живу в Финляндии. Я работаю цифровым художником более 10 лет, но в 3D и игровом искусстве я начал работать всего несколько лет назад. До этого я руководил небольшой продюсерской командой, создавая музыкальные клипы и визуалы для хэви-метал групп.
Когда в 2020 году началась пандемия, музыкальная индустрия почти остановилась в одночасье: я воспринял это как возможность сменить карьеру и научиться работать в 3D. С тех пор я работаю в играх и анимации как концепт-художник и 3D-художник. Одним из ярких моментов стало участие в Overwatch 2 в качестве концепт-художника в составе команды разработчиков-партнёров (именно там мы с Адиyar и встретились).
Вдохновение
Пол: Изначально это было просто небольшое портфолио в 3D для меня, основанное на потрясающей концепции робота в стиле Гауди от Саши Тудвасевой.

После короткого разговора с Адиyar появилось много возможностей для геймплея, и необходимость того, чтобы робот ходил, стала очевидной! Желание работать над этим проектом вместе переросло во что-то большее: конечно, создание полноценной игры здесь было не вариант, поэтому мы решили использовать этот проект в качестве тренировочной площадки для разработки вертикального среза.


Нам обоим понравилась идея современного подхода к платформерам в стиле 2000-х годов (Super Mario Sunshine, Spyro, Ape Escape и т. д.). Глупость передвижения робота в сочетании с яркой тропической эстетикой 2000-х годов казалась идеальным сочетанием!

Моделирование и текстурирование робота
Пол: Робот был полностью смоделирован в Blender с использованием Sub-D и с интенсивным использованием floaters. Ещё работая с командой Overwatch, я познакомился с их рабочим процессом, включая широкое использование floaters. Мне лично понравился этот подход, и с тех пор я ни разу не оглядывался назад!

Если вы никогда раньше не слышали об этом термине, «floaters» — это просто элементы геометрии, плавающие над вашими основными сетками, что позволяет работать над детализацией менее деструктивным способом. Все детали затем переносятся в карты нормалей/полостей/кривизны/AO и т. д. Хотя это не идеально подходит для реалистичных анимационных моделей, требующих гораздо больше геометрии и точности, для игровых ассетов это беспроигрышный вариант.
Такой подход отлично работает для облицовки, винтов, технических деталей и т. д., но его можно использовать и по-другому! У робота их несколько сотен:
Я склонен отдавать предпочтение неразрушающим рабочим процессам, и использование Blender для моделирования твёрдых поверхностей действительно поддерживает это, особенно с добавлением инструментов на основе geo-node.
Например, я в значительной степени полагался на набор инструментов normalMagic для переноса нормалей, а также на Edge Adjust для поддержания чистых краёв и фасок и на несколько инструментов, которые я сделал, например, Normal Welder.
Пример того, как normalMagic «Smooth Normals» упростил мне жизнь: полусферы и купола всегда вызывают уродливые защемления (да, даже с квадами/кубами Sub-D). Так что теперь я просто нагло использую простую сферу с полюсными крышками и сглаживаю её грубой силой.
Ретушь топологии была выполнена в Blender вместе с TopoGun. Одно из самых больших преимуществ работы с floaters заключается в том, что основные высокополигональные сетки остаются чистыми и относительно простыми, что делает их гораздо лучшей основой для построения низкополигональных моделей. В результате эта часть процесса обычно проходит у меня довольно быстро.
Текстурирование было почти полностью выполнено в Substance 3D Painter.
Помимо самого текстурирования, Substance 3D оказался очень удобен для быстрого создания RGB альфа-масок для управления параметрами в шейдерах Unreal. Например, чтобы отдельно настроить значения/цвета Френеля на материалах персонажа или управлять различными состояниями персонажа (стандартное состояние и перегрев и т. д.).
Перемещение и VFX
Adiyar: Для перемещения мы использовали плагин «Locomotor» из Unreal Engine, чтобы сделать движение робота. У него много переменных для работы. Вот небольшой пример плагина «Locomotor» и его возможностей, а также настройки в игре:
Благодаря плагину, для всей настройки потребовалось два основных узла: сам Locomotor и FullBodyIK, чтобы заставить его двигаться:

Поскольку у нас было 4 ноги с одинаковым поведением, имело смысл сгруппировать кости по типам в массивы и установить ограничения IK для каждого массива, а не перебирать их все каждый раз:

Что касается VFX, основной системой Niagara являются «Smoke Puffs», которая должна динамически отображать состояние топлива. На вход она получает только нормализованное значение топлива от персонажа. Также система Niagara может создавать метазвуки, поэтому было удобно просто создавать звук внутри и синхронизировать его с дымными подушками. Пример:
Пол сделал запускаемые состояния для метазвука двигателя, который также получает на вход только значение FuelValue:
Помимо этого, существует задача настройки геймплея, чтобы игра работала, обрабатывала ввод, перемещение персонажа/камеры, взаимодействие с кокосами, логику топлива с пользовательским интерфейсом и т. д. Основной полезной функцией в проекте оказалась механика, управляемая системой способностей геймплея (GAS).
По сути, с GAS всё обрабатывается через теги, и если тег/атрибут был назначен/удалён или изменён, актёры могут обрабатывать другую логику. Геймплейные состояния здоровья:


Заключение
Adiyar: Не ограничивайте себя своей специальностью. Узнайте всё, что только сможете. Это открывает творческие решения, которые вы никогда бы не нашли, оставаясь в своей зоне. Продолжайте создавать свои собственные вещи. Ненавидите своё ремесло? Дело не в инструменте, а в рутине. Вытащи эту глупую идею из своего мысленного бэклога и просто начни делать её. И не делайте это в одиночку. Совместный выгорание — это половина выгорания. Сработайтесь в команде, и вы выйдете более мотивированными и способными, чем когда начинали, по крайней мере, вы поделитесь опытом и узнаете что-то новое от товарищей по команде.
Пол: Начинайте с малого и сохраняйте любознательность! Присоединяйтесь к сообществам Discord, делитесь своей работой в сети и будьте открыты к обратной связи от более опытных художников. Обратная связь — это хорошо: даже ветеранам нужна вторая пара глаз. Что ещё более важно, будьте добры к себе и продолжайте идти, даже когда результат не такой, как вы надеялись: второе блин всегда получается лучше, чем первое.
Разбивка проекта:
Adiyar Aidarbekov:
- X/Twitter.
- ArtStation.
- .
Paul Thureau:
- X/Twitter.
- ArtStation.
- .
Sasha Tudvaseva:
Поль Тюро и Адияр Айдарбеков, 3D-художники игр
Интервью проведено Глорией Левин
Автор: Paul Thureau and Adiyar Aidarbekov