Переносим пайплайн Тима Бергхольца из 3dsMax в Blender

Переносим пайплайн Тима Бергхольца из 3dsMax в Blender

На примере кусочка его обучающего видео по созданию меха для 3dsmax от Chamfer Zone.

Тим написал отличный 15 часовой курс по полному пайплайну работы над мехом, который включает в себя весь путь от блокинга до запечки и покраски. Я пересмотрел очень много туториалов, и, субъективно, считаю конкретно этот видеокурс одним из лучших для того, чтобы закрепить ваши навыки и попытаться ответить на существующие вопросы по созданию полностью gameready модели.

В курсе есть одно единственное но: вся работа ведется в связке 3dsMax с прочим софтом, а я уже так привык к блендеру, что снова менять шило на мыло не было никакого желания, поэтому я потратил некоторое время, перепробовал с добрый десяток различных приемов и наконец достиг абсолютно аналогичного результата, который предлагает Тим, и все это силами Blender 2.8.

Дисклеймер: Я не претендую на звание профессионального 3дшника. Более того, для меня это не более, чем хобби. И эта статья — сборник личных заметок, которые, потенциально, могут кому-нибудь помочь. И если хотя бы один человек скажет спасибо — буду считать свою миссию выполненной. =) В своих гифках для упрощения и ускорения работы я использую допиленную модификацию блендера HeavyPoly. За исключением приятных pie-менюшек упрощающих жизнь, она полностью дублирует функционал обычной версии Блендера. Поэтому никаких проблем с совместимостью возникнуть не должно. Если каким-то чудом окажется, что проблемы есть — залетайте в комментарии, попробуем их ликвидировать коллективным разумом, а я затем дополню статью. Я также не буду затрагивать совсем уж базис интерфейса и кнопок; будем считать, что у читателя уже есть стартовое понимание того, как все работает. Погнали.

Словарик

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

Эдж (ребро) — линия геометрии, состоящая из двух точек
Эдж (ребро) — линия геометрии, состоящая из двух точек
Фейс (грань) — собственно, ограниченная эджами плоскость. Это может быть как квад, так и н-гон
Фейс (грань) — собственно, ограниченная эджами плоскость. Это может быть как квад, так и н-гон
Квад - плоскость из четырех точек (вертексов), основа любого хорошего полигонального моделирования. (Соответственно, трис — будет состоять из трех точек и являть собой треугольник)
Квад - плоскость из четырех точек (вертексов), основа любого хорошего полигонального моделирования. (Соответственно, трис — будет состоять из трех точек и являть собой треугольник)
Н-гон - плоскость из более, чем четырех точек
Н-гон - плоскость из более, чем четырех точек

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

Луп - дословно, петля; линия разрезающая нашу геометрию так, чтобы получилось замкнутое кольцо. Позволяет очень быстро менять форму объекта. 
Луп - дословно, петля; линия разрезающая нашу геометрию так, чтобы получилось замкнутое кольцо. Позволяет очень быстро менять форму объекта. 

Твик — легкие изменения. «Потвикать» - поиграться с настройками для достижения лучшего результата.

Реф (reference) — исходная картинка, которой мы стараемся соответствовать во время моделирования.

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

Экструд (extrude) — операция по «вытягиванию» полигонов. Проще всего объяснить, что кубик получается экструдом из квада.

Бевел (bevel)(он же - chamfer - он же - фаска) — такой операцией мы можем легко превратить жесткий 90-градусный угол в грань (фейс), или в аккуратный скат. Можно применять как к отдельным эджам, так и ко всей модели, если топология позволяет.
Бевел (bevel)(он же - chamfer - он же - фаска) — такой операцией мы можем легко превратить жесткий 90-градусный угол в грань (фейс), или в аккуратный скат. Можно применять как к отдельным эджам, так и ко всей модели, если топология позволяет.
Шейдинг — это то, как грани вашей модели реагируют на освещение, если говорить совсем грубо. На модельке с хорошим шейдингом нет никаких искажений форм и угловатых граней.  На примере шейдинг получился не очень, потому что отдельные углы нельзя замаскировать сглаживанием, и они пытаются быть острыми, но не могут. Отсюда и косяки в тенях.
Шейдинг — это то, как грани вашей модели реагируют на освещение, если говорить совсем грубо. На модельке с хорошим шейдингом нет никаких искажений форм и угловатых граней.  На примере шейдинг получился не очень, потому что отдельные углы нельзя замаскировать сглаживанием, и они пытаются быть острыми, но не могут. Отсюда и косяки в тенях.

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

