Переносим пайплайн Тима Бергхольца из 3dsMax в Blender
На примере кусочка его обучающего видео по созданию меха для 3dsmax от Chamfer Zone.
Тим написал отличный 15 часовой курс по полному пайплайну работы над мехом, который включает в себя весь путь от блокинга до запечки и покраски. Я пересмотрел очень много туториалов, и, субъективно, считаю конкретно этот видеокурс одним из лучших для того, чтобы закрепить ваши навыки и попытаться ответить на существующие вопросы по созданию полностью gameready модели.
В курсе есть одно единственное но: вся работа ведется в связке 3dsMax с прочим софтом, а я уже так привык к блендеру, что снова менять шило на мыло не было никакого желания, поэтому я потратил некоторое время, перепробовал с добрый десяток различных приемов и наконец достиг абсолютно аналогичного результата, который предлагает Тим, и все это силами Blender 2.8.
Дисклеймер: Я не претендую на звание профессионального 3дшника. Более того, для меня это не более, чем хобби. И эта статья — сборник личных заметок, которые, потенциально, могут кому-нибудь помочь. И если хотя бы один человек скажет спасибо — буду считать свою миссию выполненной. =) В своих гифках для упрощения и ускорения работы я использую допиленную модификацию блендера HeavyPoly. За исключением приятных pie-менюшек упрощающих жизнь, она полностью дублирует функционал обычной версии Блендера. Поэтому никаких проблем с совместимостью возникнуть не должно. Если каким-то чудом окажется, что проблемы есть — залетайте в комментарии, попробуем их ликвидировать коллективным разумом, а я затем дополню статью. Я также не буду затрагивать совсем уж базис интерфейса и кнопок; будем считать, что у читателя уже есть стартовое понимание того, как все работает. Погнали.
Словарик
Я буду использовать много страшных слов, поэтому на всякий случай (вдруг это будут читать совсем новички) пропишу здесь, что будет иметься в виду, чтобы вы не запутались, а я не хоронил описание под десятком пометок внутри текста.
Все квады и нгоны мы можем называть полигонами. Именно из них и состоит модель. Если вы импортируете модель в какой-либо игровой движок, то он производит операцию триангуляции, деля все наши квады на два и превращая их в трисы (или попросту треугольники).
Твик — легкие изменения. «Потвикать» - поиграться с настройками для достижения лучшего результата.
Реф (reference) — исходная картинка, которой мы стараемся соответствовать во время моделирования.
Экструд (extrude) — операция по «вытягиванию» полигонов. Проще всего объяснить, что кубик получается экструдом из квада.
Хайполи — высокополигональная модель с крайне четкими формами, состоящая из большого количества полигонов и имеющая крайне плотную топологию.
Лоуполи — низкополигональная модель, которая примерно повторяет формы своей старшей сестры (как можно более четко) и при этом обладает как можно меньшим количеством полигонов.
Основная форма
Как и обычно, стартуем с кубика. Пока магии никакой нет. Банальные 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", чтобы помечать будущие разрезы для нашей оригами-развертки. =) Все там же по правому клику на выделение эджей.
Когда закончите, то от достаточной для запечки хайполи вас будут отделять всего несколько шагов. Самое время сохраниться, и назвать наш бэкап как-нибудь вроде "model_lowpoly_plus_weights". Вообще почаще сохраняться итерационно — очень хорошая практика.
Теперь мы объединяем наши болванки воедино и накидываем на конструкцию модификатор bevel. В качестве опции определения лимитов выбираем weight. Я обычно ставлю 2 сегмента и слегка твикаю profile. Остается только нажать tab, чтобы автоматически добавить модификатор subsurf_base. Аккуратнее в нем с настройками, одно неловкое вписывание циферки, и ваша боевая машина может не справиться с резко возросшим количеством полигонов.
Если вы все сделали правильно, то у вас должна получиться чистенькая и гладкая картинка.
В целом, на данном этапе, если вы концептер, вы уже можете спокойно расставлять освещение и выгонять все это дело для дальнейшей доводки в любом графическом редакторе.
Ну а если стоит задача дальше двигаться по пайплайну, то следующий ваш шаг — развертка. Можно, конечно, заняться этим делом прямо в блендере, используя вышеупомянутую опцию "mark seam" при работе с ребрами (она пометит места, по которым модель будет "разрезаться" при развертке). Но мое персональное мнение, которое ни в коем случае не претендует на истину в последней инстанции — воспользуйтесь тем же Rizom, например. И дальше можно следовать 1 в 1 туториалу Тима.
Спасибо за внимание!