Making Of "T 2 5 Character - Real Time"

Всем привет! Меня зовут Андрей Иванов, и я 3D-художник по персонажам.
Идея данного проекта: мне захотелось показать свой текущий уровень владения 3D-инструментами и проверить себя. Я ставил цель достичь максимального качества в этой работе. Также хотелось обновить портфолио.

Ссылка на работу.

Andrey-Ivanov-03.jpg

Референс для проекта был найден практически сразу. Это работа художника Zet под названием T25. Мне понравился образ героини и то, что персонаж выглядит сложным благодаря большому количеству элементов. Здесь есть и hard-surface элементы, и ткань. Мне хотелось, чтобы в этой работе был вызов, чтобы для меня это было немного сложнее, чем обычно.

Референс

zet-2.jpg

Я разбил работу на этапы и начал двигаться по намеченному плану. Шаги выглядели следующим образом:
• Сбор референсов
• Скульптинг головы и тела
• Моделирование базовых мешей, hard-surface элементов
• Симуляция тканей
• Финальный скульптинг
• Ретопология, UV, бейк
• Текстурирование
• Волосы
• Поза
• Презентация и рендер

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

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

refs_2000px.jpg

Реф-борд в программе Pureref.

Далее я приступил к работе, придерживаясь плана, и начал с головы. В качестве основы я взял скан 3DScanStore (HD Female 3D Head Model 49), который модифицировал на низком уровне сабдивижна. Я часто экспортировал рабочий меш, чтобы проверить, как выглядит результат в Marmoset, где у меня была настроена камера, соответствующая камере на референсе. Далее я накладывал изображение в Photoshop поверх референса, чтобы понять, что нужно изменить. Этот метод работы я подсмотрел в туториале Hyperreal 3D Character Creation by Şefki Ibrahim.

Вот несколько скриншотов процесса работы над головой:

Head_02 a.jpg

Скриншот головы в процессе работы.

Head_03.jpg

Результат в marmoset toolbag.

Andrey-Ivanov-40-z-head.jpg

Финальный скульпт головы в Zbrush.

Если подвести итог: очень важно сделать так, чтобы связка программ позволяла быстро экспортировать рабочий меш, и чтобы сцена в Marmoset подхватывала этот файл автоматически. Таким образом можно быстро увидеть, как это выглядит на рендере. Это крайне важно, потому что в ZBrush геометрия воспринимается иначе.

Для временных волос я взял готовые плашки из программы Character Creator и примерно подогнал их под силуэт прически в ZBrush. Это очень грубо, но уже дало эффект живых волос и помогло мне с правильным восприятием на данном этапе.

Далее я работал над телом. За основу также был взят скан, который я модифицировал.

body_bm_005.jpg

body_bm_006.jpg

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

Далее я создал все hard-surface элементы, начав с пистолетов и автомата. Оружие и прочие твердотельные элементы, на мой взгляд, проще и быстрее делать в CAD-программах. Также я создал более простые элементы: баллончик, термос и т.д.

Вот скриншоты бейзмешей оружия (более органичные формы я не делаю, их проще моделировать полигонами):

01 hk.jpg

02.jpg

03.jpg

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

p_008.jpg

p_009.jpg

p_010.jpg

p_011.jpg

Оставшиеся детали я моделировал в 3ds Max при помощи стандартных инструментов полигонального моделирования.

helmet max.jpg

helmet_render.jpg

Тестовый рендер шлема в Keyshot.

Если говорить о процессе переноса CAD-модели в ZBrush, то сначала я делаю экспорт геометрии в 3ds Max. Все, что можно исправить с помощью встроенных инструментов 3ds Max, я исправляю и довожу. В основном это делается с помощью модификаторов Subdivide/Retopology. По сути, это аналог Zremesher, но внутри 3ds Max. Далее я переношу все в ZBrush и там доделываю модели.

В ZBrush я использую такие инструменты как Groups by Normals, затем Zremesher с включенным параметром Keep groups. Если эта связка не работает, то экспортирую из CAD более подробную модель, чтобы все скругления сложных форм были максимально плавными, и использую Dynamesh. Далее делаю дубликат модели и Zremesher. Накидываю сабдивов. Далее Project all. Иногда приходится доводить какие-то части модели руками с помощью кистей Smooth, hPolish и т.д.

Базовый меш для обуви я делал в 3ds Max. Затем доводил геометрию в ZBrush.

boots nasemesh.jpg

p_040.jpg

Когда все элементы были созданы, я приступил к ткани в Marvelous Designer. Нужно было создать куртку, штаны, сумку, ремень с подсумками и кепку.

