Top
Арт

Создание заброшенного тоннеля

Эмиль Слегерс поделился своим рабочим процессом, лежащим в основе проекта «Заброшенный Тоннель». Он рассказал о процессе создания ассетов и объяснил, почему для этого проекта был выбран Unreal Engine 5.

Перевод статьи с сайта 80 lvl.

Введение

Привет! Меня зовут Эмиль Слегерс (Emiel Sleegers). Я старший художник по окружению (Senior 3D Environment Artist) и владелец FastTrackTutorials. Я работаю в игровой индустрии чуть больше семи лет. В течение этого времени, я работал в Playground Games (Forza Horizon 3) и Ubisoft (The Division + DLC, и еще один не анонсированный проект). В настоящее время я работаю внештатным художником в своей собственной компании FastTrackTutorials.

Проект «Заброшенный Тоннель»

Из-за того, что у меня довольно мало свободного времени, я могу позволить себе только один крупный проект в год. Я очень большой поклонник творчества Naughty Dog и в частности The Last Of Us. Так что, в случае с этим окружением я хотел посмотреть, смогу ли я приблизиться к качеству Naughty Dog, изучив при этом кучу новых вещей, и конечно же, получив массу удовольствия. 

Когда я решил, что хочу создать пост-апокалиптическое окружение, я включил свою PS4, загрузил The Last Of Us и пересмотрел все те потрясающие концепт-арты, которые были включены разработчиками в игру. Через некоторое время я нашёл нижеследующий концепт и решил, что он станет моим основным референсным изображением.

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

После того, как я нашёл основное референсное изображение, я перешёл к классическому процессу сбора референсов. Поиску множества дополнительных изображений туннелей, разрушенных зданий и потолков, а также поиску ссылок на отдельные объекты и материалы. Совет от профессионала: если вам нужны ссылки на материалы и объекты, загляните на artreference.org.

Композиция

Когда я приступил к работе над данным окружением, у меня было несколько ключевых моментов, о которых я должен был помнить. Во-первых, у меня не было времени на создание огромного окружения, поэтому мне пришлось расставить четкие приоритеты, что я собственно и сделал. Например, данное окружение очень модульное (за исключением разрушенного отверстия) — это значит, что мне пришлось создать меньше элементов. 

Во-вторых, я сделал так, что окружение работает только при определённом положении камеры. Как только вы измените ракурс, вы увидите, что сцена просто заканчивается. 

Например, вот так выглядит то же самое окружение, но с другого ракурса:

И в-третьих, я постарался сэкономить время, не тратя его на объекты, к которым камера никогда не приблизится, таким как автобус, автомобили и небольшие отверстия в потолке на заднем фоне.

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

Архитектура

Для данного окружения я использовал следующие инструменты:

  • Maya+ZBrush для моделирования
  • SpeedTree для создания всего что связано с растительностью
  • Unreal Engine 5 для сборки окружения
  • Substance Painter+Designer для создания текстур и материалов

Давайте рассмотрим строение окружения и разделим его на три части:

  1. Структурные элементы 
  2. Разрушенные элементы
  3. Дополнительные ассеты

Для структурных элементов я создал модульные стены, колонны и части потолка. В них нет ничего особенного, просто тайловый материал.

Затем, я использовал декали на стенах и столбах, чтобы сделать их ещё лучше и иметь полный контроль над повествованием. Тут используются такие декали как подтёки, мох и ветви плюща.

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

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

Здесь вы можете увидеть модель потолка в виде отдельного элемента:

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

Я разделил потолок на 3 части, а затем использовал плагин Maya под названием PullDownIt, чтобы разбить меш на более реалистичные части. Разделение его на 3 части, упрощает выполнение последующих шагов.

Следующим шагом был его перенос в ZBrush. Я использовал DynaMesh и заскульптил края, чтобы они выглядели более органичными. После этого я использовал комбинацию Surface Tool и Masking, чтобы придать краям дополнительное ощущение раздробленности.

На этом этапе я немного поленился и использовал для оптимизации своих моделей Decimation Master. Если бы я стал переделывать их топологию вручную, это заняло бы несколько рабочих дней. Наконец, когда у нас есть высоко-полигональная и низко-полигональная версия, всё что нам нужно сделать, это добавить UV развертку для Low Poly объекта и запечь меш. Для запекания я использовал Marmoset Toolbag 4

