Создание 3D-сцены гавани, нарисованной вручную, с учётом игрового процесса
Костя Перри подробно рассказал о проекте Билгвотер, объяснив, как он превратил двухмерную иллюстрацию в трёхмерную, добавил индивидуальности окружению и обсудил используемые при этом нестандартные решения.

Введение
Привет, я Костя Перри, также известный как Tarmunds online. Я художник по 3D-окружению и техническим аспектам, живу во Франции. В начале своего творческого пути я очень хотел стать концепт-художником. Поэтому я много учился для этого и влюбился в цифровую живопись, которая до сих пор влияет на меня.
Я поступил в школу Artside с целью стать концепт-художником, и именно тогда я обнаружил, что можно рисовать в 3D. Это совершенно потрясло меня. Позже, когда я открыл для себя Unreal и возможность взаимодействовать с вашим миром, нажав одну кнопку, я понял, что это то, чем я хочу заниматься в жизни. Я глубоко погрузился в искусство создания окружения, уделяя особое внимание стилизованным, нарисованным от руки и специфическим для Unreal Engine рабочим процессам.
По мере продвижения по своему пути я хотел ещё больше повысить визуальное качество и интерактивность внутри Unreal, что привело меня на технический путь. Именно тогда я начал изучать шейдеры, инструменты и создание конвейеров. Вниз, в кроличью нору технологий!





Проект Билгоуотер
Впервые я влюбился в потрясающую концепцию Грейс Лю, которая действительно нашла отклик во мне как у огромного поклонника пиратских вселенных. Моя главная цель состояла в том, чтобы перевести ощущение, которое я испытывал от Билгоуотера, в 3D. Не основываясь на лоре или других изображениях, а чисто из видения, которое было у меня в голове.

Для достижения этой цели я выбрал нарисованный от руки рабочий процесс PBR. Это позволило мне сохранить живописность, включив динамическое освещение и интересные значения металлика и шероховатости. У меня был некоторый предыдущий опыт работы с рабочими процессами, похожими на Wayfinder, но я не хотел того же резкого и «хрустящего» вида. Я стремился к более мягкому, плавному затенению, которое улучшило бы живописную эстетику.
Я также был глубоко вдохновлён работой Airship Syndicate над Ruined King, особенно их концепт-артом. Что касается ссылок, моя доска PureRef была не очень широкой. Она включала в себя несколько ссылок на картины и работы, связанные с искусством Грейс Лю, а также концепт-арт от Виргилии Кричфилд и Балди Конин, созданные для Ruined King.

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

Что касается столбов, то скульптурирована только их крышка. Для цилиндрической части используется второй канал UV для укладки текстур, смешанный с запечённой крышкой через цвет вершин. Параметры UV отображаются через пользовательские примитивные данные, поэтому я могу варьировать масштаб и повторение для каждого экземпляра и свободно регулировать высоту столба. Чтобы заполнить гавань, я создал инструмент сплайн-сети для размещения верёвок с открытыми параметрами для управления анимацией качания, ориентацией, смещением и точкой поворота непосредственно из Blueprint.
Для ткани я использовал узор шума через WPO, используя запечённый цвет вершин. Настройка флага была более интересной: я вращал их вокруг их шарниров, используя синусоидальные волны, и возмущал их нормали с помощью того же узора, чтобы усилить эффект взмаха.
Большинство мелких ассетов были созданы методом китбашинга. Чтобы справиться с этим эффективно, я создал шейдер, который позволил мне переключаться между разными наборами с помощью альфа-цвета вершин. Например, альфа = 0 для запечённых карт, 0,25 для металлического набора, 0,5 для деревянного набора и т. д. Применение этих наборов было непосредственно выполнено в программе для работы с 3D-графикой. Это позволяет сократить количество вызовов отрисовки на слоты материалов, поскольку для китбашенного ассета используется только один материал.
Например, столб, на котором держится фонарь, использует листы отделки из металлического набора в дополнение к частям из деревянных наборов, и всё это в рамках одного шейдера, чтобы минимизировать вызовы отрисовки. Сам фонарь использует только металлический набор.
Эти приёмы в сочетании с надёжным модульным набором помогли мне сохранить эффективность и ускорить рабочий процесс.
Ретушь топологии
Большинство ассетов были низкополигональными, а затем очищены в Blender. Это позволило мне сэкономить время на ретопологии, сосредоточившись на UV-развёртке и запекании, чтобы всё выглядело хорошо в движке. Поскольку это проект сверху вниз, ограниченное вращение камеры позволило мне воспользоваться преимуществами детализации без таких недостатков, как перерисовка или проблемы с глубиной.
Для частей модульного набора, которые были согнуты и деформированы впоследствии для китбашинга, я предпочёл ручную ретопологию, чтобы обеспечить более чистые деформации.

Все мои сетки имели чистые UV-координаты, чтобы минимизировать артефакты запекания и ошибки в движке, даже если они были основаны на детализированных моделях. Я использовал смесь пользовательских инструментов, которые сделал для себя, и дополнения Mio3 UV в Blender. Чтобы ускорить процесс, я создал дополнение, которое позволяет мне «запекать одним кликом» из Blender в Marmoset. Это сделало процесс запекания и итераций плавным и быстрым. Я поделился им бесплатно здесь.
Текстурирование
Для создания нарисованных вручную текстур нет никакого секрета; я рисовал их вручную. После запекания моих карт я сразу же перешёл в Photoshop, чтобы создать базовый цвет, используя запечённые карты. Оттуда я делал раскраску, чтобы добавить цветовые вариации, детали и жизнь материалам. Я также привык вручную редактировать карты нормалей, чтобы они соответствовали моей покраске. Например, если я рисую новые трещины на альбедо, я напрямую корректирую свою карту нормалей.
В Unreal я настроил специальный шейдер, который усиливает альбедо, сохраняя при этом динамическое освещение. Я также переназначил значения теней, чтобы они выглядели ярче, что помогло уменьшить темноту и вернуть нарисованный вид всей сцене.


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


