No Image

Как привязать скелет к модели blender

СОДЕРЖАНИЕ
11 просмотров
16 декабря 2019

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

Здравствуйте, уважаемые читатели портала 3D Today.

Я уже достаточно давно печатаю и крашу фигурки. Но не всегда можно найти подходящую. Надо двигаться дальше, и вот решил создать интересную фигурку уже не из готовой модели, а из того, что осталось, то есть из заготовок. А заодно и рассказать, как делать Rigging модели в Blender’е.

Риггинг – это процесс создания скелета у 3д модели, при помощи которого впоследствии создаются позы персонажа и анимация.

Также придётся столкнуться с таким понятием как «инверсная кинематика». Это мне напомнило обратную задачу кинематики в робототехнике (я робототехник). Если не вдаваться в научные объяснения в обратной кинематике по положению конечного звена определяются расположения всех остальных звеньев. Например, у нас есть ладонь и по положению ладони Blender автоматически сгибает запястье, локоть и плечо. Это удобно и одновременно позволяет делать позу более естественной.

Итак, что же мне досталось?

Магосы кузней Марса прислали мне СШК файлы из неведомых архивов с изображением ассасина храма Каллидус. Изображения были в формате OBJ были разъединены на отдельные плоскости и с кучей ошибок. Предположительно это модель для модификации какой-то игры из Вархаммера.

Масштаб также был микроскопический, модель была в позе «раскоряки», а лечение её в Netfabbe не давало результата. Поэтому пришлось лечить модели вручную каждую по отдельности, а потом соединять их булевыми операциями. Пистолет и оружие ближнего боя я оставил как отдельные модели. Сохранил модель как STL файл.

1) После этого я импортировал модель в Blender: File – import – .Stl . Перед началом работы важно так спозиционировать модель, чтобы её линия симметрии располагалась на центре координат (это важно).

2) Для того чтобы создать скелет нужно нажать Add (Shift + A) – Armature – single bone. Для того, чтобы наш скелет был виден сквозь предметы нужно поставить галочку X-Ray во вкладке Арматуры (рисунок человечка). Также стоит поставить галочку Names там же, чтобы видеть названия костей.

3) Появится маленькая кость в виде пирамидки. Ее можно крутить, масштабировать и перемещать, как и привычный объект в Блендере. В Edit Mode при Экструдировании (E) вытягивается ещё одна новая кость. Для создания кости не связанной с остальными работает комбинация Shift + A. Каждую кость нужно перемещать внутри тела так чтобы она была на своём месте. Это не значит, что у нас должно быть 33 позвонка, но в остальном нужно стараться придерживаться реальной анатомии, повторяя те кости, которые имеют суставы. Коса у нашей девушки тоже должна изгибаться под своим весом, поэтому в ней много костей. Чтобы было более удобно и быстро размещать кости лучше пользоваться ортогональными видами (клавиши Numpad ’а).

4) Таким образом, мы прописываем кости везде, где считаем нужным (кроме тех конечностей, которые симметричны).

5) Добавляем к каждой кости имя на вкладке с костями. Это лучше заранее сделать т.к. в скелете риггинга человека несколько десятков элементов, которые будут мешать своими непонятными именами. Симметричные кости нужно именовать по типу «имя».L, где L – обозначает левую кость. Это очень поможет, когда мы будем копировать элементы на правую сторону.

6) Теперь нужно добавить инверсную кинематику. Перейдём на вид сбоку и добавим как бы шпору и отдельную кость около колена.

Для того чтобы кость инверсной кинематики не была соединена ни с одной из костей скелета, выбираем в Edit Mode эту кость, затем Alt + P и Clear parent .

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

7) Выберем кость Foot1.l зажмём Shift и добавим к ней LegIK.L, а затем Make parent (Ctrl + P) и пункт Keep offset. Теперь наша стопа крутиться, если покрутить LegIK.L

8) Для добавления инверсной кинематики в режиме Pose Mode выберем кость LegIK.L зажмём Shift и добавим к ней Leg.L, а затем выберем Add constraint (Ctrl + Shift + C) – Inverse Kinematics. Кость ноги при этом окрасится в желтоватый цвет.

