Разбор.
Хизер Гейгер рассказала о рабочем процессе при создании окружения «Лес фантастических руин». Она поделилась целями проекта, объяснила, как лепила деревья, учитывая определённые параметры, и подробно описала, как собирала ландшафт.

Введение
Здравствуйте, всем! Меня зовут Хизер Гейгер. Я художник по окружению с трёхлетним опытом в разработке игр. Я начинала как самоучка-универсал, а последние два года занимаюсь именно художеством окружения. Сейчас я в команде ACE Entertainment LLC, где работаю над их будущей игрой.
Мой путь в 3D начался в раннем детстве. Я часами играла в сюжетные приключенческие RPG (я прошла все Final Fantasy) и смотрела фильмы вроде «Тёмный кристалл», «Бесконечная история» и «Лабиринт», где впервые полюбила жанры научной фантастики и фэнтези. Я всегда мечтала работать в играх. Однако я никогда не думала, что это может быть возможно, поэтому большую часть своей взрослой жизни я работала в сфере моды и мерчендайза.
Когда я наконец решила попробовать, я поступила на программу Vertex School по художественному оформлению окружения. Там мне посчастливилось изучить рабочие процессы в отрасли у моих наставников Дэвида Лафуэнте и Кема Яралиоглу. После этого я продолжила совершенствовать свои работы под руководством Джона Арельяно в Академии Sierra Division. Именно под его руководством я создала это окружение «Фантазийные руины». Все активы были завершены в течение 10-недельного периода наставничества, а затем я потратила свои выходные в течение следующих нескольких месяцев на полировку, освещение и рендеринг.



Цели проекта и вдохновение
Моя главная цель в этом проекте — бросить себе вызов и создать органичную сцену, состоящую из скульптурных элементов. До этого я в основном использовала рабочие процессы для твёрдых поверхностей, поэтому была в восторге от возможности попрактиковаться в скульптуре, изучая при этом интересные техники для внедрения модульности. Мне очень понравилась идея создания руин, потому что я видела прекрасные примеры от других художников и хотела изучить процесс их создания.
Что касается стиля, меня вдохновила эстетика фэнтези в стиле старой школы, до того, как стали активно использовать компьютерную графику, а все декорации и персонажи были созданы вручную. Есть что-то в «почти реализме», что кажется мне таким потусторонним. В этом смысле я хотела следовать правилам текстурирования PBR, позволяя при этом некоторую стилизацию в цветах и силуэтах.
Я начала со сбора ссылок на архитектурные детали, материалы, освещение, растительность и скульптуры. Я придумала краткую подсказку для повествования, чтобы использовать её в качестве ориентира при выборе реквизита и общего художественного направления.

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

Блокировка сцены
Имея под рукой ссылки, я настроила первоначальный снимок с камеры и создала простой набросок в Unreal Engine, чтобы определить общий масштаб и композицию. Как видите, моя композиция и реквизит сильно изменились в ходе процесса, но это была моя отправная точка.


Чтобы заблокировать путь, я использовала режим разрушения в Unreal Engine. В нём есть несколько пресетов, которые можно использовать для разделения меша, что может быть полезно для таких вещей, как разбитое стекло, щебень или даже повреждённые варианты. В данном случае я просто не была готова открывать Maya, поэтому сделала это прямо в Unreal Engine. Я часто использую встроенный в Unreal Engine режим моделирования для создания и корректировки моих набросков с заданного угла камеры.

Как только я решила, что мне нравится моя первоначальная композиция, я экспортировала всё в Maya, чтобы разделить свой набросок на модульные части комплекта. Определение общего комплекта на раннем этапе процесса помогло мне спланировать своё время и стратегию. Как только я увидела все нужные мне детали, я смогла определить, какие из них будут наиболее трудоёмкими или потребуют дополнительных исследований. Ниже вы можете увидеть мой окончательный зоопарк.