Очень важно в начале работы убедиться, что аватар физически правильного роста. Это можно сделать, например, открыв стандартный аватар в программе и добавив к проекту свой аватар. Если модели примерно одного роста, то все в порядке. Если аватар больше или меньше, то можно при импорте настроить масштаб (Scale) в диалоговом окне import. Также желательно уменьшать количество полигонов на аватаре, чтобы симуляция происходила быстрее.

Вот общий вид финального проекта перед экспортом в Zbrush:

MD_001.jpg

Параметр Particle distance при экспорте у меня варьируется от 5 до 10 на разных элементах. Если некоторые складки или места на ткани не выглядят идеально, можно доработать их в ZBrush. Это обычная практика. Сетка в данном случае состоит из треугольников, так как мне хотелось попробовать метод Shaafi Ahmad "Marvelous Designer Jitter Fix in Zbrush".

Для создания элементов я часто использую подход, когда базовый меш делается в любой программе (3ds Max, ZBrush и т.д.), делается UV-развертка и через import OBJ этот объект загружается в Marvelous Designer. Есть много гайдов этого процесса, например видео на канале Outgang "How to import a Zbrush garment sketch in Marvelous Designer".

Диалоговое окно импорта:

MD_002.jpg

Обращу внимание на важные моменты: Load type – Add; Object type – Garment; Trace 2D Patterns form UV Map – On.

Проиллюстрирую этот процесс на примере сумки:

В начале я создал блок-аут сумки в ZBrush. На этом этапе очень просто контролировать размеры и формы деталей, так как для работы можно использовать любые кисти.

MD_003.jpg

Необходимо сразу делать эту модель с учетом того, как она сшита в реальности. Отдельные фрагменты ткани можно отделить либо полигруппами, либо запускать луп в месте, где будет разрез ткани, чтобы на следующем этапе, на развертке, создать там UV-шов (напомню, что Marvelous Designer будет нарезать модель на фрагменты именно по UV).

MD_004.jpg

Модель в Zbrush.

MD_005.jpg

UV-развертка (некоторые “шелы” я выравниваю).

MD_006.jpg

Так выглядит модель после импорта (Import/Add/Garment/Trace Uv patterns).

Как видно на последнем изображении все выкройки уже выглядят неплохо. Можно провести аналогию с "сырым" 3D-сканом, который нужно чистить, но базовые формы уже очень хорошие. Здесь стоит обратить внимание, что некоторые фрагменты не будут сшитыми (Sewing), а также форму некоторых фрагментов ткани лучше подправить.

MD_007.jpg

Финальный вид сумки в Marvelous Designer.

Не буду расписывать, как создавался каждый фрагмент одежды, так как это достаточно прямолинейный процесс, и сейчас есть много роликов на YouTube и туториалов, как делать те или иные элементы одежды. Отмечу лишь, что я много использую PIN'ы и считаю это очень удобным. Если вы не знакомы с таким методом работы, то есть хороший туториал Flipped Normals "Making a Street Wear Outfit in Marvelous Designer", в котором подробно показан этот метод.

Далее я приведу несколько скриншотов финальной одежды перед экспортом:

MD_008.jpg

MD_009.jpg

MD_010.jpg

Кепку я сделал уроку на канале Travis Davids “Creating a Baseball Cap”

Далее я экспортировал геометрию и приступил к финальной сборке high-poly и доводке деталей.
Удобно делать это частями, потому что если работать в одной сцене, это может быть ресурсоемким. Я постарался логично разбить модель на части (Сумка, пистолеты, ремень и т.д.) и работал по частям.

Вот пример как выглядел проект с сумкой:

Z_001.jpg

Если на конкретной детали есть возможность работать с Dynamic Subdivision, то я стараюсь оставаться в этом режиме как можно дольше, чтобы экономить ресурсы компьютера. К тому же этот режим позволяет видеть плоские детали с толщиной.

Наплечник я создал с помощью плагина SlideKnit.

Ролик с примером, как работает плагин:

Результат которого нужно было достичь:

Z_002 - наплечник.jpg

Покажу некоторые шаги:
Сначала нужно создать деталь-блокаут с UV-разверткой.

Z_002 - наплечник 2.jpg

Также необходимо создать отдельный объект-паттерн, который требуется спроецировать на эту поверхность.

Z_002 - наплечник 3.jpg

Если применить плагин SlideKnit к первому блокаут-объекту, то он станет плоским и по форме как UV-развертка (аналогия — это Morph UV в ZBrush).

Z_002 - наплечник 4.jpg

Располагаем второй объект близко к поверхности "развернутого" объекта и подрезаем границы, чтобы форма стала как у первого объекта-блокаута.