Одним из приёмов, которые я добавил для усиления ощущения живописи, был рекламный щит-перелистывание на фонарях. Они создавали светящуюся ауру для каждого источника света и помогали объединить нарисованную эстетику с динамическим освещением.
Инструменты
В этом проекте я реализовал различные технические решения, чтобы ускорить рабочий процесс и повысить производительность. Вот несколько из них:
Инструмент «Верёвка»
Чтобы легко заполнить окружение гавани, я создал инструмент для создания сплайновой сетки, чтобы расставить верёвки. Хотя это не самый продвинутый инструмент, я добавил функциональность для передачи данных Blueprint через материалы, что позволило мне управлять тонкой анимацией раскачивания. В этих открытых параметрах я мог настроить ориентацию раскачивания, смещение, точку поворота и маскировку. В итоге это дало мне большой контроль над тем, как верёвки были разбросаны и анимированы по сцене.
В том же направлении, что и система верёвок, я также добавил возможность включать простые анимации прямо из основного шейдера, управляемые параметрами шейдера. Например, у знака есть более сложная анимация раскачивания. Для изгиба цепи использовался вершинный цвет, в то время как сам знак остаётся жёстким. Такие параметры, как положение оси вращения и угол, регулируются. Я также позаботился о том, чтобы нормали вращались вместе с сеткой, чтобы сохранить правильное затенение во время анимации.
VATs (Vertex Animation Textures)
Учитывая большое количество чаек на сцене, я захотел протестировать VATs для оптимизации анимации. Сначала я попробовал это на удочке, чтобы оживить её. Затем я запек две анимации, которые сделал для чаек: одна для отдыха, другая для полёта. Эти анимации переключаются с помощью одного значения с плавающей запятой, что позволяет мне управлять поведением птиц через Blueprint. Это помогло снизить затраты времени выполнения, сохраняя динамику сцены.
Деревянные столбы
Для деревянных столбов я использовал простую, но эффективную технику, где скульптурируется только верхняя часть. Для «цилиндрической» части столба используется второй UV-канал для наложения текстур (первый UV используется для запечённых деталей). Переход между запечённой скульптурой и текстурированием обрабатывается через смешивание цветов вершин, которое я могу регулировать для каждого экземпляра, если это необходимо. Я также выставил параметры UV для текстурирования через Custom Primitive Data, что позволяет мне варьировать масштаб и повторение для каждого столба. Эта техника позволила мне легко регулировать высоту столбов и сосредоточить художественные детали там, где это наиболее важно — на верхушках и текстурируемых участках.
Шейдер и система воды
Для моря я запек симуляцию воды в виде флипбука, содержащего смещения, нормали и пользовательские маски (например, для пены). В движке я использовал однослойную настройку воды, интегрировав обнаружение SDF для объектов, пересекающих воду.
Я добавил простую генерацию пены, которая запускается на основе высоты воды. Каждый объект выборки измеряет эту высоту с небольшой задержкой, чтобы имитировать появление пены в точках контакта. Все элементы, связанные с водой (плоскость, параметры и т. д.), управляются через единый Blueprint, который хранит большинство значений в коллекции параметров материала (MPC).
Я доволен системой воды в целом, но, имея больше времени, я бы переработал систему пены, запекая маску накопления, чтобы сделать поведение пены более точным. Я также запек бы мир SDF на высоте воды, чтобы получить более точное взаимодействие объектов с водой (неэффективно для игровых целей, но здесь в фокусе искусства).
Я также внедрил множество технологий Connex, особенно связанных со стороной «геймплея».
Заключение
На создание этой работы у меня ушло четыре месяца, не считая персонажа (который я сделал позже). Я работал над ней во время учёбы в Artside и совмещал с фрилансом, так что времени было мало. Я научился создавать инструмент для себя, чтобы повысить свою эффективность.
Если я могу дать несколько советов начинающим: во-первых, не ограничивайте себя. Не позволяйте техническим ограничениям убивать вашу креативность. Если вы хотите что-то сделать, но не знаете как, научитесь этому. Это сложнее, чем оставаться в зоне комфорта, но оно того стоит.
Если вы хотите перейти на стиль ручной росписи, рисуйте. Красота ручной росписи заключается в её несовершенствах. Попытка подделать это с помощью фильтров или процедур никогда не будет такой впечатляющей, как ручная работа.
Наконец, для студентов-художников по окружению, изучите различные рабочие процессы. Узнайте, как создавать окружения, как работать с плиткой, обрезными листами, декалями и многим другим (даже с технологиями). Не застревайте в конвейере запечённых реквизитов. Чем больше инструментов у вас в наборе, тем больше творческой свободы вы получите.
Я хотел бы поблагодарить всех, кто нашёл время дать мне обратную связь по этому проекту: Сашу Вейрье, Николя Чериани, Антони Леметайе, Ромена Дюранда, Камиля Дельмуэля, Флориана Потье, Лионеля Крегу, Матье Лоде и Арно Клоде. И моих друзей Элису Бинц и Томаса Грожана. Ваш вклад имел реальное значение.
Костия Перри, 3D Environment & Technical Artist
Интервью проведено Эмбер Рутерфорд
Автор: Kostia Perry