Создание Coupris Kineema из Disco Elysium с помощью Blender и Substance
3D-художник Никита Скотин рассказал о рабочем процессе над проектом Coupris Kineema и объяснил, как модель готовили к 3D-печати.

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

Coupris Kineema
Идея для проекта возникла спонтанно, когда мой друг Владимир Шевчук предложил мне напечатать на 3D-принтере любую модель по моему выбору. Автомобиль из Disco Elysium пришёл в голову почти мгновенно, поскольку в то время я был одержим этой игрой. Превосходное качество визуалов, звукового дизайна и, самое главное, то, как написана эта игра, до сих пор восхищает меня. Имея это в виду, я хотел передать всю свою любовь и признательность за невероятную работу, проделанную разработчиками, а также создать что-то, что хорошо бы смотрелось на полке.

3D-печать
Любая работа начинается со сбора референсов. В моём случае основными референсами были пара скриншотов из игры и оригинальные концепты Александра Ростова и Юри Сакса из официального артбука. Дополнительные источники вдохновения и ориентиры пришли из промышленного дизайна начала XX века. Это позволило мне дополнить оригинальный дизайн, чтобы он стал немного более реалистичным.

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

После нескольких неудачных попыток мы наконец получили приемлемый результат. На самом деле, было так удивительно физически прикоснуться к чему-то из вашего окна просмотра в реальной жизни, что я решил сам полностью погрузиться в 3D-печать.
Моделирование
Теперь задача состояла в том, чтобы смоделировать остальную часть автомобиля, а также разработать процесс сборки. Я решил использовать моделирование SubDivision для всех деталей. Наряду с использованием складок это дало мне необходимый контроль для относительно лёгкого моделирования этого автомобиля. Программное обеспечение для выбора в этом случае — Blender, поскольку его набор инструментов для моделирования с парой надстроек позволяет работать очень быстро.
После завершения геометрии я разделил все детали на логические группы для печати и начал прорабатывать пересечения деталей, а также маркировку материалов частей, которые должны образовать цельный объект в конце.

ZBrush не имеет себе равных, когда дело доходит до обработки тяжёлых сеток, поэтому я решил отфильтровать начальные объекты в Blender, экспортировать их в ZBrush для всех логических операций, а затем импортировать обратно в Blender для проверки масштаба и окончательного экспорта в программное обеспечение для нарезки.
Процесс для каждой детали был следующим, в качестве примера я выбрал двигатель:
- Сортировка деталей по логике печати. Для объектов, которые должны пересекаться друг с другом, применяется уникальный материал, чтобы они были одним SubTool в ZBrush.

- Для каждого пересечения (обозначенного в окне просмотра) создаётся единый логический объект с собственным материалом.

- После учёта всех проблемных областей я экспортировал сетки с помощью слегка модифицированного дополнения FBX bundle Blender. Я настроил дополнение для экспорта объектов по правилу «один материал = один файл OBJ».

- Для импорта файлов в качестве отдельных SubTools использовался MultiAppend из дополнения SubTool Master.

- Поскольку все SubTools разделены так же, как мы подготовили их в Blender, теперь пришло время определить все области врезки для каждого сегмента. Это то, что представляет собой настройка Live Boolean.

- Объединённому логическому объекту даётся команда Autogroups->Split by Groups. Полученные SubTools представляют детали в том виде, в каком они будут напечатаны.

- После импорта обратно в Blender как FBX, я проверяю всё на наличие ошибок, ещё раз проверяю масштаб и экспортирую модель в формате STL.

- Затем я использовал Lychee Slicer, отличный инструмент, который позволил мне быстро разместить ручные опоры и подготовить файл к печати.

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

Low Poly и UV
После того как печатная модель была готова, следующим шагом стала её покраска. Поскольку у меня нет опыта покраски масштабных моделей, для меня было удобнее всего начать этот процесс с репетиции на цифровой модели в Substance 3D Painter, а затем использовать её в качестве дорожной карты при работе с реальной моделью позже. Я также хотел потренироваться в low poly, UV, запекании и презентации.
Я начал с ретопологии всех высокополигональных частей. Теперь это также была отличная возможность доработать модель с точки зрения деталей, поскольку многие из них пришлось пожертвовать ради требований к печати.
На этапе low poly я попытался реализовать как можно больше соответствующих деталей, используя те же инструменты, что и для разработки печатной модели. Я использовал ZBrush для лепки кожаных сидений и элементов внутренней стены, а Marvelous Designer — для генерации базовых сеток для боковых и верхних штор.
Для блокировки и доработки определённых частей я использовал Gravity Sketch. Революционный инструмент, который делает прототипирование и блокировку очень увлекательным и приятным процессом. Шаги были следующими:
- Вся модель или её часть экспортируется в Gravity Sketch через формат OBJ.
- Настройка форм и поиск деталей. Возможность увидеть свою модель в масштабе 1:1 значительно упрощает принятие решений и оценку пропорций.
- Эскиз импортируется обратно в Blender для дальнейшей полировки.

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

После этого пришло время развёртки модели. Я разместил швы и выполнил первоначальную развёртку в Blender, затем результаты были доработаны в RizomUV, поскольку там действительно отличные инструменты для управления UV. Упаковка также была выполнена в RizomUV. Я использовал аддон B2RUVL для переноса геометрии взад и вперёд. Автомобиль был разделён на 7 наборов UV 4k и 1 набор 2k для дополнительных деталей, которые были добавлены в самом конце производства.