9) Выберем жёлтую кость и зайдём во вкладку ограничений и настроим инверсную кинематику, установим Chain Length – 2, то есть наша кость инверсной кинематики будет увлекать за собой 2 кости. Также чтобы наша нога могла поворачиваться из стороны в сторону, сделаем ограничение Pole Target – Armature – Target . L. Попробуем согнуть нашу ногу за LegIK.L. Если нога сгибается неправильно, возможно, следует поиграться с параметром Pole Angle .

Сделаем таким же образом ещё и руку и косу.

Читайте также:  Как подключить несколько телевизоров к цифровому телевидению

10) Сделаем зеркальную копию нашей ноги. Для этого перейдём на вид спереди (клавиша 1) и заменим Центр вращения на 3д курсор и поместим сам курсор в начало координат зажав Shift + S и выбрав Cursor to center.

После чего в Edit Mode выберем все наши кости для копирования и нажмём следующую волшебную комбинацию: Shift+D , S , X , -1, Enter . Теперь наши кости продублировались, и чтобы написать им правильные имена не снимая выделения с них, зайдём в меню Armature – Flip Names.

11) После того как все кости созданы, соединим их между собой: Выберем кость бедра в Edit Mode затем, затем зажмём Shift и добавим Spine3, выполним операцию Make parent (Ctrl + P) – Keep offset

У вас всё правильно, если при сдвиге костей позвоночника ноги сами сдвигаются и картинка соединения похожа на такую:

12) Выберем в Object Mode наше тело, затем через Shift скелет и нажмём на Set parent to (Ctrl+P) – Armature Deform – With Automatic Weights. Теперь наша модель соединена со скелетом и при движении костей она будет деформироваться, но не всегда правильно.

13) Теперь выберем нашу модель и перейдём в режим Weight Painting, где начнём раскрашивать веса.

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

Раскрашивать нашу модель следует так: красным – там где нет деформации при движении, например грудная клетка, а также всякие навесные элементы, как подсумки. ремешки, бляхи и пр. Промежуточными цветами нужно красить места сочленения костей, стараясь сделать переход как можно более плавным.

Есть кисточки, которыми мы будем раскрашивать нашу модель:

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

Параметр Weight – это сила закрашивания вершин, Для кисти Mix: 0 – синий цвет, 1 – красный. Radius – размер кисти, хотя я предпочитаю масштабировать саму модель, а не менять её размер. Strength – отвечает за силу применения эффекта кисти (я её не трогал при работе).

То, что я пометил стрелочкой – это и есть сама кисть, т.е. курсор превращается в такой вот кружочек.

Самая распространённая новичковая ошибка при распределении весов – это случайная покраска весом совершено не соответсвующей части тела. Поэтому если вдруг у вас при сгибании руки внезапно деформируется также пятно на животе – ищите в костях руки покрашенное пятно и убирайте его.

Как понять, что вы всё сделали правильно? Да очень просто (ирония)– нужно лишь проверить каждую кость, крутя её в Pose Mode и наблюдая, есть ли неестественная деформация. И справлять, исправлять, исправлять! Процесс не то чтобы сложный, но скорее муторный, если модель имеет много костей.

Поэтому запасаемся терпением и красим каждую кость.

И это ещё не всё! У нас также есть 2 оружия, которые существуют отдельно от нашей модели. Для того чтобы исправить это подведём их в те места, где они должны располагаться, а потом в Object mode выбираем наш предмет, и жмём Add constraint (Ctrl + Shift + C) – Child Of .

В этом ограничении стоит указать нужную кость: Target – Armature , Bone – Palm.L, т.к. крепится пистолет будет к кости ладони.

Если наш предмет внезапно пропал из виду, нужно нажать Set Inverse.

Теперь при движении наши предметы будут следовать за руками. Проделаем ту же операцию и с ножом.

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

Если Вы сделали что-то не так, то выделите в режиме Pose Mode нужные кости и выберите Pose – Clear Transform – All. Это вернёт их в первоначальное положение.

В получившейся позе я специально сделал 1 ногу выше другой, чтобы она опиралась на бортик подставки, которую я замоделил во Fusion 360.

