НАВИГАЦИЯ ИГРЫ

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

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

3D-художник аутсорс-студии Elite3D, Бой Зихтерман (Boy Sichterman), рассказал порталу 80.lv, как сделать так, чтобы техника выглядела естественно. Прежде всего речь шла о работе с материалами в 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, я использую поверхности с иерархическим разбиением (subdivision surfaces). Сначала я убеждаюсь в том, что базовая модель (blockout) хорошо выглядит со всех сторон. После я создаю все основные формы без мелких деталей и поддерживающих граней. Затем перехожу к стадии SubDiv и добавляю поддерживающие грани, чтобы убедиться, что всё сглаживается без зазоров (pinching). Узнать, где нужно добавлять эти грани можно только на опыте. Через некоторое время это входит в привычку и ты запоминаешь все трюки, чтобы избегать зазоров в разных ситуациях.

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

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

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

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

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

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

Вдобавок я также использую много инструментов Аднана Шометта (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-картой.

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

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

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

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

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

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

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

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

Презентация

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

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

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

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

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

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

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

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

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

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

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

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

Советы

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

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

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

Нравится9
Комментарии (4)
B
i
u
Спойлер