Моделирование/Скульптура
Некоторые из моих работ были непростыми, например, дерево-герой и венок. Мне нужно было придумать способы сделать их модульными. Ниже я расскажу о стратегиях, которые нашла наиболее полезными.
Деревья
Мои деревья должны были соответствовать нескольким требованиям:
- Они должны были быть хотя бы частично процедурными из-за ограничений по времени, чтобы я могла создавать быстрые варианты для фоновых деревьев.
- Корни должны были естественно стекать по каменной куче.
- Для ствола требовалось скульптурирование, чтобы он соответствовал эстетике сцены.
Сначала я создал основу моего дуба в SpeedTree. Мой блок из камней служил коллайдером, по которому могли каскадом спускаться корни. Чтобы имитировать правильное поведение, я настроил две «силы». Первая — это сами камни, которые действуют как аттрактор. Я добавил функцию кривой для изменения интенсивности. Затем направленная сила мягко тянет корни вперёд и вниз. Эта комбинация создала некоторое пространство между корнями для более естественного силуэта.
Я также добавил коллайдер в форме купола вокруг ветвей для контроля формы. Это было полезно для быстрой корректировки. Я потратил некоторое время на перемещение между SpeedTree и Unreal Engine, чтобы убедиться, что моё дерево обнимает архитектуру без очевидных вырезов, внося дополнительные изменения в отдельные ветви с помощью ручных инструментов SpeedTree.
Как только я нашёл подходящее базовое дерево, я экспортировал его в ZBrush. Оттуда я подразделил и вылепил только ствол, используя существующие ветви и корни в качестве ориентира. Так я мог создать более драматичные переходы и немного стилизовать форму.
Что касается корней, у меня не было времени лепить каждый из них, поэтому вместо этого я использовал несколько раундов смещения материала. Я начал с большого шума Перлина, затем с мелкого шума Перлина, и, наконец, с карты высот моего материала коры. Это выглядит не так хорошо, как индивидуальная лепка, но послужило цели сделать корни немного более зловещими и не похожими на лапшу.

Я использовал инструменты UV в SpeedTree для всего, кроме ствола. Ствол был большим, поэтому я использовал RGB-маски для текстурирования. Это позволило мне масштабировать мои плиточные текстуры до нужной плотности текселей.

Вернувшись в движок, я импортировал ветви, корни и ствол отдельно. Я добавил эффект дизеринга по краям ветвей и корней, чтобы их можно было свободно размещать и они могли плавно переходить в ствол. В итоге результат выглядел довольно индивидуально, но на 80% был процедурным. Я всё ещё мог вернуться к исходному файлу SpeedTree и изменить листья, оптимизировать ветви или создать новые формы корней.
Ландшафт
Весь мой ландшафт состоит из одного листа растительности, камня, двух гальки и нескольких насыпей для смешивания и добавления вариаций высоты на земле. Насыпи были собраны из растительности, гальки и материалов, которые я уже создал. Чтобы сэкономить время, было полезно найти способы максимально использовать мои ассеты, модифицируя или переставляя их.

Первым шагом было заняться камнями и растительностью. Я заблокировал свою растительность в Maya и добавил скульптурные детали в ZBrush. Затем я спроецировал скульптуры на плоскость и отправил их в Substance 3D Painter для запекания/текстурирования.
Помимо типичных текстур (цвет, шероховатость и т. д.), я создал текстуру с градиентами для управления интенсивностью ветра. Это позволило мне модифицировать стандартный шейдер «SimpleGrassWind», где чёрные области были неподвижными, а белые — особенно fluttery.

При вырезании моих карт растительности я пытался учитывать, как я хочу, чтобы они деформировались, и как часто они будут появляться. Если я хотел много вариаций завитка, я добавлял больше краевых петель. Если я знал, что он будет появляться часто, как клевер, я делал его как можно проще, не создавая слишком много лишнего прозрачного пространства. Одна из причин, по которой мне нравится использовать SpeedTree, — это его неразрушительная природа. Очень легко повторно импортировать свои листья или добавить LOD, если этого требует проект.

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