Я опасался, что руки выйдут кривыми, но вот такие кулачки у меня получились, пока я загибал пальчики один за другим:

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

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

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Читайте также:  Как проверить сколько устройств подключено к wifi

Отписаться от уведомлений вы всегда сможете в профиле автора.

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

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

Финальный результат


Импортируйте персонажа в новую сцену (File → Append). Также расположите 3D-курсор в центре оси координат.

Добавьте в сцену арматуру.


Чтобы видеть кости внутри персонажа без перехода в режим Wireframe отметьте опцию X-Ray в меню Display на вкладке Object Data.

Перейдите на вид сбоку, в режим редактирования арматуры и отодвиньте кость в сторону по оси Y.

Поверните кость на 90° и расположите ее в районе талии, как на изображении ниже.

Выделите верхушку кости и проэкструдируйте из нее новую (E).

Продолжаем экструдировать еще две кости (грудная клетка и шея).

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

Теперь снова выделите верхушку первой кости и начните экструдировать из нее кости в обратном направлении.

Дайте осмысленные имена всем созданным костям. Основную назовите Base (остальные pelvis, stomach, chest, neck и head).

Чтобы видеть имена костей в окне 3D-вида отметьте опцию Names в меню Display.

Разместите 3D-курсор в том месте, где должна начинаться бедренная кость и нажмите Shift + A. В режиме редактирования данное сочетание клавиш создаст новую кость.

Расположите ее соответствующим образом.

Продолжаем экструдировать кости ног.

Еще две кости для ступни и пальцев.

Дайте осмысленные имена костям ног (thigh.l, lowerleg.l, foot.l, toe.l). При создании имен используйте суффикс .l или .L. Благодаря этому Blender будет знать, что данные кости относятся к левой части персонажа, что упростит задачу при создании костей и их имен для правой части.


Выделите кость thigh.l и привяжите ее к кости pelvis. Также, убедитесь, чтобы опция Connected была отключена.

Расположите 3D-курсор в районе ключицы и создайте новую кость (Shift + A).


Расположите ее должным образом.

Начините экструдировать из нее кость руки и предплечья.


На виде сверху должна сохраняться прямая линия.

Дайте костям осмысленные имена (collar.l, upperarm.l и lowerarm.l).

Выделите кость collar.l и привяжите ее к кости chest. Также, убедитесь, чтобы опция Connected была отключена.

Проэкструдируйте кость для кисти.

Создайте три кости для среднего пальца.

Выделите все три кости пальца, продублируйте их и расположите в соответствии с остальными.

Пунктирные линии указывают но то, что между вновь созданными костями и костью кисти существует связь родитель-потомок.

Дайте костям осмысленные имена (palm.l, f1a.l, f1b.l, f1c.l…).

Создайте кости для большого пальца и также дайте им имена (ta.l, tb.l, tc.l).

На данный момент мы закончили создавать деформирующие кости для левой части персонажа. Вернитесь в объектный режим и расположите 3D-курсор в центре оси координат (и в центре арматуры соответственно).

Снова перейдите в режим редактирования и выделите все кости имеющие суффикс l.

Продублируйте данные кости и оставьте их в том же положении (Shift + D).

Измените точку вращения на 3D-курсор.

В меню Armature выберите опцию X Local.

После того, как продублированные кости отразятся по оси X, к их суффиксам добавятся надписи .l.001. Нажмите W и выберите опцию Flip Names. Данная опция изменит все надписи .l.001 на .r.

Теперь все деформирующие кости созданы.

В режиме позирования (Pose Mode) можно увидеть текущий результат работы созданного вами скелета. После манипуляций с костями верните их в исходное состояние (Alt + G и Alt + R).

Теперь создадим инверсную кинематику (IK) для ног. Перейдите в режим редактирования арматуры и отметьте опцию X-Axis Mirror на вкладке Options.

Проэкструдируйте новую кость.

Назовите новые кости ik-leg.l и ik-leg.r. Также разорвите связь с родительской костью и снимите галочку с пункта Connected. Благодаря этому наша кость будет перемещаться независимо от остальных.

Из кости foot продублируйте новую и расположите ее перед коленом персонажа (верните точку вращения на median point для удобства работы). Назовите две новые кости knee.l и knee.r и укажите в качестве родителей для них кости ik-leg.l и ik-leg.r соответственно.