Лоуполи — низкополигональная модель, которая примерно повторяет формы своей старшей сестры (как можно более четко) и при этом обладает как можно меньшим количеством полигонов.

Основная форма

Как и обычно, стартуем с кубика. Пока магии никакой нет. Банальные Extrude + bevel + базовые трансформации.

Легонько твикаем форму, чтобы она совпадала с рефом, далее "пытаемся" добавить вертикальный луп по модельке (горячая клавиша по умолчанию ctrl+r). Блендер не дает нам этого сделать, потому что одна из поверхностей, которую мы собираемся "прорезать" лупом — это н-гон, а не квад. Но мы не боимся такого поворота событий: сейчас нас не сильно волнует корректность топологии. Добавляем два неполных лупа по бокам, соединяем точки, получаем луп поперек нашего большого н-гона.

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

Вы также могли заметить, что я после прорезки эджей выделил три верхних фейса и на всякий случай выровнял их относительно горизонтальной оси. HeavyPoly позволяет это сделать в один клик, в обычном блендере же операция несколько более громоздкая: вам необходимо выделить эдж, который вы хотите выровнять, затем нажать S (scale), затем выбрать одну из трех осей (x, y, z на клавиатуре соответственно), относительно которых вы собираетесь выравнивать, а затем нажать 0. Такую манипуляцию неплохо проворачивать время от времени, если вдруг вам кажется, что нужные поверхности не идеально ровные.

Продолжаем работу над формой. Из новых инструментов, которые я использую, добавился нож, или knife (горячая клавиша "говорящая" - K). Проводим линию от нужной нам точки на ребре до другого ребра, и нож автоматически добавит нужные точки на пересечениях с другими ребрами. Если выйдет криво — нестрашно, ведь мы уже умеем выравнивать вещи по осям.

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

Небольшие доработки по форме и мы можем заняться клонированием нашей запчасти. Мы можем просто продублировать форму через shift+d, но тогда эти объекты будут независимы друг от друга. Если же мы продублируем объект через alt+d, то получится как раз аналог instance, который Тим использует в туториале: меняем одну форму — меняется другая.

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

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

В обычном блендере операция занимает на одно действие больше, и для этого нам понадобится магический 3д-курсор. Давайте найдем его в панельке отображения, затем через shift+правый клик поместим на нужный фейс, затем кликнем по фейсу и нажмем ctrl+правый клик. Далее стандартно любым методом добавим новую форму и провернем с ней необходимые манипуляции. Чтобы вращать форму на фиксированный шаг, во время поворота зажимайте ctrl.

Дело остается за малым: дорабатываем цилиндр и делаем соединение с лапкой.

А теперь начинается самое интересное.

Джедайские техники сглаживания

Итоговый результат Тима с накинутыми модификаторами и поправленными смузгруппами. Красиво! Мы можем также.
Итоговый результат Тима с накинутыми модификаторами и поправленными смузгруппами. Красиво! Мы можем также.

Тим в своем туториале работает через смузгруппы (определяемые пользователем группы сглаживания фейсов), операцию chamfer и turbosmooth. В Блендере мы сделаем все то же самое, но немного другим набором инструментов: также одновременно у нас получится и хайполька, и лоуполька.

В этом нам помогут следующие операции: правый клик по эджу + mark sharp и ctrl+shift+e на выделенном эдже плюс оттягивание мышки вбок. Первая операция пометит ребро как "острое", чтобы сглаживание понимало, какие углы сглаживать точно не надо, а второе позволит нам задать своего рода "маску" для операции bevel , которая аккуратненько задаст все нужные лупы-поддержки для того, чтобы хайполька вышла красивой. При смене веса эджа он поменяет цвет на аккуратный синий по умолчанию.

