Making Off "LABRENTA"
LABRENTA — The Ironmaiden
Making Of
Real-Time Character | Unreal Engine 5
Введение
Всем привет! Меня зовут Иван Менг, я — Character 3D Artist.
В этом Making Off я покажу процесс создания моего нового персонажа “LABRENTA”, а также некоторые инструменты, которые я использую и раскрою материалы, текстуры более подробно. Перед просмотром статьи предлагаю посмотреть небольшой синематик, который я создал для презентации персонажа. Приятного просмотра и чтения, приступим!
Я начал изучать 3D в 2022 году, самостоятельно обучался по курсам в оффлайн записи, туториалам на YouTube, и анализировал работы других художников. В первую очередь смотрел очень много работ других 3D художников. Мы развиваем насмотренность, чтобы сформировать вкус, именно так понимаем, что такое красиво. И чем больше расширяем свой кругозор, тем эстетичнее становится у нас всё в совокупности – от анатомии до текстур и финальной презентации персонажа. Это, кстати, относится не только к Character Art’u, а ко всему искусству в целом. В процессе работы всегда задаю себе вопрос – “то, что у меня получается это красиво?” и отвечаю на него честно, и главная моя цель – сделать свою работу не хуже, чем топовые художники, которыми я вдохновляюсь: JHill, Raf Grassety, Nikita Vasilkov, Marco Plouffe, Hadi Karimi. Я подхожу к Character Art’у как к искусству.
Проект LABRENTA создавался несколько месяцев в свободное время во время основной работы. Это был самый масштабный личный проект, в котором я хотел не просто пополнить портфолио новым персонажем, а значительно улучшить свой пайплайн и освоить новые подходы к финальной презентации.
Цели проекта
• Улучшение качества текстурирования и настройки материалов
• Повысить навыки создания игровых волос с использованием Hair Cards.
• Полностью отказаться от Marmoset Toolbag и выполнить финальную презентацию в Unreal Engine 5.
• Улучшить качество Low-Poly и оптимизацию сетки.
• Создать полноценный синематик.
Референсы
Работа началась со сбора большого количества референсов: средневековая броня, оружие, кожа, ткани, лица и материалы. Главный концепт от художника Maroon. Дополнительно я всегда ищу рендеры работ других 3D художников похожих по стилистике и качеству, к которому я стремлюсь. В PureRef главная моя mind карта, в которой я собираю не только референсы по анатомии, текстурам, но и проверяю пропорции, пишу фидбек себе для следующего дня работы, когда проект становится очень большим.
Блокинг и скульпт
Силуэт — один из самых важных для восприятия факторов, чтобы мы посмотрели на работу и сказали: Вау, какой крутой и запоминающийся персонаж. Поэтому перед тем как перейти к детализации, на этапе блокинга и позинга, я всегда добиваюсь красивого силуэта, как в анатомии, так и в пропсах и hard-surface элементах.
Base Mesh я взял с metahuman и его я подгонял под персонажа. Говорят, что если скульптить лицо, начиная с базового меша, то лица выходят достаточно однотипные, но не совсем так. Если взять за основу совершенно непохожее лицо на то, какого результата ты хочешь добиться, то черты получаются именно такими, какими ты видишь. Иногда я начинаю со сферы и когда скупльт уже больше, чем наполовину готов, я проецирую сетку metahuman на мой кастомный меш, используя WRAP 3D, так быстрее всего получить правильную топологию, сохранив детализацию.
Одежда и броня
Промежуточная LOW-POLY, MID-POLY сетка
К созданию брони, я подхожу в зависимости от силуэта, сложности и типа формы.
Я смотрю на референс и заранее определяю:
1. Если это часть брони со сложным рельефом, которую сложно смоделировать экструдированием эджей в Maya или эта броня повторяет силуэт тела, например, наплечник, то я начинаю в ZBrush:
Маскирую часть на теле --> с помощью Exctract отделяю от тела --> удаляю толщину --> ZRemesher для промежуточной лоу-польной топологии, с которой можно уже работать точечно и более контролируемо --> правлю силуэт Move или инструментом ZModeler - скейлю, экструдирую добавляю криэйзов (Crease Edges – в майке аналогично хард-эдж полигруппы) и одновременно включаю Dynamic Subdiv на высоком значении, чтобы наблюдать насколько хороший получается шейдинг --> если есть что-то, что я лучше сделаю в майке перебрасываю объект в нее, который очень облегчает export/import ( “GN – import/export” или другим скриптом, который я нашел в самом первом курсе, который я прошел "Military Radio") в Maya удобнее править топологию в некоторых случаях --> Добавляю толщину броне, есть три способа:
- сразу в Maya экструдированием.
- в ZBrush с помощью Dynamic Subdiv: выбираю нужный Thickness – в зависимости от того, какие нужна фаски, острые или скругленная, включаю Post Subdiv и далее кручу Segments, все делаю на глаз в соответствии с моими требованиями.
- плагином Extrude Keep Subdiv ( кстати, таким образом добавлять толщину можно даже и имеющимся сабдивами).
можно использовать также плагин для ZBrush Extract PRO+, но у меня его нет, поэтому использую способы выше.
2. Если это сложная форма или это предмет снаряжения — скульпчу вручную --> экспортирую в Maya --> делаю промежуточную топологию --> далее работаю по тому же алгоритму. Могу экспортировать/импортировать из Maya в ZBrush и обратно по несколько раз, в зависимости от того, где проще сделать определенную манипуляцию с мешем.
3. Для Hard-Surface элементов могу сразу начать в Maya с примитивов, почти весь процесс происходит в Maya.
4. Ткань вокруг пояса я обмотал в Marvelous Designer. Здесь технических тонкостей нет: обматывал вручную, закалывая булавками и постепенно увеличивая длину ткани --> экспорт в ZBrush --> ZRemesher --> Maya Retopology с помощью Quad Draw (для Low-poly).
Все способы сводятся к тому, чтобы в ZBrush добавить Subdiv’ы и начать работать над Highpoly.
Highpoly
На этапе Highpoly, как я сказал выше, на промежуточную (не триангулированную и не оптимизированную) Low-poly модель я добавляю Subdiv'ы в ZBrush --> Добавляю слои
.
По слоям работаю так.
Для металла использую такой подход и кисти Easy Metal Surface.
- Layer 1 – кистью hPolish повреждение фасок
- Layer 2 – из пака Surface 02, основной слой повреждений
- Layer 3 – можно использовать Surface 01, Surface 03, чтобы добавить вариативности
- Layer 4 – добавляю царапин
- Layer 5 – Slash 2 вручную какие-нибудь повреждения от мелких до больших
- Layer 6 – Noise’ом с маскированием разбавляю паттерн повреждений.
Все слои имеют маленькие значение – до 0.5.
Для кожи и ткани:
- Layer 1 – разбиваю кистью standard общую форму, чтобы она была более ествественной
- Layer 2 – повреждения по краям Slash 2
- Layer 3 – какой-нибудь noise, разбить форму еще больше, можно добавить текстуры, чтобы шум был не стандартным.
- Layer 4 – можно добавить третичную детализацию
На данный момент я использую другой способ, на highpoly оставляю только вторичные повреждения, а третичные делаю с помощью текстурирования в Substance Painter, т.к. по опыту могу сказать, что в некоторых местах на третичную детализацию может не хватать полигонов и выглядит это не очень, поэтому лучше сделать на этапе текстуринга царапины и мелкие неровности.
Волосы (Hair Cards)
Все волосы были собраны вручную с использованием Hair Cards. Брови и ресницы – Xgen. Особое внимание уделялось объёму, направлению прядей, читаемости силуэта. Отличные уроки по созданию волос плашками есть на YouTube в открытом доступе от Hazel Brown, которые мне очень помогли.
Сперва я вырастил XGen Interactive Grooming волосы для haircards, далее я попробовал два способа создания текстурых карт:
– Через конвертацию в кривые и последующем бэйкинге в xNormal для карт прически лабренты
– Через рендер в Arnold для карт шерсти
Лично мне понравился второй способ, он понятнее и быстрее.
Для карт волос, все основные текстуры создал в фотошопе. Albedo map, можно доработать с помощью шейдера волос, который я взял с Digital Human – это пока что самый лучший шейдер, который я нашел, его можно изменять под свой проект. Карты я разместил плагином GS Curve Tool.
Ретопология и UV
Low Poly создавался вручную Quad Draw в Maya с расчётом на игровой пайплайн. Для ускорения работы в некоторых объектах использовался ZRemesher. Кстати, ZRemesher можно использовать не только как быструю, плохую топологию, когда сетку необязательно показывать и главное визуальный результат, но и как один из этапов ретопа: когда я заканчиваю хайполи, я запускаю ZRemesher на 0.1 Target Polygons Count и получается достаточно неплохая сетка для начала ретопа --> экспортирую в Maya --> удаляю лишние полигоны и эдж лупы, триангулирую где нужно. Именно таким способом сделано больше 50% брони.
После завершения ретопологии, в Maya я нарезаю шеллы на UV развертке и делаю базовый Layout, не обращая внимания на этом этапе на выравнивание шеллов, тексель и плотность упаковки проверяю сразу Marmoset по отдельности каждый объект, корректно ли сделан ретоп. Если все хорошо, перехожу в RizomUV – это очень хороший инструмент для упаковки и выравнивания шеллов, намного лучше это делает, чем Maya. В Rizom была выполнена конечная UV-развёртка с выровненными шеллами, сохранением одинаковой плотности texel density и эффективным использованием текстурного пространства.
Запекание и текстурирование
Карты Normal, ID и AO map запекаю в Marmoset Toolbag, остальные в Substance painter. Каждый UDIM, я бэйкаю отдельным файлом, так как вместе с highpoly весит всё очень много, и чтобы. если что, можно было вернуться что-то исправить или добавить.
Перед началом текстурирования я всегда сначала настраиваю среду в Substance painter, выбираю Tomoco Studio в HDR, выбираю фокусное расстояние 85 mm, и кручу Environment Blur, Opacity и Exposure в зависимости цветовой гаммы персонажа – темной и или светлой, чтобы улучшить восприятие. Environment Alignment ставлю – Camera, так свет остается неподвижен относительно камеры, иногда меняю на World, чтобы посмотреть под другим углом.
Всегда разделяю модель на группу по UDIM’ам, чтобы можно было скрыть не используемые на текущий момент группы. Для дерева и кожи использовал свои готовые смарт-материалы, которые я сделал по туториалам от Javad Rajabzade, немного изменив их под свои нужды. Металл я сделал по так же, как я подхожу к текстурированию почти любого объекта. Выбрал базовый цвет приближенный к референсу, далее этот же цвет с модификатором HSL дублирую в два слоя: один темнее, другой светлее. И оба слоя маскируются различными текстурами по типу Clouds, Grunge и т.д. --> Добавляю вариацию цвета, все цвета состоят из подтонов какого-то цвета и как живописи, часто не очевидные, например, на наплечнике фиолетовый, бирюзовый и синий подтоны с минимальной видимостью слоев, разбитые масками grunge map --> дополнительная вариация цвета состоит из слоев грязи, царапин --> добавляю вариацию Roughness --> регулирую все значения: Color, Roughness, Height, Metallic в соответствии с ожидаемым результатом.
Когда я только начинал изучение Substance Painter и текстурирования в целом, я смотрел на то, как делают другие, и не понимал как правильно мыслить, как вообще понять какой гранж в маску использовать или какой модификатор или генератор добавить. Ответ пришел с опытом, нужно не бояться пробовать и разбивать предмет мысленно на мелкие состовляющее: какие цвета имеет объект, всмотреться и собрать разные похожие референсы повреждений. Также очень помогает пытаться повторить полностью какой-нибудь материал по туториалу и проанализировать, взять принципы создания разных художников и со временем и опытом создать свой собственный способ текстурирования. Поэтому я также постоянно обучаюсь чему-то новому. Надеюсь тому, кто только начинает, поможет мой совет.
По такому же принципу я текстурировал кожу – полностью вручную. Основная кисть Dirt 1.
Первые слои - эпидермальные цвета: фиолетовый, голубой, желтый, синий --> базовый слой цвета --> разбавил подтонами первый слой --> добавил веснушки, цветовые еле заметные пятна и точки, чтобы кожа была более естественна --> мейкап --> тату --> кровь.
Unreal Engine 5
Финальная презентация полностью собрана в Unreal Engine 5. Environment сцены собраны также полностью мной с помощью MegaScans. Я решил сделать 3 сцены: в лесу; туман со студийным освещением и сцена прибрежья с кораблем, заставка-концовка. Чтобы отрендерить в анриле, нужно настроить больше параметров, чем в анриле, но результат того стоит, я начал с настройки проекта.
Далее настраиваю PostProccessVolume, похоже настройку Post Effect в Marmoset. Изменения незначительные, но именно из мелочей состоит цельная картина. Я добавил немного виньетки, резкости, контрастности, совсем чуть-чуть шума (главное не согрешить с этим и не переборщить, многие начинающие художники добавляют столько шума, что невозможно смотреть),подкрутил настройки Lumen и экспозицию.
Искры в воздухе я создал с помощью Niagara Systems.
Для HDRI использовал карту, которую нарисовал в фотошопе, как делает это в Никита Васильков в работе “Arlinoe, the Guardian of the Boy-King”. В фотошопе для тумана можно использовать шум и мягкой кистью в случайном порядке маскировать. Также для земли я подключил transparency маску, редактировал ее в substance painter.
Одна из проблем,которых у меня возникла – неккоректное отображение текстур, когда я только изучал Unreal, я потратил очень много времени на поиск решения проблемы, т.к. думал, что это моя ошибка в UV или ошибка экспорта/импорта текстур. Чтобы это исправить достаточно в настройках меша поставить галлочку Full Precision UVs.
Рендерил я как в Movie Render Queue, так и в Legacy. MRQ использовал для основных шотов, качество рендеров выше за счет расширенных настроек, но и времени требуется больше на один кадр, в основном из-за нескольких проходов антиалиасинга для каждого кадра. Legacy, использовал для видео-сцены в лесу, для заставки, т.к. почему-то не отображалась корректно HDRI, еще в MRQ не работает по неизвестной мне причине Ultra volumentrics, потратив безуспешно несколько часов на поиск решения проблемы, я решил остановиться на Legacy. Ниже настройки, которые я добавил для MRQ, изменил только разрешение и антиалисинг.
Для финальной сцена я заскупльтил кровь для отрубленный головы, чтобы загрузить ее в Substance, а потом в движок, я сначала сделал децимацию, экспортировал в RizomUV, далее, чтобы сделать UV прямо для highpoly, выбираю margin 4-8, padding 32, нажимаю в Auto Seams иконку с кружком, разделенным на части, включаю Stretch Limited и выбираю Cut, Unwrap, pack. Готово, теперь мы имеем highpoly, которое можно уже загружать в Substance painter и текстурировать, в UE, экспортируем по стандартному алгоритму.
Освещение — мой любимый процесс,я использую spotlight и pointlight. В начале я выставляю свет по обыденной схеме: основной spotlight сверху слева под 45 градусов или больше, сзади контровой spot, сверху. Point c правой стороны лица на низких значениях. Остальные источники добавляю в зависимости от того, что я хочу подсветить и как это смотрится в гармонии с остальным и смотрю не пересвечивает ли другие части тела, брони или не получается ли какой-нибудь дурацкой тени. Source Radius добавляю, чтобы тени стали мягкими. Для некоторых источников добавляю Volumentic Scattering, так свет как будто просвечивает сквозь туман. Для тумана сзади персонажа я использовал EasyFog.
Во второй сцене я сделал лес и рядом расположил окружение для заставки в меню синематика.
Синематик
Для завершения проекта был создан небольшой синематик, позволяющий показать персонажа с разных сторон и лучше раскрыть материалы, и освещение. Решил сделать что-то нестандартное – интереснее, чем просто крутилка, задать какую-то концепцую. Главной задачей презентации было создание напряженного настроение, которое помогло бы проникнуться персонажем и напряженной атмосферой битвы. Мне также помогала в процессе создания моя любимая. Мы подумали, что будет классно, если показать персонажа, как будто это уже начало игры, с помощью ArenaAI создали кнопки интерфейса главного меню, всё это я анимировал в CapCut. Пока что вряд ли AI заменит нас в нашей сфере, но может здорово помочь в работе, как инструмент. Вот такой интерфейс можно создать, хотел доработать эту концепцую, отрендерить персонажа и вставить Лабренту отдельно в фотошопе, но решил не включать этот слайд в Artstation.
Одной из главных составляющих настроения, по-моему мнению, это музыка, я тщательно подошел к выбору звуков, музыкального сопровождения на протяжении всего видео. Я уделил внимание: звукам кнопок меню от появления курсора, переходам к катсценам, и особенно главной музыкальной теме, которую я подбирал около недели, прослушивая радио по скандинавской тематике, спасибо прекрасным произведениям Natalya Tsupryk.
Трудности и выводы
Главной сложностью стало совмещение проекта с основной работой. Несмотря на ограниченное время, именно этот проект позволил значительно улучшить навыки текстурирования, работы с Hair Cards, оптимизации и финальной презентации в Unreal Engine 5. Если говорить о технических трудностях: возникла проблема с риггом и скиннингом, я потерял сохранение и из-за этого я потерял всю развесовку ригга и правую руку пришлось восстанавливать. Я не хотел затягивать создание этого персонажа, поэтому синематик оставил без анимации Лабренты. Следующего персонажа я планирую сделать в SCI-FI стиле с Metahuman LiveLink motion capture, учесть все ошибки риггинга и скиннинга, и представить вам следующую работу на совершенно другом уровне.
Заключение
LABRENTA стал важной вехой в моём развитии как Character Artist. Этот проект позволил мне еще раз пройти полный цикл создания игрового персонажа и получить ценный опыт, который я планирую использовать в следующих работах. Спасибо за просмотр и отдельное спасибо Render.ru за возможность рассказать Вам о своем пути!
Сейчас я в активном поиске работы, если у вас есть деловое предложение – буду рад пообщаться.
Мне можно написать тут:
TG | VK | ARTSTATION | mengartist@outlook.com
Всем хорошего скульптинга, вдохновения и работы без системных ошибок!