Чтобы создать низкополигональные сетки для моих скульптур, я решил использовать уменьшение, чтобы за трещинами была некоторая геометрия. Это протокол уменьшения, который я люблю использовать в ZBrush. Эти шаги не позволяют мне иметь миллион полигонов в щелях.
- Убедитесь, что незакреплённые части объединены/сетка водонепроницаема.
- Уменьшите на 1–2 уровня.
- DynaMesh со средним разрешением, чтобы сгладить некоторые детали.
- Дальнейшее уменьшение до разумного количества полигонов.
- Проецируйте свою низкополигональную модель на высокополигональную.

Теперь я расскажу немного о том, как я создавал свои деформированные ассеты. Как только у меня были готовы низкополигональные сетки, я вернул их в Maya и применил материалы, чтобы использовать их в качестве ориентира. Я не уменьшал их так сильно, как обычно, чтобы они могли чисто деформироваться.
Затем я использовал инструмент «нож», чтобы разрезать секции, которые можно было использовать для создания вариантов с помощью китбаша. Я разработал свои исходные сетки так, чтобы их можно было чередовать и расширять, что помогло предотвратить масштабирование/растяжение UV-развёрток. После деформации до окончательной формы я использовал функцию «Reduce» в Maya для оптимизации там, где это было необходимо.




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

МЕТОД №1 — Скульптировать всю карту высот, создав повторяющийся узор в ZBrush. Этот процесс был простым — я вылепил узор кирпичной кладки и использовал плоскость для запекания карты высот и маски идентификатора цвета. Я использовал эти текстуры для создания остальных моих карт в Substance 3D Designer.

МЕТОД №2 — Взять отдельные сетки карт высот и разбросать их с помощью тайлового сэмплера. Так я создавал материалы для ландшафта. По сути, всё, что я сделал, — это нашёл доступные мне скульптуры и взял карты высот под разными углами для использования в Substance 3D Designer. Для карт высот с листьями я использовал функцию Fibermesh в ZBrush. В ней есть библиотека волокнистой геометрии на выбор, например, трава.

Я применял большинство своих материалов с помощью RGB-масок, что сэкономило мне массу времени. Я обнаружил, что мне нужно всего несколько материалов, и я мог настроить значения всей сцены всего несколькими щелчками мыши. Это было особенно важно на этапе полировки.
В какой-то момент у меня возникли трудности с получением правильных отражений на моих материалах. Некоторые ассеты выглядели плоскими, даже когда значение Roughness было установлено достаточно низким, а нормали были преувеличены. Чтобы исправить это, я открыл режимы визуализации Base Color и Roughness в Unreal Engine и искал проблемные области, такие как слишком яркие цвета. С помощью RGB-масок я мог поменять весь материал, если это было необходимо, и это имело бы широкое воздействие в режиме реального времени.


Набор UV №1 — Трим-лист — Создан до деформации — часто имеет перекрывающиеся UV, если отделка была продублирована или модифицирована. Используется для нормалей.
Набор UV №2 — Деформированный ассет — Все оболочки переупакованы в пространство 0–1 так, чтобы ни одна из них не перекрывалась. Этот набор будет использоваться в Substance 3D Painter для генерации RGB-масок. Этот рабочий процесс позволяет вам добавлять более точные детали к вашему окончательному ассету, учитывая новые данные о положении и затенении окружающей среды. Как только текстуры будут загружены в движок, вы сможете переключаться между наборами UV, используя статический параметр переключения.
В качестве альтернативы, если у меня есть полностью текстурированный трим, который я хочу использовать, я применяю некоторую логику шейдера для добавления градиентов. Например, на графике ниже показан мой метод добавления мха в нижнюю часть всех моих RGB-активов. Поскольку он использует мировое пространство вместо UV, он игнорирует положение моих трим-листов. Я просто добавил его в синий канал, поэтому мне не нужно было добавлять в шейдер кучу дополнительных текстур, который уже работал на пределе своих возможностей. Я добавил небольшую выровненную по миру текстуру, чтобы у меня была возможность замаскировать эффект.

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