Для первоначального запекания я использовал Marmoset Toolbag 4, где получил карты нормалей и AO, запечённые с высокополигональной модели.
После этого карты были импортированы в SP, где я выполнил ещё один проход по детализации, добавив небольшие заклёпки, отверстия и отметив пересечения деталей. В результате у меня появились окончательные карты нормалей, AO и кривизны. Остальные карты текстур, такие как карты нормалей в мировом пространстве, толщины и положения, были сгенерированы в SP автоматически.
Текстурирование
Наконец, пришло время для текстурирования! На этом этапе я собрал больше референсов для каждого элемента модели. Это позволило мне более чётко понять, чего я должен добиться с помощью работы с текстурами.

Я начал с разбивки всей модели на базовые материалы и настройки сцены в Marmoset для lookdev. Хочу обратить внимание на эти настройки, которые сильно влияют на отображение модели в Substance 3D Painter и Marmoset.
В Painter это функция сенситометрического тонального отображения, а также качество отображения шейдера AO:

В Marmoset это ACES тональное отображение в настройках постобработки камеры:

После завершения основы я решил в самом начале доработать один элемент, в данном случае это был основной корпус. Это позволило мне понять уровень детализации текстуры, необходимый для всех остальных частей, и помогло усилить интерес к проекту в целом.
Я придерживался следующей иерархии почти для каждого материала в сцене:
- Основа с цветовыми вариациями и деталями высоты.
- Изменение рёбер и полостей в зависимости от кривизны и AO.
- Царапины и выветривание.
- Всякие виды пыли, грязи, копоти и т. д.
- Слои коррекции цвета при необходимости.
Количество вариаций может быть разным в зависимости от желаемого вида. Почти каждый элемент обрабатывается вручную, что придаёт больше живости финальному виду материала.
Чтобы создать основу для древесного материала, я использовал Substance 3D Designer. Это позволило мне быстро определить общий вид деревянных досок, которые я хотел использовать для внутренних стен. В качестве базового цвета я использовал простую фототекстуру, найденную в интернете, и стандартный материал Substance для деревянных деталей Normal. Я также экспортировал маску досок в отдельный канал материала, чтобы лучше контролировать линию затирки в Painter.
В Painter я следовал практически тем же шагам, что и для любого другого материала, за исключением того, что решил варьировать цвет, привязав выход шероховатости, полученный из исходной фототекстуры, настроив уровни и применив его к базовому цвету в качестве ещё одного слоя вариаций.
Стеклянный материал состоит из самого стекла и двух вариаций грязи сверху. Одна покрывает общую грязь и грязь в углах, а другая в основном была нарисована вручную с использованием трафаретов и различных альф, чтобы разбить процедурный вид и добавить некоторые акцентные детали.
Основа для маски грязи на лобовом стекле была скомпилирована в Photoshop. Я экспортировал плитку грязи из Designer в Photoshop и преобразовал её в смарт-объект. Затем деформировал грязь, чтобы она соответствовала форме траектории стеклоочистителя. Затем я открыл содержимое смарт-объекта и добавил некоторые детали по бокам. Преимущество смарт-объектов в том, что я всё ещё могу работать с квадратным неискажённым изображением, пока все деформации уже сделаны и применяются автоматически. После этого я загрузил маску в Painter и немного подтолкнул её, чтобы она соответствовала желаемому виду.
Рендеринг и презентация
Во время процесса текстурирования я использовал Marmoset Toolbag 4 для lookdev. Это позволило мне быстро применять различные сценарии освещения к модели, что облегчило отладку и уточнение текстур. Несмотря на то, что Marmoset выдаёт отличные результаты, особенно с включённой трассировкой лучей, для финальных снимков я решил попробовать новый Cycles X, и он меня не разочаровал.
Что касается освещения, я использовал базовую трёхточечную схему с дополнительными источниками света, чтобы подчеркнуть определённые детали в зависимости от угла камеры и общей композиции.
Для каждого снимка я экспортировал проход с шумоподавлением и проход с шумоподавлением AO, а также альфа-канал для всей модели, что позволило мне отделить её от плоскости земли в Photoshop.
Каждый новый снимок сохранялся как отдельная сцена, что позволяло мне довольно эффективно вносить коррективы в каждое изображение.
В Photoshop проход красоты был объединён с фоном и преобразован в смарт-объект.
После этого я применил к нему фильтр Camera Raw и сделал основные настройки коррекции цвета, такие как экспозиция, контраст, кривые, резкость и так далее. Неразрушающий характер смарт-объектов делает их очень гибкими и лёгкими в настройке до самого конца. Кроме того, я также применил несколько корректирующих слоёв, чтобы осветлить некоторые области, выборочно затемнить по AO и виньетировать. То же самое было применено к каждому другому снимку.
И это всё.
Заключение
Я хочу выразить свою глубочайшую благодарность сообществу за невероятно тёплый приём. Я надеюсь, что эта статья будет вам полезна. Я также хотел бы поблагодарить команду 80 Level за возможность поделиться своим рабочим процессом.
Также я хотел бы обратиться к разбору Ильи Чернобрового его Volkswagen Type 166 и к туториалу Евгения Петрова по созданию пистолета для огромной помощи и вдохновения.
Никита Скотин, 3D-артист
Интервью проведено Арти Сергеевым
Автор: Nikita Skotin
Материал подготовлен на основе статьи 80.lv. Перевод — Skills Up.