Заметьте, что я справа поменял угол, который будет считаться минимальным для того, чтобы сглаживание определило его, как "мягкий". Можете сами потвикать этот параметр до достижения нужной общей картины.

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

Теперь мы долго и нудно повторяем операцию для всех ребер на модели, которые считаем "острыми", не забывая при этом следить за шейдингом модели. В отдельных местах придется добавить ребра вручную, как я это сделаю на цилиндрах, например. Если вы чувствуете себя уверенно — можете уже на этом этапе использовать "mark seam", чтобы помечать будущие разрезы для нашей оригами-развертки. =) Все там же по правому клику на выделение эджей.

Чтобы более детально проработать шейдинг можете залезть в настройки вьюпорта и выставить на максимум значения ridge и valley, которые укажут вам на потенциальные проблемы при сглаживании.  Яркие освещенные ребра — это выпуклые сгибы. Темные, соответственно — вогнутые. Если что-то пойдет не по вашему плану, подсветка сразу подскажет, что не так, и где нужно поправить кривые плоскости.
Чтобы более детально проработать шейдинг можете залезть в настройки вьюпорта и выставить на максимум значения ridge и valley, которые укажут вам на потенциальные проблемы при сглаживании.  Яркие освещенные ребра — это выпуклые сгибы. Темные, соответственно — вогнутые. Если что-то пойдет не по вашему плану, подсветка сразу подскажет, что не так, и где нужно поправить кривые плоскости.

Когда закончите, то от достаточной для запечки хайполи вас будут отделять всего несколько шагов. Самое время сохраниться, и назвать наш бэкап как-нибудь вроде "model_lowpoly_plus_weights". Вообще почаще сохраняться итерационно — очень хорошая практика.

Теперь мы объединяем наши болванки воедино и накидываем на конструкцию модификатор bevel. В качестве опции определения лимитов выбираем weight. Я обычно ставлю 2 сегмента и слегка твикаю profile. Остается только нажать tab, чтобы автоматически добавить модификатор subsurf_base. Аккуратнее в нем с настройками, одно неловкое вписывание циферки, и ваша боевая машина может не справиться с резко возросшим количеством полигонов.

Если вы все сделали правильно, то у вас должна получиться чистенькая и гладкая картинка.

Переносим пайплайн Тима Бергхольца из 3dsMax в Blender

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

супер быстрый фотобаш-оверпейнт-пятиминутка, чтобы вы могли понять ход мыслей
супер быстрый фотобаш-оверпейнт-пятиминутка, чтобы вы могли понять ход мыслей

Ну а если стоит задача дальше двигаться по пайплайну, то следующий ваш шаг — развертка. Можно, конечно, заняться этим делом прямо в блендере, используя вышеупомянутую опцию "mark seam" при работе с ребрами (она пометит места, по которым модель будет "разрезаться" при развертке). Но мое персональное мнение, которое ни в коем случае не претендует на истину в последней инстанции — воспользуйтесь тем же Rizom, например. И дальше можно следовать 1 в 1 туториалу Тима.

Спасибо за внимание!

4.6K4.6K открытий
27 комментариев

Спасибо за наводку. Но на правах 3дшника не могу не докопаться..

Ответить

Это скриншот из туториала Тима ;D Мой вариант — предпоследний скриншот в статье.

Ответить

А возможно найти на "DTF" гайд для других "3D-Modeling" программ?

Ответить

хочешь совет?  вообще забей на эти статьи. на ютубе по блендеру уже все есть. Ну или пошарь туторы на торентах. Вот эти статьи - давайте подвинем едж и сделаем екструд должны были остаться в 2000 году)

Ответить

Жаль, что нет бесплатного кроссплатформенного аналога фотошопа уровня блендера.

Ответить

gimp / krita

Ответить

Bevel — фаска

Ответить