После того как основные архитектурные элементы были добавлены, следующим шагом стало их сочетание с камнями, насыпями и растительностью. При определении расположения я старался продумать, как лучше всего оформить фокусное пятно. Я начал с создания общей формы «U» из крупных камней и насыпей. Я разместил груды камней у основания моей архитектуры, чтобы закрепить их, и вокруг дорожек, чтобы разнообразить высоту ландшафта. Я разместил руины на заднем плане, чтобы создать глубину, и использовал получившиеся ведущие линии для создания второстепенных точек интереса.

Затем я соединил эти основные груды с более мелкими камнями, затем галькой, и, наконец, с растительностью. Для этого я загрузил в свой инструмент рисования растительности всё, включая камни, и варьировал их размеры и ориентацию. Я часто не позволял инструменту рисовать поверх определённых материалов или сеток.
Таким образом, я мог легко рисовать между камнями дорожек, размещать мох поверх только моего материала из мха и т. д. После этого я потратил время на то, чтобы отполировать и раскрасить материалы вручную, чтобы обеспечить естественные переходы.
Освещение
Я хотел, чтобы моё освещение выполняло несколько задач. Я хотел рассеянное освещение леса, очевидное фокусное пятно, контрастные силуэты и ощущение глубины. Я также хотел, чтобы сцена выглядела не просто красивой картинкой — она должна была быть немного жуткой.
Я протестировал несколько вариантов освещения, прежде чем остался доволен. Честно говоря, подход, который я использовал для достижения этого окончательного вида, был немного нестандартным, но в любом случае это был мой процесс:
Определение фокусного пятна
- Я осветил большую часть сцены с помощью Directional Light.
- Я настроил освещение неба и сделал его немного холодноватым. Я использовал захват в реальном времени для своей сцены, но подойдёт и HDRI с более холодным тоном. Я считаю, что противопоставление холодных и тёплых тонов делает это освещение более стилизованным/фантазийным.
Вот как выглядела моя сцена при включении этих двух параметров. Моя цель состояла в том, чтобы получить интересные, реалистичные тени на всей растительности и деревьях. В предыдущих версиях я заметил, что в затенённых областях не хватало реализма, а моя финальная сцена довольно тёмная. Поэтому я решил сначала начать с реализма, а затем уже оформить фокусное пятно.

- Далее я разместил блокировщики теней, чтобы оформить сцену и создать эффект, подобный виньетке. Я использовал их на деревьях на заднем плане и на переднем плане. Для этого вы можете разместить в своей сцене сетку, отбрасывающую тень, в любом месте и установить флажки «Actor Hidden in Game» и «Hidden Shadows».
- Как только были установлены блокировщики теней, я отрегулировал угол источника моего направленного света, пока не добился мягкого спада.

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

Подчёркивание глубины
- Я добавил едва заметный объёмный туман и включил объёмные тени. Я хотел, чтобы туман шёл от земли вверх, поэтому я поднял «Fog Height Falloff» до 1.
- Я немного подкорректировал цвет тумана, чтобы он соответствовал естественному свету. Затем я отодвинул туман назад, используя «Start Distance», чтобы он начинался сразу за фокусным пятном.
Контрастные силуэты
- Я использовал один или два дополнительных прожектора, чтобы выделить силуэты моих руин и моего дерева-героя. Я позаботился о том, чтобы этот эффект был относительно тонким и шёл с того же направления света, что и моё солнце.
- Я разместил карты тумана за ключевыми структурами и несколько на переднем плане, чтобы атмосфера выглядела целостной.

Рассеянное освещение леса
- Я добавил функцию света к направленному свету, чтобы создать эффект рассеянного света. Это в основном просто шум, который управляет интенсивностью света. Вы можете подключить к нему любую карту в оттенках серого. Для своей я объединил шум Перлина с текстурой ветвей, чтобы имитировать облака и тени от деревьев.
- Я решал, использовать ли Ray Tracing/Megalights для каждого источника света. Например, я обнаружил, что включение Megalights создаёт более мягкие тени, которые мне очень понравились, но также имеет побочный эффект в виде появления некоторых артефактов.
- ПРИМЕЧАНИЕ: Если вы получаете статичные артефакты в тенях при использовании Ray Tracing, иногда помогает повысить качество окончательного сбора до 5 и более, а затем увеличить «Samples Per Pixel» на ваших основных источниках света, пока артефакты не исчезнут.
Бонусный совет: усиление отражений материалов
Это один из моих любимых приёмов, которому я научилась от своего наставника, Джона Арельяно. Если вы разместите точечный свет низко над землёй там, где падает солнечный свет, уменьшите интенсивность до едва заметной и значительно увеличьте радиус затухания, вы сможете создать едва заметный отражённый свет на ваших материалах. Это создаст красивые отражения и оживит затенённые области. Если вы посмотрите на мой каменный путь на следующем изображении, вы увидите, какая разница получается.

Пост-обработка/редактирование
Как только мне понравился мой свет, я рендерил изображение и рассматривал его в разных контекстах — на телефоне, на разных мониторах и уменьшал до размера миниатюры. Я пытался представить, как сцена будет чаще всего просматриваться. Например, поскольку большинство людей, прокручивающих страницы на своих телефонах, увидят крошечную версию, я решил выделить некоторые источники света сильнее, чем изначально думал необходимым.
Затем я редактировал изображение в Photoshop, экспериментируя с разными фильтрами и настройками. Затем я использовал это редактирование как ориентир, чтобы настроить сцену в Unreal Engine так, чтобы она соответствовала ему. Иногда просто полезно иметь визуальное руководство, которому можно следовать, прежде чем тратить время на настройку всех мелких настроек.
Заключительные мысли и рекомендации
Этот процесс многому меня научил в управлении проектами. Если бы я мог дать совет своим коллегам-художникам, я бы предложил определить, какие вещи наиболее важны для вашей сцены на раннем этапе планирования, и часто пересматривать этот список. Я всегда старался определить, что окажет наибольшее визуальное воздействие, и делал это в первую очередь.
Например, если один материал покрывает большинство поверхностей и находится близко к камере, стоило потратить время на то, чтобы сделать этот материал высококачественным. Тем временем некоторые из моих фоновых деревьев — не моя лучшая работа, но в итоге их даже не замечаешь. Во-вторых, если ваша цель — работать в играх, я бы посоветовал изучить и немного разбираться в аспектах разработки. В конечном счёте, когда вы работаете в студии, вы тесно сотрудничаете с людьми из других дисциплин, и ваши ассеты должны быть настроены для этих целей.
Я считаю, что важно ознакомиться с такими вещами, как соглашения об именах, столкновения, LOD, вызовы отрисовки, сложность шейдеров, подготовка ассетов для потенциальных анимаций, дизайн уровней и другие соображения, связанные с игровым процессом. Таким образом, вы сможете с самого начала выработать хорошие привычки. И, наконец, я хочу подчеркнуть важность сообщества и окружения себя другими художниками. Так много прорывов, которые у меня были, произошли благодаря обратной связи и обучению у моих наставников, друзей и коллег.
Особая благодарность Джону Арельяно за то, что научил меня многим рабочим процессам, о которых вы здесь прочитали. Этот материал был действительно результатом совместной работы, и я не смог бы так сильно вырасти в этом процессе, если бы не те, кто поддерживал и вдохновлял меня или даже просто говорил мне правду, когда что-то не получалось. За это я невероятно благодарен!
Кроме того, если вы дошли до этого места, я очень признателен, что вы нашли время прочитать это, и желаю вам всего наилучшего на вашем художественном пути.

Хизер Гейгер, художник по окружению в 3D
Интервью проведено Эммой Коллинз
Автор: Heather Geiger