Перейдите в режим позирования и выделите кость lower-leg.l.

Назначьте для нее ограничитель Inverse Kinematics.

Установите для ограничителя следующие параметры.

После этого кости с большой вероятностью повернуться в сторону. Вернуть их в исходное положение можно с помощью параметра Pole Angle.


Теперь проделайте аналогичные операции для другой ноги.

В режиме позирования проверьте результат работы (после верните кости в исходное состояние).

Перейдите в режим редактирования арматуры и расположите 3D-курсор между ног персонажа.

Создайте новую кость и назовите ее root. Это будет основная кость всего ригга и перемещая ее мы будем перемещать персонажа по сцене.

Расположите ее горизонтально.

Привяжите кости инверсной кинематики и кость base к кости root.



Снова можете проверит результат работы ригга в режиме позирования. После всех манипуляций верните все в исходное состояние (Alt + G, Alt + R).


В режиме редактирования арматуры поочередно выделите все не деформирующие кости (ik-leg.l, ik-leg.r, knee.l, knee.r, base и root) и отключите для них опцию Deform. Данные кости помогают управлять риггом и никак не будут деформировать сам меш.


Вернитесь в объектный режим.

Выделите модель персонажа, затем с зажатой клавишей Shift арматуру, нажмите Ctrl + P и выберите пункт With Automatic Weights. Blender автоматически создать столько групп вершин, сколько деформирующих костей содержит указанная арматура и назначит для них веса оптимальным образом (с его точки зрения 🙂 ).

Теперь в режиме позирования при вращении костей происходит и деформация меша.

Помимо всего вышесказанного, опция With Automatic Weights создает модификатор Armature для меша.

На вкладке Object Data вы можете найти все группы вершин. Их имена соответствуют именам костей.

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

Измените способ отображения костей.

Выделите меш и включите для него отображение сетки (wire).

Выделите арматуру и перейдите в режим позирования. С зажатой клавишей Shift выделите меш и перейдите в режим Weight Paint.

На панели инструментов укажите назначаемый кистью вес (Weight), силу воздействия (Strength) и активируйте зеркальность работы кисти по оси X (X-Mirror).

Выделив любую из костей вы увидите текущие веса ее группы вершин.

  • Синий – нет воздействия (0)
  • Зеленый – 50% воздействия (0.5)
  • Красный – 100% воздействия (1)
Читайте также:  Как настроить инет на компе

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

Если же нужно убрать воздействие с вершины или ослабить его, уменьшите вес на кисти и проведите ею по нужным вершинам.


Проверяйте работу всех прилегающих костей на предмет корректной деформации меша.

В местах изгибов две кости могут воздействовать на одни и те же вершины. Старайтесь равномерно распределять между ними веса, чтобы сумма всех весов была равна 1. Например, 0.5 для одной кости и 0.5 для другой. Это даст наилучшие результаты.


Вы также можете редактировать сам меш в режиме редактирования для достижения лучших результатов деформации.


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




Вот собственно и все! Персонаж готов к анимации 🙂

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

Путем добавления скелетной системы к объекту, этот объект может быть деформирован так, что геометрия не должны быть анимирована вручную.

Для более подробной информации использования скелета смотри Эту главу.

Опции¶

Имя объекта скелета которое будет использовать этот модификатор.

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

Имя группы вершин объекта, веса которых будут использованы для определения влияния модификатора на вершины.

Смысл только при наличии по крайней мере двух из этих модификаторов на один и тот же объект с включенной опцией Мультимодификатор

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

Использует те же данные, что предыдущий модификатор (обычно такой же модификатор Скелет) в качестве входных данных. Это позволяет вам использовать несколько скелетов для деформации одного и того же объекта, все они основаны на “недеформированных” данных (т. е. это избавляет от необходимости второго модификатора скелет).

Результаты модификаторов скелет затем смешиваются вместе, используя весы группы вершин как “смесь направляющих”.

Способ для привязки скелета к полисетке.

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

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

Модификаторы скелета могут быть быстро добавлены к объектам с помощью ( Ctrl-P ) если активный объект является скелетом.

Комментировать
11 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector