Твёрдые поверхности в Maya и не только

Опыт создателя пропов для Call of Duty: Infinite Warfare.

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

3D-художник аутсорс-студии Elite3D, Бой Зихтерман (Boy Sichterman), рассказал порталу 80.lv, как сделать так, чтобы техника выглядела естественно. Прежде всего речь шла о работе с материалами в Maya.

DTF публикует перевод статьи.

Твёрдые поверхности в Maya и не только

Ещё до того, как узнать что-либо о 3D-арте, я много рисовал. Каждый дюйм свободного пространства в моей школьной тетради был покрыт воображаемым оружием, окружением и техникой. Добравшись до компьютеров, я начал изучать Photoshop, Gimp и After Effects и провёл значительную часть детства, создавая глупые видео. В средней школе мой учитель рисования рассказал мне о Maya. Дома я установил пробную версию, и всё завертелось.

Закончив среднюю школу в 2012 году, я поступил на четырёхлетние 3D-курсы в IGAD-NHTV в моём родном городе Бреда, в Голландии. Главное, что я узнал — не так много зависит от ПО и техники, как от взгляда на вещи. Мы с друзьями постоянно соревновались, кто сумеет сделать наилучшую работу, и единственным путём к победе была ежедневная и еженощная практика.

На третий год учёбы я получил предложение о работе от Elite3D, так что я договорился со своим учебным заведением, что буду проходить стажировку в этой компании, с тем чтобы остаться там работать, когда закончу обучение в 2016 году. Так и стал полноправным сотрудником Elite3D. Первой игрой, над пропами к которой мне посчастливилось поработать стала Call of Duty: Infinite Warfare.

Моделирование твёрдых поверхностей

Все мои личные проекты выполнены в Maya, кроме концептов окружения, созданных в Modo с использованием скруглённых шейдеров (rounded-edge shaders).

Твёрдые поверхности в Maya и не только

Моделируя в Maya, я использую поверхности с иерархическим разбиением (subdivision surfaces). Сначала я убеждаюсь в том, что базовая модель (blockout) хорошо выглядит со всех сторон. После я создаю все основные формы без мелких деталей и поддерживающих граней. Затем перехожу к стадии SubDiv и добавляю поддерживающие грани, чтобы убедиться, что всё сглаживается без зазоров (pinching). Узнать, где нужно добавлять эти грани можно только на опыте. Через некоторое время это входит в привычку и ты запоминаешь все трюки, чтобы избегать зазоров в разных ситуациях.

В самом начале пути мне помогли видеоролики «Hard Surface Essentials» от Гранта Уорвика (Grant Warwick).

Он использует 3ds MAX, но те же принципы работают и в других программах. Новички часто совершают ошибку, думая, что n-гоны (n-gons) плохи при SubDiv-моделировании, но в реальности можно использовать их столько, сколько нужно, до тех пор, пока всё нормально сглаживается. Следует только помнить, что они могут прерывать рёберные петли (edge-loops), так что впоследствии их будет сложнее удалять или редактировать.

Поскольку мои высокополигональные модели впоследствии будут «запекаться» в низкополигональные, можно использовать много так называемых «поплавков» (floaters). Это небольшие детали, которые «плавают» на поверхности базовой геометрии с контурами граней и лицевыми нормалями (face normal), аналогичными геометрии под ними. При «запекании» швы не видны и они будто смешиваются с поверхностью.

Такие «поплавки» значительно ускоряют высокополигональное моделирование, поскольку не нужно подгонять миллиарды рёберных петель в основной модели. Вместо этого вы можете просто продублировать их, добавив все мелкие детали. Сейчас с программами вроде Substance Painter и NDo можно даже добавлять детали этого типа во время процесса текстурирования, а не моделирования.

Твёрдые поверхности в Maya и не только

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

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

Твёрдые поверхности в Maya и не только

Вдобавок я также использую много инструментов Аднана Шометта (Adnan Chaumette) вроде «quickpipe», Maya Bonus Tools и скрипт, который превращает выделение лицевых нормалей в выделение одной стороны модели.

Совет: при создании цилиндров постарайтесь, чтобы у высокополигональной модели было столько же или вдвое больше частей (divisions) по сравнению с низкополигональной — это поможет при создании последней.

Механические элементы

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

Думаю, референсы — одна из самых важных вещей для художника. Для их поиска около года назад я начал использовать Pinterest. Просматриваю ленту каждый день, вдохновляясь и выстраивая в голове «библиотеку» форм.

Используя систему «constraints and parenting» в Maya можно легко создавать простые пробные риги (rigs) и проверять, работает ли конкретный механический элемент. Если вы знаете людей, любящих риггинг, возможно, стоит попросить их создать более сложные пробные риги — интересный вызов для них, польза для вас.

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

Также стоит упомянуть, что Maya 2016 и 2017 гораздо стабильнее выполняет булевы операции (booleans), так что не бойтесь ими пользоваться. Это значительно более творческий и экспериментальный процесс, чем стандартное моделирование «коробками». Очень весело вырезать различные формы друг из друга, создавая новые, которые иными способами получать дольше.

Функциональность

Главная причина, почему я слежу за функциональностью — это правило «форма следует за функцией». Попытка представить, как и что должно двигаться, отлично помогает с интересными дизайнами.

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

Меньшие детали (вроде внутренностей двигателя, осей и так далее) игрок никогда не видит, но я стараюсь как минимум предложить видимую функциональность, основанную на опыте пользователя. Это помогает сделать всю картинку убедительнее.

Материалы

Для текстурирования финальных низкополигональных моделей я использую Substance Painter 2. Материалы всегда создаю с нуля, чтобы лучше контролировать результат. Работая над окружением, часто использую предварительно заготовленные материалы, — так сцена выглядит, как единое целое.

— Каждый материал начинаю с заполняющего слоя (fill layer). Я понимаю, что главное — создать основу материала, и исходя из этого корректирую базовый цвет, «металличность» и шероховатость (roughness).

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

— Возможно, самый важный шаг. Я накладываю карту, добавляя вариации шероховатостей (rougness variation). Чаще всего это можно сделать, используя grunge-карты. Я создаю заполняющий слой (fill layer) и применяю grunge-карту к маске, как заполнение. После по-прежнему можно менять контраст и цветовой баланс grunge-карты.

Я всегда стараюсь использовать grunge-карты, «рассказывающие» историю, — с потёками, царапинами, точными деталями и так далее. Это помогает пользователю определить материал. Порой мне также нравится накладывать их поверх базового цвета, чтобы разница была заметна даже без блеска.

— После потёртостей я обращаюсь к каналу высот (height channel). Это тоже очень мощный инструмент для создания небольших деталей, помогающий сделать материал узнаваемым без «лепки». Он делает поверхность неровной, меняет отражения и создаёт интересные небольшие детали. Опять же, это делается с помощью заполняющего слоя и маски с grunge-картой.

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

Твёрдые поверхности в Maya и не только

Это происходит так. Все разные материалы — краска, ржавчина, грязь и металл — сгруппированы с их собственными масками. Изменяя маску, я контролирую, где материал показывается. До того, как начать текстурирование, проверяю, чтобы на AO (ambient occlusion) и нормалях не было артефактов, после — «запекаю» оставшееся пространство, место в мире, thickness- и curvature-карты, используя инструменты Substance, так что генераторы отвечают максимально точно.

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

Сначала я использую генератор масок, чтобы создать базовый износ. Генератор масок также позволяет добавлять grunge-карты, так что я разбавляю единообразие и создаю отдельные уникальные детали. Использование генерации экономит много времени и даёт хорошую основу для старта, но я всегда прорисовываю части поверх её результата вручную, чтобы не допускать ощущения процедурности окружения.

Обычно я использую как минимум два слоя грязи. Один из них, тёмный и «подкопчёный», добавляю в щели, которые собирали бы пыль и в реальной жизни. Это создаёт контраст и акцентирует формы объектов.

Небольшой совет: как и в Photoshop, клик на маске с зажатым Alt отображает её на модели.

Твёрдые поверхности в Maya и не только
Твёрдые поверхности в Maya и не только
Твёрдые поверхности в Maya и не только

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

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

Презентация

Чтобы продемонстрировать мои итоговые текстурированные ассеты, я использую Marmoset Toolbag. Не хочу вдаваться в подробности о его работе, дам только несколько советов.

— Marmoset Toolbag позволяет повысить разрешение и качество сэмплирования финального рендеринга в настройках захвата. Это не влияет на выводящуюся картинку — только на результат рендеринга. Я всегда делаю рендеринг на очень высоких разрешениях, — потом их можно понизить в Photoshop. Посколько рендер происходит очень быстро, я также «выкручиваю» сэмплы на максимум.

Твёрдые поверхности в Maya и не только

— Корректируйте свет для каждого «снимка». Не используйте одно и то же расположение источников для разных точек камеры. Убедитесь в том, что для каждого угла есть правильные ключевые и дополнительные источники освещения, подчёркивающие детали модели.

— Глобальное освещение. В реальном времени эту функцию можно использовать со времён Marmoset Toolbag 3. Она добавляет глубины свету, ассет выглядит менее плоским, в нём становятся видны тонкости.

— Безопасный кадр (safe frame). В камере рендера есть включаемая опция «Safe Frame». Она показывает границы финального рендера — становится проще кадрировать изображение.

— Постобработка в Photoshop. Я никогда не публикую результат рендера напрямую из Marmoset, а пытаюсь улучшить его: добавляю несколько настраиваемых слоёв, чтобы подправить контраст, насыщенность, добавить логотип и имя.

— Мне также нравится делать изображение более чётким (sharpen), для акцентирования деталей, но вместо того, чтобы применять фильтр ко всей картинке, я делаю это только на отдельных интересных участках. Это происходит так:

1. Переношу изображение на новый слой.

2. Делаю его чёрно-белым.

3. Применяю фильтр «high pass» и пробую разные настройки, чтобы меньшие детали появлялись на предварительном просмотре.

4. Накладываю ещё один слой, к которому применяю чёрную маску.

5. «Маскирую» акцентированные зоны.

Советы

Если вы хотите попасть в игровой 3D-продакшн, есть много туториалов. Вот неплохой список самых известных сайтов с платным и бесплатным обучением.

1818
3 комментария

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

7
Ответить

Спасибо за перевод отличной статьи.

Ироничное совпадение, что буквально только что получили ответ от NHTV, что для low tuition fee нужно голландское гражданство. Программа факультета IGAD просто мечта, а сам университет хвалят и рекомендуют все, кого не спросишь.

1
Ответить

Читал оригинал на днях. Еще раз с удовольствием прочитал в переводе. Спасибо.

1
Ответить