Z_002 - наплечник 5.jpg

Z_002 - наплечник 6.jpg

Путем применения модификатора Skin Wrap и изменяя параметр модификатора Morph первого объекта, трансформируем оба объекта в исходное (не развернутое) состояние.

Z_002 - наплечник 7.jpg

Z_002 - наплечник 8.jpg

Финальная модель, которую легко доработать, придав толщину и применяя Bevel by Polygon и т.д.:

Z_002 - наплечник 9.jpg

Далее я покажу несколько скриншотов из программы ZBrush.

Z_003.jpg

Z_004.jpg

Z_005.jpg

Z_006.jpg

Z_007.jpg

Z_008 hk.jpg

Z_009 Andrey-Ivanov-39.jpg

Финальная хайполи. Рендер в Marmoset Toolbag.

Я использую в основном стандартные кисти для работы — Move, ClayBuildup, Standard, DmStd, Smooth и т.д. Для шлифовки складок хорошо себя показывает кисть Smooth Directional. Также у меня есть несколько дополнительных кистей, но основа - это стандартные кисти.

Для работы с тканью хорошо показывают себя специальные кисти, например, Pascal ACKERMAN “Marvelous Designer to Production for Artists” которые я использую много в работе. Они включают в себя также несколько неплохих альфа-изображений. Здесь есть хорошая IMM кисть для ниток швов. Этот набор весьма хороший и целостный. Если нет других кистей, с ним можно начать работать, постепенно добавляя какие-то еще кисти и альфы к своему пайплайну.

Z_010 Pascal.jpg

Несколько примеров кистей и альф из набора “Marvelous Designer to Production for Artists”.

Z_011.jpg

Когда загружаете свои альфы в Zbrush не забывайте о параметре MidValue. Чаще всего следует выставить его равным 50, но бывают ситуации, когда приходится подбирать эту цифру перебирая разные варианты.

Ссылка на кисти Pascal ACKERMAN “Marvelous Designer to Production for Artists”

Z_012.jpg

Часто в работе с персонажами требуется сделать паттерн вдоль детали на хайполи-геометрии. В этой работе были ремни и мне хотелось сразу сделать паттерн в виде полосок. Чтобы сделать это нужно развернуть(UV) детали и в Noise Maker применить “кастомную” альфу в качестве текстуры.

Z_013.jpg

Z_014.jpg

Когда делаете несколько деталей с одинаковым паттерном при помощи noisemaker удобно сделать пресет. Но нужно помнить, что у разверток должен быть одинаковый тексель. Это нужно для того, чтобы масштаб паттерна в Zbrush был одинаковым.

Если говорить о работе в Zbrush, то я использую метод Gio Nakpil из тутора Master Organic Modelling к лепке. Для себя, в том числе, я почерпнул оттуда, что лучше использовать низкую интенсивность кистей при лепке. Я использую следующие параметры интенсивности: Move – 13; Clay Buildup – 5; Dam Standart – 12 в качестве стартовых настроек.

Финальная high-poly имеет бюджет Total Points = 139 млн, файл занимает порядка 7 гигабайт. Далее я сделал decimate и перешел к ретопологии. Для ретопологии я использую 3D-Coat. Поскольку это персональный проект, я не думал о количестве полигонов, сильно не экономил.

Вот несколько скриншотов процесса:

retop_1.jpg

retop_2.jpg

retop_3.jpg

retop_4.jpg

Часть швов UV я делаю прямо в 3D-Coat, но финальную развертку, маппинг делаю в RizomUV.

UV_1.jpg


UV_2.jpg

Бейк был сделан в программе Marmoset Toolbag. Артефакты бейка я правил в Photoshop.

Bake.jpg

При редактировании бейка в Photoshop удобно сделать "render UV" в 3ds Max. Это поможет видеть, где находится тот или иной шелл.

Bake 2.jpg

Bake 3.jpg

В Marmoset я запек Normal, AO, Curvature, ID карты. Остальные карты я пек в Substance Painter.

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

Andrey-Ivanov-41.jpg

В Substance Painter я решил сделать один проект для всех текстурных сетов. Финальный файл SPP весит порядка 6 гигабайт. В этот раз я текстурил в ACES (рендерил соответственно тоже).

Вот несколько сриншотов из программы:

SPP_1.jpg

SPP_2.jpg

SPP_3.jpg

SPP_4.jpg

Сейчас существует очень много хороших готовых смарт-материалов, которые дадут хороший старт проекту. Также можно комбинировать элементы из разных материалов. Ещё есть много туториалов о том, как создать тот или иной материал. Например, у художника Milad Kambari на канале много роликов.

Повреждения на деталях я не делал в Zbrush на геометрии, поэтому сделал это в Substance.

SPP_B_02.jpg

Чаще я рисую подобные “дамаги” вручную с помощью кисти Dirt 2 или аналогичной в маске создав новый слой Paint.

SPP_B_03.jpg

Часть ниток я добавил с помощью встроенного инструмента Topstiching (часть ниток у меня была сделана геометрией).

SPP_B_01.jpg

Иногда я нахожу нужный материал среди бесплатных Comunity Assets на официальном сайте Substance.

Найти татуировки, аналогичные концепту, я не смог. Использовать что-то похожее я не хотел. Мне было интересно создать татуировки максимально близкие к оригиналу-концепту, поэтому пришлось их рисовать вручную. Для этого я использовал Autodesk Sketchbook. Очень простая и интуитивная программа.

SPP_5 tattoo.jpg

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

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

SPP_6 earings AI.jpg

Пример генерации Reve по запросу "cyberpunk earings".

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

Далее я приступил к волосам. Я не часто делал волосы до этого. Это та область, где всегда хочется найти какой-то "чит", но все заканчивается всегда тем, что расставляешь пряди вручную, и это дает лучший результат. Чтобы освежить подход в памяти, я пересмотрел туториалы:

Hair Breakdown — with Andreea Scubli на канале Outgang

Hazel Brown Realtime Hair Tutorial (бесплатный туториал + можно на ArtStation купить файлы с прической и использовать как референс)

Первое видео про общий подход, второе я брал за основу, потому что мне показалось, что прическа чем-то похожа на то, что мне нужно.

Чтобы упростить себе работу, было принято решение печь пряди в программе FiberShop, которую мне давно хотелось освоить и проверить в работе. В итоге я убедился, что этот инструмент достаточно мощный, включающий в себя даже модуль, напоминающий Photoshop, где при помощи слоев и режимов смешения можно довести финальные текстуры до нужного вида. Также эта программа удобна тем, что она сразу запекает и сохраняет уже отредактированные карты в определенное место, откуда их подхватывает Marmoset (если все настроить). Это отличная связка, и это сильно ускоряет работу.

hair_1.jpg

Плашки я расставляю в ZBrush при помощи модификатора Bend Curve.

Такой подход я увидел в туториале UE4 for Real-Time Hair Course

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

hair_2 zbrush.jpg

hair_3.jpg

hair_4.jpg

hair_5.jpg

Теперь, когда у меня есть вся модель в A-позе пришло время поставить персонажа в финальную позу. Для этого я использовал программу Character Creator. В программе есть авториг и возможность рисовать веса. Я не тратил много времени на идеальный риг, т.к. всегда есть возможно подправить недостатки руками в программе для скульптинга. Куртку и часть деталей я подгонял вручную в программе Zbrush.

pose.jpg

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

01 TEST_246.jpg

Одна из итераций рендера на первых этапах.

Больше всего времени занял поиск основного атмосферного кадра, фона.

02.jpg

Я пробовал разные фоны, пытался поймать идею.

Мне нравилась идея сделать фон геометрией, например, чтобы сзади был киберпанк-город или что-то подобное. Я нашел тематические kitbash-наборы и пробовал это использовать, но сцена в Marmoset становилась слишком неповоротливой, если использовать несколько зданий или чего-то подобного. Поэтому было принято решение использовать только стену, пол и несколько пропсов.

Модели окружения я брал из наборов с сайта kitbash3d.com.

03 a.jpg

04.jpg

Освещение в сцене: HDRI-карта + два вертикальных светильника разных оттенков (геометрия с картой emissive) слева и справа.

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

05.jpg

Кадры с темным окружением - это просто кастомная HDRI карта.

03 b.jpg

Для сцен с однотонным фоном я использовал первую HDRI-карту и два светильника, один справа-сверху и второй контурный сзади.

03 с.jpg

Ниже скриншоты настроек камеры и рендера:

06.jpg

07.jpg

Для финальной обработки я делал немного цветокоррекции в Photoshop с помощью встроенного Camera Raw Filter. Картинка из Marmoset получилась уже очень хорошая по цветам, поэтому тут лишь небольшие, минорные изменения.

08.jpg

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

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

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

Спасибо всем, кто прочел эту статью, комьюнити за фидбек и отзывы, редакции сайта render.ru за возможность написать эту статью! Всем удачи!

784 0 850 6
2
2026-03-02
татухами модель испортил
2026-03-02
Ян Кушниртатухами модель испортил
Как раз в духе киберпанка
RENDER.RU