Making Of "Збраш робот"
Всем привет!
Всем привет! Меня зовут Подвысоцкий Александр (SharG), работаю 3Dмоделлером в Днепропетровске.
В этом Making-Of'е я расскажу о том как создавался робот для конкурса "Скульптинг на скорость №59".
Всё написанное ниже является исключительно моим видением вопроса, я ни в коем случае не претендую на роль «всезнающего HSS-скульптора», поэтому если у кого-то есть какие нибудь замечания/уточнения по теме – милости прошу в комментарии, а я просто расскажу о том, как придумывался и создавался конкретно этот персонаж. Также заранее приношу свои извинения за погрешности в терминологии и стиль изложения.
Идея
Я уже давно собирался сделать персонажа с использованием HSS в Zbrush и даже пару раз начинал, но ничего толкового не получалось – быстро перегорал и никак не мог довести работу до конца. Поэтому, когда на почту пришла рассылка с темой очередного "Скульптинг на скорость" я решил поучаствовать, надеясь, что временные рамки конкурса помогут мне не перегореть посередине процесса и наконец-то сделать задуманного персонажа.
Концепт
Рисую я так себе, ну а точнее вообще никак, поэтому для концептов своих работ всегда использую DynaMesh-скульптинг.
Работа с DynaMesh выглядит следующим образом:
- Берём любую болванку и преобразовываем её в DynaMesh (в свитке Geometry есть большая кнопка DynaMesh (1. на рисунке DynaMeshQuickSketch));
- Сначала работаем с небольшим разрешением сетки (разрешение выставляется под кнопкой DynaMesh (2. на рисунке DynaMeshQuickSketch) и зависит от размера редактируемого объекта – чем больше объект, тем плотнее будет сетка);
- Постепенно из этого DynaMesh'а вылепливаем форму модели. Каждый раз, когда сетки не хватает, пересчитываем её. Для пересчёта сетки достаточно протянуть с зажатым Ctrl по свободной от модели области экрана. Если при этом мы хотим максимально сохранить детали модели нужно включить Project (3. на рисунке DynaMeshQuickSketch), если нам нужно сохранить ещё и полигруппы - включаем Group (4. на рисунке DynaMeshQuickSketch);
- Затем разделяем наш скетч на составные части (разделяем модель на полигруппы, используя SliceCurve (13. на рисунке DynaMeshQuickSketch), а затем в свитке SubTool преобразуем все полигруппы в отдельные сабтулы – кнопка Groups Split (6. на рисунке DynaMeshQuickSketch)).
- Всё, что получилось несимметричным, делаем таковым с помощью Mirror And Weld (7. на рисунке DynaMeshQuickSketch), находится снизу в свитке Geometry.
На этапе скетча я пользовался кистями Move, ClayBuilup, hPolish, ClipCurve и Smooth (10, 11, 12, 13 и 14. на рисунке DynaMeshQuickSketch соответственно). Также мною были использованы Insert Brush (8 и 9. на рисунке DynaMeshQuickSketch), чтобы добавить цилиндры и сферы и TransPoseTools (15. на рисунке DynaMeshQuickSketch), чтобы перемещать поворачивать и масштабировать отдельные части модели.
DynaMeshQuickSketch
Внешний вид этого робота собран из всего увиденного мною за последние годы в КГ - Трансформеры, роботы четвёртого доминанса, весь HSS выложенный на Zbrushcentral'е и т.д. Всё это я попытался соединить со своими наработками за последние несколько лет.
Ну и ещё я всегда стараюсь делать персонажа с правильной осанкой даже на начальной стадии, другими словами, стараюсь соблюдать все изгибы (ноги, позвоночник, шея), чтобы персонаж стоял естественно, без ненужных напряжений и не казался закрепощённым.
Когда болванка-скетч была готова, стало ясно, что делать её до конца я не буду. По-хорошему болванка доделывается до состояния, когда отличие между ней и готовой моделью только в степени обработки, но это очень долго и почти то же самое, что сделать персонажа дважды %), результат конечно будет лучше, но тут был «Скульптинг на скорость»... В общем, я решил, что буду собирать готового робота прямо из текущего состояния Dynamesh-скетча.
Оснавная часть работы над персонажем делалась следующим образом:
Быстрый HSS
Маской (зажатый Ctrl) рисуем силуэт будущей детали:
Затем создаём из маски отдельный сабтул (в свитке Geometry выставляем толщину Thick, нажимаем Extract и Accept):
При необходимости применяем GroupsLoops (свиток Geometry), это сгладит углы и поможет убрать некоторые косяки, если они возникнут:
С помощью ClipCurve отрезаем ненужные сглаженные углы, уточняем форму:
Завершаем работу с деталью, делая фаски по краю. Для фасок я использую сочетание кистей TrimDynamic и hPolish:
Видео для наглядной демонстрации процесса:
Для начала делаем ретопологию будущей детали (добавляем Zsphere как отдельный сабтул, в свитке Topology нажимаем на кнопку Edit Topology и рисуем новую топологию):
Преобразуем эту топологию в сетку, предварительно задав ей толщину. Толщина задаётся в свитке Topology -> параметр Skin Thikness, а чтобы посмотреть результат, нужно нажать 'A' на клавиатуре, либо кнопку Preview в свитке Adaptive Skin. При этом нужно выставить параметр Density равным 1, иначе ZBrush изначально будет делать один лишний SubDiv для нашей ретопологии. Когда выбранная толщина нас устроит, создаём из полученной сетки отдельный сабтул - нажимаем Make Adaptive Skin в свитке Topology.
Дальше нужно применить Crease к тем рёбрам, которые должны быть видны при сглаживании сетки. На видео этот процесс виден нагляднее поэтому см. видео:
Ну и в конце добавляем нашей сетке пару сабдивов (Geometry->Divide ), получаем следующий результат:
Видео процесса
Такой способ HSS даёт более качественные результаты, но и отнимает больше времени, поэтому в описываемой работе я пользовался первым способом.
Радиальная симметрия.
Кроме пластин, в роботе много цилиндрических деталей. Такие детали очень просто делать, используя радиальную симметрию. Чтобы использовать этот инструмент, нужно в меню Transform нажать ActivateSymmetry (или просто 'X' на клавиатуре), затем выбрать ось симметрии, нажать кнопку (R) и выставить количество экземпляров (RadialCount).Для того, чтобы до конца объяснить, как это работает, вот видео:
Примеры использования мной радиальной симметрии в описываемой работе:
Если включить радиальную симметрию по всем осям, то можно создавать сферические детали :), таким образом были слеплены "мячи" на плечах робота.
DecimationMaster
После использования радиальной симметрии почти все сделанные с её помощью детали я оптимизировал с Decimation Master. Если этого не делать, браш начинает тормозить из за большого количества полигонов. В меню ZPlugs в свитке Decimation Master сначала нужно нажать Pre-process Current, затем выставить нужное количество треугольников и нажать Decimate Current.
Сабтулы
Если пользоваться любым из описанных мною способов для создания HSS моделей, то накапливается большое количество сабтулов, в этой работе доходило до 150-ти штук, поэтому на протяжении всего процесса я старался использовать Dynamesh невысокого разрешения с сабдивами или сабтулы, предварительно оптимизированные при помощи Decimation Master.Используя всё, о чём писал ранее, я сделал из Dynamesh-скетча робота без мелких деталей - стыков, болтов и т.д.
Вот Хронометраж работы (правда, 13-е число куда-то пропало):
Для отверстий, болтов и заклёпок использовалась кисточка Standart и стандартные альфы. Для создания стыков использовалась кисточка Slash3.
Кроме кисточки Slash3, для стыков, таких, как тот, что обозначен жёлтым на рисунке выше, я использовал следующий метод:
Разделяем модель, на которой будем делать стыки, на полигруппы с помощью SliceCurve:
Затем преобразуем в Dynamesh с обязательно включёнными Project и Group. Значение Blur должно быть равно 0. Получаем действительно разделённую на части деталь, стыки обрабатываем Smooth'ом:
Прийдётся для начала разделить деталь на несколько независимых полигрупп, каждый раз при разделении пересчитывая Dynamesh:
После этого с помощью GroupVisible в свитке Polygroups перегруппировать сетку как показано на рисунке ниже:
Чтобы расставить всё по своим местам - видео:
Кроме мелкой детализации, нужно было заполнить все пустые места на руках и ногах мышцами. Мышцы делались точно так же, как все остальные детали: Mask -> Extract -> GroupLoops.
Ну вот как-то так, используя всё описанное выше, я сделал полностью готовую для конкурса модель робота.
Когда доделал, стало ясно, что у меня есть ещё один день в запасе (просчитался я %)). Чтобы не тратить этот день зря – я решил сделать роботу оружие, это позволило мне избавиться от симметрии и добавить запоминаемости силуэту. Когда я делал пушку, использовал всё то, о чём писал выше.
Перед тем, как это сделать, я оптимизировал робота с помощью всё того же DecimationMaster, правда оптимизация была выборочной, нетяжёлые детали я не трогал. До оптимизации работа весила 50 млн. полигонов а после - 7,5 млн.
После оптимизации я пообъединял сабтулы по принципу: кисть, предплечье,плече, голова,туловище и т.д.
После этого с помощью TransposeTools выставил позу для робота. Позу выбрал не сложную, так как с TransposeTools не очень люблю работать, постарался добиться, чтобы робот просто естественно стоял.
Всего для этой работы я делал два рендера - один с простыми источниками света средствами BPR, а второй с Lightcap под композ в фотошопе средствами BPR.
Первый способ:
Для освещения использовались три источника света. В ZBrush под трёхточечную модель есть заготовка - первые три лампочки = трёхточечная модель, правда, положение источников света и их интенсивность всё равно пришлось настраивать.
Рисующий источник - интенсивность 1 и выключил амбиент.
Рефлектирующий - сделал его холодным.
Контирующий - поднял интенсивность до 0.5
В качестве материала я использовал Metal01.
В настройках рендера включил тени и АО, задал им параметры, которые вы найдёте на картинке ниже.
Всё это для серьёзного рендера естественно не подойдёт, но чтобы по-быстрому подать модель вполне годится.
В фотошопе я поверх отрендеренного положил буфер глубины (Depth в BPR RenderPass). Накладывается он через Multiply.
Этот рендер я использовал для галереи, он немного сложнее первого, но опять же - это быстрый компромиссный вариант рендера. Если хотите качественно рендерить и при этом не сойти сума, подстраивая шейдера и прочее в браше, делайте Decimate моделям и рендерьте их в 3DsMax.
Тем не менее:
За основу был взят первый рендер, но вместо контирующего источника света я использовал LightCap, сделанный из HDRI.
Такой LightCap делается очень просто:
В меню Light находите Background и в поле-кнопку Texture загружаете ваш HDRI.
Затем выставляете количество сэмплов для LightCap (от этого зависит количество созданных лайткапом источников света) и нажимаете LightCap.
В конце правите интенсивность для каждого источника света (я уменьшал до 0,3 для всех).
Вот и всё. Дальше был рендер большого количества нужных и не очень пассов.
Так как изначально я не решил какого цвета будет робот и сколько мне понадобится слоёв, я сделал по максимуму пассов (BPR тем и хорош, что если менять только цвет или материал, он использует старый просчёт освещения и всё это происходит очень быстро).
Пассы для основного и дополнительного слоя краски:
Выглядело это всё так:
Ну и так как красный, синий и зелёный роботы на Zbrushcentral уже были, я решил сделать своего чёрным. Итого получилось вот что:
Вот так выглядела разработка данного персонажа. По ходу разработки использовались самые быстрые методы, которые я знаю, это, конечно, сказалось на качестве модели - если бы делалось всё без оглядки на сроки, то могло бы получиться лучше, надеюсь, в следующий раз так и будет :).
Огромное спасибо администрации Render.ru за приглашение написать Making-Of.
И спасибо всем, кто так или иначе содействовал его написанию.
И отдельное огроменное спасибо всем, кто смог дочитать аж до этой строки.
П.С.
По плану Making-Of'а, присланного мне администрацией - пара советов:
- Рекомендую использовать второй алгоритм сглаживания в ZBrush - он даёт лучшие результаты и корректно сглаживает "звёзды". Работает следующим образом: зажимаете Shift и начинаете сглаживать, отпускаете Shift, но сглаживать продолжаете.
- Всегда включайте в меню Brush -> AutoMasking пункт BackfaceMask - это позволяет нормально работать с тонкими объектами - с включенным BackfaceMask кисть не влияет на заднюю сторону объекта.
- Если рисуете длинную линию, пользуйтесь LazyMouse - включается в меню Stroke.
- Очень полезна кнопка '1', она повторяет последнее действие
Всем спасибо за внимание.