Разбор.
Антон Терёшкин подробно разобрал проект оружия, над которым работал во время конкурса Weapon Skin, поделился своими подходами к моделированию, ретопологии и материалам, объяснил процесс рендеринга и освещения в Unity3D и упомянул несколько полезных советов и принципов, которые помогли ему вовремя завершить проект.

Введение
Привет, меня зовут Антон. Мне 24 года, и я старший технический художник в компании, занимающейся визуализацией для крупных отраслей. В основном я работаю над проектами, связанными с виртуальной реальностью, и визуализацией сложных технических процессов.
3D-моделирование — моё хобби. Это дополнительный навык, который помогает мне в работе с проектами Unity3d. В свободное время я в основном концептуализирую роботов, футуристическое оружие и оборудование.
В этой статье я хочу поделиться историей создания оружия для вселенной Hunt: Showdown. Это был мой первый опыт работы над подобными проектами. Но сначала я хотел бы отдать дань уважения ребятам из Crytek — они, несомненно, создали шедевр, хардкорный шутер в формате королевской битвы. Погружение в атмосферу игры для меня очень важно. Как художник, я мог бы часами наблюдать удивительные пейзажи Луизианы, фантастические объекты той эпохи, приправленные нотками ужаса и духом ковбойских стычек.
Также, будучи поклонником игры, я не мог пропустить юбилей и конкурс скинов оружия, организованный разработчиками. С самого начала я решил, что не буду вписываться в рамки мероприятия (оно было посвящено созданию скина оружия в 2D-редакторах по ранее выданному скриншоту), и решил сделать оружие в 3D.
Основной задачей для меня было крайне ограниченное время. Я хотел опубликовать оружие к юбилею игры, и когда узнал о дате, оставалось всего несколько дней. Поэтому сегодня я хочу поделиться с вами подходом, который помог мне быстро создать контент. Я надеюсь, что эта статья поможет вам прокачать свои навыки и повысить производительность.
Программное обеспечение, использованное для создания модели:
- Cinema 4D (моделирование и лепка)
- Houdini (ретопология)
- Marmoset Toolbag (запекание)
- Substance Painter (текстурирование)
- Unity3D (освещение и рендеринг)
Концепция
Прежде чем объяснить процесс, я хочу выделить несколько основных концепций и правил, которым я следовал.
Очень важно понимать, где, когда и в каких условиях используется ваш предмет. Вам нужен визуальный образ, далёкий от вашего предмета, но способный ассоциироваться с ним. В этом произведении искусства я концептуализировал что-то вроде этого. Это крепкий виски. Вы чувствуете аромат? Теперь мы готовы приступить к моделированию.

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

Моделирование
Я использую воксельную систему, которая позволяет мне быстро создавать формы. Также я использую несколько десятков булевых операций в структуре одной сетки с возможностью сохранения истории и интерактивного изменения. Также в основе моделирования лежит подход твёрдой поверхности, который отлично работает с воксельным моделированием в Cinema 4D.
Такой подход позволяет работать как художнику, а не как инженеру. Вам не нужно заранее продумывать все детали и этапы моделирования. У вас есть история всех операций и низкополигональная сетка с возможностью вернуться к любому этапу моделирования. Поэтому вы работаете сразу крупными мазками и не боитесь испортить модель!

Ствол был составлен из примитивов. А рукоять с металлическим кожухом и некоторые мелкие детали были смоделированы с использованием техники твёрдой поверхности. После завершения базовой сетки я решил поработать над узором дерева. Я использовал отображение текстур на поверхность модели с последующим переводом в геометрию. Также, используя поля ограничений, я замаскировал эффект на металлическом кожухе.
Лепка
На этом этапе базовая модель готова, поэтому я могу приступить к лепке. Cinema 4D позволяет переключаться между системой воксельного моделирования и лепкой, таким образом, я могу постоянно модифицировать её, добавляя как крупные, так и мелкие детали. В процессе лепки я использовал несколько удивительных кистей для дерева и металла —
Zbrush — 12 BurnWood Alpha, Prashant Dwivedi
Zbrush Alpha Pack — Metal surfaces, Fredo Gutierrez

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

UV-mapping
На этапе моделирования сетка имела 12 миллионов треугольников, что достаточно проблематично для использования в Substance Painter. Инструмент автосокращения Cinema 4D работает недостаточно быстро, поэтому я перешёл на Houdini.
Инструмент polyreduce сэкономил мне много времени, сократил объём полигонов до 8%, а для некоторых частей — до 3%. Этого достаточно для текстурирования. С помощью Equalize Lengths я могу редактировать вероятность формирования равносторонних полигонов, и, конечно, важно активировать опцию Preserve Quads — позже это позволит нам создать автоматическое UV-unwrap с минимальными усилиями.
Затем я экспортирую модель обратно в Cinema 4D. Обычно для игровых движков я создаю UW-unwrap в других программах, а затем выполняю ручную ретопологию, но для этой модели автоматических алгоритмов было достаточно.
Количество полигонов по-прежнему огромно, но я не хотел тратить больше времени на UV-unwrap и счёл этот результат приемлемым. Важно отметить, что я всё равно развернул и экспортировал промежуточные результаты Substance Painter, чтобы определить достаточность результата и исправить артефакты, связанные с формированием мелких фрагментов на UV-unwrap.
Во время ретопологии некоторые детали модели всё же были потеряны, и мне нужно было запечь их с оригинальной hi-poly модели. Marmoset Toolbag отлично работает с большими объёмами. Разделив модель на отдельные части, я запекал нормальные карты. В интернете есть много примеров работы с Marmoset, я использовал стандартный конвейер для работы с ним и хотел бы пропустить этот момент.
Теперь пришло время перейти к Substance Painter. Там я запекал оставшиеся карты (AO, Curvetures и т. д.), чтобы использовать их для умных масок и генераторов.
Работа с материалами
Дерево
В моём рассказе у оружия есть старый деревянный материал, покрытый грязью болот Луизианы. Я начал изучать деревянный материал в процессе моделирования, поэтому мне не пришлось использовать умные материалы. Достаточно было использовать генераторы и маски, чтобы подчеркнуть текстуру дерева. Я часто работаю с отдельными слоями с одним каналом (основной цвет, металл, шероховатость и т. д.), это даёт мне больше контроля, и я могу использовать много Anchor Point.
В первом слое я заливаю цвет, во втором использую генератор Dirt. Благодаря тому, что деревянная часть была смоделирована с учётом генератора, итоговая текстура выглядит отлично.
Однако продольный узор недостаточно хорош, поэтому я создаю дополнительный слой. Здесь я добавляю некоторые недостающие детали, используя стандартную процедурную текстуру и сферическое отображение. Затем я использую кисть, чтобы удалить ненужные царапины, которые не совпадают с направлением основной текстуры.



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

Я уделяю много времени деталям на этапе работы с материалами. Вы всегда должны помнить, что цвет редко бывает однородным (используйте шум), также используйте фильтры и уровни, чтобы уточнить характер ваших царапин и рельефов. И следуйте правилу 80/20: детали должны иметь определённый визуальный вес на всей картине и не должны превращаться в шум с любого угла.
Ближе к концу текстурирования я создал проект Unity3d и начал работать в двух окнах. В одном окне я продолжал текстурировать, а во втором проверял результат в игровом движке. Substance Painter имеет собственную конфигурацию экспорта текстур, совместимую с Unity HDRP.

Рендер Unity3d

Позвольте мне подробно описать часть Unity3d. Основы системы освещения в Unity были описаны во многих статьях в интернете. Ссылки на некоторые из статей приведены ниже. Поэтому давайте перейдём к короткому промо-ролику и некоторым интересным случаям.
Во всех случаях я использую Density Volume, внутри которого юнит хранит информацию о пост-обработке, скайбоксе, таких параметрах, как SSAO, SSR, Fog и т. д. Ниже я опишу один из интересных сценариев использования Density Volume. Для базовой настройки я рекомендую этот материал Обзор High Definition Render Pipeline | High Definition RP | 7.1.8
Здесь вы видите настройки двух основных Volume Boxes из моей сцены, первый отвечает за влияние света, скайбокса, теней. А второй — за такие эффекты, как Color grading, Vingete, Exposure, Gamma.
Для лучшего рендера рекомендую использовать пресет HDRP. Как я и обещал, есть несколько ссылок по этой теме:
- Как настроить High Definition Render Pipeline от Unity для высококачественных визуализаций
- (English) Начало работы с High Definition Render Pipeline: руководство для художников
После импорта модели я создал в проекте несколько источников света.
1) Направленный основной свет и 2) несколько дополнительных источников света


Далее все примеры будут основаны на анимации объектов с помощью встроенной системы Unity3d — Timeline. Чтобы получить изменение основной подсветки, я анимирую вращение направленного света. Unity автоматически создаёт кривые анимации, которые можно настроить для изменения характера анимации.
Для имитации огня под оружием я использую систему частиц, которая будет создавать источники света с изменением интенсивности свечения и коротким сроком жизни. Разместите эту систему под руками.
Я использую плагин Cinemachine для анимации камеры. Используя параметр Look At, я указываю объект, за которым будет следовать камера. С помощью таймлайна я анимирую движение камеры вокруг оружия.

Затем я использую параметр шума камеры и анимирую его затухание для создания эффекта медленного дрожания камеры.

Помня о траектории камеры, я добавляю 3 системы частиц дыма: в начале пути (откуда появится камера), под объектом и на заднем плане.

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

Создадим в сцене систему частиц. Она будет излучать 5000 частиц, используя текст в качестве источника.

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

Также я анимирую цвет частиц, чтобы в конце анимации они превратились в искру огня.
И пришло время для последнего штриха. Начало нашего видео выглядит так.

Я хочу, чтобы оружие появлялось в зависимости от близости камеры, чтобы имитировать эффект тумана. Для этого я добавляю дополнительный том пост-обработки. Для которого мы установим размытые границы (отключите параметр Global и создайте компонент Box Collider, установите Blend Distance равным 2).

Также увеличьте Priority. А внутри Volume мы устанавливаем туман на 1. Таким образом, внутри этого блока туман будет блокировать оружие, но когда камера приблизится, он плавно выйдет из зоны влияния объёма, и туман рассеется.
Теперь первый кадр выглядит так.

Несколько общих советов и принципов
Обычно я стараюсь создавать отдельные части модели без использования референсов или делаю их по памяти. То же самое с материалами. Перед использованием референсов я пытаюсь создать материал дерева из головы, продумывая, как может появиться та или иная деталь текстуры. И только потом использую референсы, анализирую, сравниваю и вношу изменения в свою работу. Это хороший подход к обучению, так вы сможете понять, как правильно анализировать окружение и научитесь размышлять о форме и материалах.
Если вы не знаете, как начать создание большой формы или материала, проработайте мелкую деталь. Это поможет вам оттолкнуться и развить идею более крупной формы.
Работая с материалами, большую часть времени я провожу не с кистями, масками или генераторами, а с комбинацией клавиш Alt + LM и Alt + на колесе. Другими словами, я вращаю и масштабирую модель и наблюдаю за целостностью сочетания материалов и частей.
Антон Терешкин, старший технический художник
Интервью проведено Арти Сергеевым
Автор: Anton Teryoshkin
Материал подготовлен на основе статьи 80.lv. Перевод — Skills Up.