Making-of "Сатир"
Привет всем! Меня зовут Крюков Андрей. Я работаю в небольшой компании, занимающейся разработкой игр. В этой статье я хочу поделиться процессом создания моей работы “Сатир”.
Идея у меня формировалась постепенно, случайно попадались референсы на Pinterest, которые себе сохранял в копилку. Для сбора референсов и удобства их систематизирования советую небольшую бесплатную программу Pure Ref.
Моделирование.
Про моделирование расскажу коротко. Для доспехов сначала я сделал грубую боксовую модель в Maya, чтобы определиться с силуэтом и первичными формами. Когда меня устроил силуэт, я уже более подробно проработал в майе модель. Затем в ZBrush добавил мелких деталей, царапин и сколов.
Голову обычно начинаю со своей базовой заготовки для головы. Грубо леплю, потом делаю ретопологию. В итоге сделал два варианта:
Чтобы определиться какой вариант делать дальше, накидал грубо текстуры в ZBrush и сделал тестовые рендеры. Эти варианты я обычно показываю друзьям и коллегам для критики.
После того как выбор сделан, я доделываю модельку и запекаю displacement в 16-битную карту. Запекаю прямо в ZBrush, используя MultiMap Exporter.
В ZBrush я остановился на уровне средних деталей, то есть только складки и морщины. Поры и более мелкие детали я прорабатываю в Mari, мне там приятнее работать - карту проще доработать, в ZBrush при переходе к таким мелким деталям работать очень сложно, сетка становится слишком плотной.
Немного про развертку. Почти всегда развертки в UV Layout’е, но в этот раз решил попробовать Unfold3D 9, и был очень удивлен тем, насколько он быстро всё разворачивает и удобно пакует в сравнении с UVLayout; да и интерфейс удобнее, если кто в нем работал, меня поймет) В общем всем советую, попробуйте)
Текстурирование головы.
Как я уже успел упомянуть выше, голову я текстурил в Mari. Я начал с Diplacement карты. Для дисплейса я нарисовал карту, используя текстуры c surfacemimic.com. Очень важный момент карта должна быть 16-битной. Плюс есть карта которая была запечена в браше, она тоже 16-битная. Карту из мари кладем верхним слоем на zbrush’ ную, чтобы объединить детали из браша с текстурой созданной в Mari.
Далее я сделал карту Diffuse, путем проекции фотографий, текстуры брал с 3d.sk. Остальные карты для шейдера кожи - shallow sss, mid scatter, deep sss, specular и glossines, получил из Diffuse просто коррекциями слоев. Не рисовал отдельно DeepSSS, при тестовых рендерах я его получил процедурно из карты mid scatter.
Есть классный туториал по текстутрированию Painting a Realistic Skin Texture Using Mari. Доспехи текстурил в Quixel Suite. Подробно останавливаться на этом моменте не буду, Никаких хитростей в этом процессе не было.
Рендер
Для рендера использую обычно Arnold.
Сетап для света достаточно простой, два лайтбокса и dome лайт. Все источники света с hdr текстурами. Для софтбоксов брал эти hdr’ки https://www.behance.net/gallery/2971409/Photo-Studio-Lights-HDR-30
Для материалов я использовал шейдер пак - alShaders
Основной шейдер alSurface подходит практически для любого типа материалов. В нем уже два слоя Specular (оба слоя GGX BRDF) и три слоя SSS. С ним уже можно не заморачиваться с многослойными шейдерами, в нём уже всё есть)
Еще такой совет, обычно для тестовых рендеров кожи я использую одну карту Diffuse, из нее процедурно, корректирующими утилитами получаю все остальные карты Shallow SSS, Mid SSS, Deep SSS. Для быстрого тестового рендера это очень помогает.
Волосы
В Maya 2015 extension 2 появился очень крутой инструмент для работы с волосами и инстансами - XGen. Уроков немного, а сам инструмент не простой, но разобраться можно ) очень советую этот туториал “Xgen guide curve based grooming essentials”
Итак немного опишу свой процесс . Сначала я создаю для каждой зоны (например борода, брови и волосы на верхней части головы) отдельную сетку. Так удобнее при анимации и если например основная сетка головы поменяется, вам не нужно всё заново настраивать или трансферить волосы на новую сетку.
Есть несколько способов создать мех или волосы XGen’ом, я использую для волос обычно вот такой
При создании гайдов советую сначала создать общую форму небольшим числом гайдов. А затем уже прорабатывать детали, постепенно добавляя гайды.
В Maya 2016 появился крутой инструмент Sculpt Guides, очень помогает для создания общей формы кривой гайда, работает он примерно как move в zbrush для fiber mesh’a.
После того как сделана общая форма небольшим числом гайдов, нужно добавлять модификаторы. Модификаторов очень много, но основные это clumping, noise и сut.
Сlumping позволяет группировать волосы в локоны. Обычно я добавляю 3 модификатора clumping. На скрине эффект от добавления каждого модификатора.
Материал волос
Для материала волос я использовал шейдер alHair. Cила XGen в том что вы можете создавать свои кастомные переменные и добавлять их потом в материал как текстуры.
Я сделал две переменные, color_rand это переменная, создающая текстуру шума для материала, root_color это переменная в которой карта, которую я нарисовал для отдельных участков бороды, чтобы сделать их более седыми.
Затем в Hypershade я создаю ноду Ai UserData Color, в которой указывается название переменной. Ноды для переменных и текстуру градиента для волос я соединяю многослойной нодой alLayerColor.
Пост процесс.
Рендерил всё в многослойный 32-х битный exr. Весь пост процесс делал в Nuke, для DOF использовал плагин от Peregrine labs Bokeh.
В итоге работа выглядит вот так.
Большое спасибо всем, кто дочитал до конца, надеюсь, не было скучно). Спасибо всем, кто помогал советами и критикой, особенно моей девушке ;). На этом все. Не останавливайтесь и всегда завершайте начатое!)
С уважением, Андрей.
P.S. Если есть вопросы, задавайте, постараюсь на все ответить)