Теперь, самая интересная часть: я создал шейдер в Unreal Engine, который позволяет мне выбирать места, где я хочу разместить текстуру чистого или повреждённого бетона, вариативные текстуры с трещинами и даже то, где я хочу добавить грязь. Эти маски рисуются в Substance Painter и добавляются в RGBA каналы текстуры.

Я могу показать вам, как именно это всё выглядит, довольно нелепый вид:

Как вы могли заметить, само изображение не имеет смысла, но по существу, красный цвет означает чистый бетон, розовый означает бетон с трещинами, а остальное — это поврежденный бетон (в глобальном UV пространстве).

Затем, нужно добавить несколько плоскостей с текстурой арматуры (с соответствующей маской прозрачности).

И как только вы соберёте всё это вместе, вы получите нечто подобное, в качестве конечно результата:

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

Дополнительные ассеты. Уникальные ассеты, в основном, были сделаны посредством запекания деталей с высоко-полигональной геометрии на низко-полигональную, а затем затекстурированы в Substance Painter. У меня почти нет опыта в создании автомобилей, поэтому я относился к ним как к далеким объектам. Это значит, что их качество немного ниже чем у других объектов.

Растительность

Для растительности я в основном использовал SpeedTree, за исключением водяных лилий (кувшинок), которые представляют собой простые плоскости с текстурой на них. 

Поскольку я стремился к очень специфичному образу, я специально сделал часть ветвей плюща на основе обрушенной крыши, а всё остальные, более общим и универсальным.

Вот пример одного из растений, сделанных «на заказ». Для этого я использовал подход, который разработал сам. Сначала я создаю ствол, а вместе с ним и несколько веток. Затем, я поворачиваю ствол на 90 градусов и помещаю его в нужное мне место. Наконец, я добавляю несколько более мелких ветвей, а к большим и малым ветвям я добавляю «силу магнита» (Magnet Force) вместе с силой притяжения (Gravity), чтобы вытянуть их вниз. 

Здесь вы можете увидеть, как это должно выглядеть:

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

Вот ещё один пример, где я сделал это, для общего варианта плюща:

Разместите свой ствол и большие ветви, добавьте Magnet и маленькие ветви. Поиграйте с настройками и гравитацией, добавьте листья с включенными коллизиями. Перед экспортом, скройте свой ствол (trunk) и первый уровень веток (branches).

Сделав это, я экспортирую его в Unreal Engine. В данном случае, чтобы сэкономить время, я сохранил малые ветви в виде реальной геометрии. Однако, если вы будете делать растения для реальной игры, я рекомендую запечь маленькие ветви на плоскость с маской, поскольку такой вариант является более оптимизированным.

Что касается травы и других растений, все они используют базовые подходы SpeedTree, в которых вы сразу добавляете ноду листьев (leaves node) в основное дерево (core tree), а затем, вместе с текстурой манипулируете им, чтобы получить желаемый результат: 

Текстурирование

Все тайловые текстуры были созданы при помощи Substance Designer. Я использую эти материалы, по больше части, на крупных ассетах, таких как стены, обломки и дороги.

Несмотря на то, что эти материалы отлично подходят для окружения, я пока не очень доволен ими как художник по материалам, поэтому я вернусь к ним позже и улучшу их. 

Если быть честным, в Substance Designer я не сделал ничего особенного. Поэтому, всё что я могу, это сделать бесстыдную саморекламу и сказать вам: если вы ознакомитесь с данным руководством, вы сможете изучить все те методы, которые я использовал для создания этих материалов, с точно таким же уровнем качества.

Дорожные знаки, конусы и автомобили — все они, используют уникальные текстуры, которые я создал в Substance Painter. Я расскажу только об одной из них, поскольку процесс текстурирования всех остальных моделей практически не отличается. Давайте взглянем на наш дорожный знак. Как вы могли заметить, у меня были как высоко-полигональные, так и низко-полигональные версии этого знака, которые я использовал для запекания в Marmoset Toolbag.

Как только с этим было покончено, я сразу перешёл в Substance Painter и приступил к определению и настройке базовых материалов. Далее, я просто использовал несколько заливающих слоёв (fill layers), чтобы нарисовать грязь и добавить дополнительную информацию о шероховатости.

Вот как был собран этот материал:

Сборка сцены

Собрать сцену внутри Unreal Engine было не так уж сложно. Как и всегда, я начал с блокаута — это просто вопрос неспешного размещения пропсов. Что касается композиции, мне действительно помогло то, что я следовал ключевому концепту. Это давало мне чёткое понимание того, какой тип композиции я должен получить. 

Что касается растительности, я разместил всё вручную, за исключением травы. Для неё я использовал функцию рисования растительности в Unreal Engine (Foliage Paint). Причина, по которой я разместил так много элементов вручную, заключается в том, что я хотел иметь 100% контроль над всем что добавляю в сцену. 

Вода — это просто блюпринт, который я взял в Unreal Marketplace. Я отключил практически все настройки, кроме базовой воды и карты нормалей, отвечающей за волнистые детали. Декали были добавлены с помощью встроенной системы декалей, а для дорог я использовал цвета вершин (инструмент Vertex Painting) для создания перехода между материалами чистого и повреждённого асфальта.

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

К счастью, я сохранил много изображений своего прогресса. Это дало мне возможность создать GIF’ку, которая в точности демонстрирует, как именно собиралось данное окружение:

Рендеринг и освещение

Я люблю новый Unreal Engine 5! Я решил использовать Unreal Engine 5, в основном, из-за новой системы освещения Lumen. Это делает процесс освещения простым и быстрым. Кроме того, я не хотел возиться с картами освещения.

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

К сожалению, новые виртуальные тени в UE5 еще не поддерживают подповерхностное рассеяние, которое я хотел использовать для растительности. Из-за этого мне пришлось использовать старый метод затенения. Было немного обидно, но результат всё равно выглядел хорошо. Затем, я использовал местное освещение (area lightings), чтобы настроить яркость подсветки в некоторых местах, особенно вокруг плюща.

В дополнение к этим источникам света, я использовал плагин Unreal Marketplace для божественных лучей (godrays), который делает процесс их создания таким же простым, как добавление плоскости.

Что касается пост-обработки, то в Unreal Engine 5, вам нужно будет делать намного меньше настроек пост-эффектов, чтобы получить хороший результат — Lumen позаботится о большинстве вещей за вас. Конечно же, я добавил виньетирование и зернистость, а ещё увеличил параметры, отвечающие за GI, но больше всего на конечный результат повлияла цветокоррекция. Я впервые использовал DaVinci Resolve для создания LUT, и это было потрясающе.

Чтобы у вас было представление, вот сцена без цветокоррекции и с цветокоррекцией:

Настройки в DaVinci Resolve:

Я настоятельно рекомендую вам ознакомиться с DaVinci Resolve, поскольку там намного проще получить желаемый результат, чем к примеру, в Photoshop.

Заключение

Я работал над этим окружением время от времени, около 2 месяцев. Поскольку я не работал над ним постоянно, мне сложно сказать, сколько времени занял весь процесс в действительности. Если считать приблизительно, то я бы сказал, что от 100 до 150+ часов. 

В общем, я узнал, как лучше обращаться с освещением в UE5, как использовать DaVinci Resolve, и я разработал несколько новых методов создания разрушений и плюща — лучше, чем те, что я использовал раньше. 

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

Unreal Engine 5 поистине потрясающий движок, и он работает намного стабильней, чем я ожидал. У меня было всего три сбоя, два из которых произошли во время создания скриншотов, а последний, более серьёзный, когда движок не дал мне сохранять сцену. В результате чего я потерял около 15 минут работы. Но, когда вы получаете Lumen взамен, оно того стоит. Также, в UE5 появилась новая система Nanite, которую я еще не использовал, но я считаю, что она очень полезна. 

UE5 очень похож на UE4. Естественно, в нём изменился интерфейс и система освещения, но в остальном он почти такой же и даже более прост в использовании. Он всё ещё в раннем доступе, так что вам следует ожидать от него некоторых странностей. Зачастую это связанно с освещением, особенно с виртуальными тенями, которые немного глючат. Так что, если у вас есть проблемы с тенями, обратите на них (виртуальные тени) своё внимание в первую очередь.

Мне очень понравилось работать над этим проектом. Если вы хотите оставаться на связи со мной или FastTrackTutorials, вы можете посетить мой YouTube канал или страничку на ArtStation.

Эмиль Слегерс (Emiel Sleegers), Senior 3D Artist

Интервью провёл Теодор Никитин (Theodore Nikitin)


Подписывайтесь на нас в Facebook, Telegram, Vkontakte, Pinterest.

+1
0
+1
0
+1
1
+1
0
+1
0
+1
0
+1
0
Поделиться: