Серия уроков по риггингу в Blender. Урок 2: Скиннинг, оживляем меш

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

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

Приготовления закончили, теперь начнем собственно урок!


Веса и группы вершин

Собственно, как определить, влияет ли кость на вершину, и если да - то насколько? Правильно - ввести значение, которое будет силой воздействия кости. В блендере это значение называется весом (Weight) кости. Оно не выделено в уникальный элемент датаблока, а базируется на так называемых группах вершин (vertex groups) - этаких контейнерах со своим именем, где хранится вес для каждой вершины меша от 0 до 1

Screenshot_20221128_212514.png

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


Делаем арматуру

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

Screenshot_20221128_215223.png


Начинаем!

Перед нами есть куб с плотной сеткой. Это очень важно для рига, если он будет что-то деформировать, ибо как что-то сгибать, если сгибать нечего? :D В данном случае эта сетка - как раз идеальна для деформаций - она состоит из граней с 4-мя вершами - квадов

Мы хотим, чтобы куб мог сгибаться и закручиваться вокруг своей оси вращения в нескольких местахScreenshot_20221128_215642.png

Эти места мы выделили при помощи аннотаций - безумно удобного инструмента для всяких указаний и зарисовок прямо во вьюпорте. Это бывший Grease Pencil из старых версий. Где-то в районе 2.8 создали новую систему, а старую переделали в аннотации

Основные настройки штрихов находятся на панели Annotations во вкладке View

Screenshot_20221128_220452.png

Там можно установить цвет, толщину штрихов, независимость от проигрывания анимации и т.п. Сам инструмент работает просто: ЛКМ - рисовать, ctrl + ЛКМ - стирать. Там еще есть опции, но предлагаю посмотреть их уже самим

Также чтобы включить отображение сетки меша без перехода в режим редактирования - надо включить WIreframe в панели оверлеев

Screenshot_20221128_215601.png


Теперь переходим к арматуре

Мы будем активно пользоваться 3Д курсором - некой точки в пространстве, от которой создаются новые объекты, и к которой можно привязаться

Screenshot_20221128_221547.png

Аннотации можно скрыть, если они будут вам мешать Это можно сделать так и в настройках слоя, так и в оверлеях соответствующей галочкой

Выделяем нижнее основание куба, потом используя хоткей Shift + S вызываем Пай меню по работе с 3Д курсором, и выбираем пункт Cursor to Selected. Это переместит курсор в центр выделения

Screenshot_20221128_221926.png

Выходим из режима редактирования, переходим в объектный режим, создаем арматуру. Одна-единственная кость появится на месте 3Д курсора

Screenshot_20221128_222104.png

И тут мы видим проблему - меш загораживает собой арматуру. Увы, нам необходимо, чтобы арматура была внутри меша - а иначе деформации будут вести себя неправильно (все из-за пивота кости - центра, откуда идут трансформации). Можно вынести арматуру поверх меша - для этого у объекта есть опция In Front. Она расположена в панели Viewport Display

Screenshot_20221128_222433.png

Чпоньк - и арматура будет отображаться поверх объекта, как нам и надо!

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

Переходим в режим редактирования, выделяем луп, который будет первым изгибом, и перемещаем туда курсор при помощи Cursor to Selected

Screenshot_20221128_223120.png

далее выделяем арматуру, переходим в ее режим редактирования, выделяем хвост кости, выбираем Selection to Cursor в Пай меню, и чпоньк

Screenshot_20221128_223307.png

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

Screenshot_20221128_223552.png

Переименовываем кости, чтоб не было бардака. Кстати, вот еще одна плюшка - у арматуры тоже есть вкладка Viewport DIsplay. Нам нужна опция, чтобы отобразить имена костей - Names. Переименовываем кости как на скрине

Screenshot_20221128_223830.png

Наша арматура готова. Теперь можно наконец-то перейти к скиннингу


Режим рисования весов

Редактирование весов осуществляется в соответствующем режиме - Weight Paint. По началу он может выглядеть необычно. Можно создать несколько пустых групп вершин, чтобы попробовать им попользоваться

У нас есть несколько инструментов - Draw, Blur, Average, Smear, Gradient. В этом уроке мы будем пользоваться только первым. Стоит поподробнее изучить его настройки, они могут очень облегчить жизнь

Screenshot_20221128_225358.png

Нажав на поле с Draw, можно выбрать саму кисть для рисования

Screenshot_20221128_225537.png

Иногда легче выбрать режим добавления или вычитания, чем постоянно крутить ползунок веса. А сам ползунок - это Weight. Рядом с ним радиус кисти и ее сила - Strength. У каждого параметра есть иконка с карандашиком - это позволяет включить в работу графический планшет. Это гораздо удобнее мыши, так что обязательно попробуйте потом порисовать с ним и без него, чтобы увидеть разницу

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


Скиннинг

Для начала удаляем все группы вершин, которые мы сделали, чтоб они не засоряли меш. После этого переходим в объектный режим, сначала выделяем меш, потом с зажатым Shift арматуру, и жмем Ctrl + P -> Armature Deform -> With Automatic Weights. На первый взгляд ничего не произошло, но если зайти в режим позы для нашей арматуры - и о чудо, меш будет двигаться за костями!

Ctrl + P также как и в режиме арматуры, в объектном режиме позволяет установить родителя, но если родителем будет арматура - то появятся дополнительные опции - установка весов. Можно установить пустые веса, веса по так называемым Эвенлопам (областям вокруг костей), или более популярный вариант - автоматические веса

После выполнения оператор добавит мешу модификатор Armature - именно так выполняется связывание меша и арматуры

Screenshot_20221128_231331.png

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

Вот кстати еще одна мега полезная фишка - если сначала выделить арматуру, потом меш, и перейти со всем этим в режим развесовки, то мы сможем сразу просматривать веса костей, выделяя их через Shift + ЛКМ, и даже двигать (GRS комбинация также работает). Также если у кости нету своей группы вершин, и меш будет покрашен фиолетовым (прям как когда потеряна какая-то текстура), то стоит где-нибудь порисовать, и группа сама создастся. Так что вручную менять имена группам не придется

Да, сейчас у нас нету необходимости вправить веса, авторазвесовка сработала нормально, но и модель - куб. В большинстве случаев понадобится дополнительная корректировка весов уже ручками


Нормализация

В модификаторе есть одна подлянка - если сумма всех весов на вершину больше 1, то модификатор сам усечет его до этого числа. Вроде бы ничего, НО

Так как у bone_2 вес - 1 на проблемной области, и у bone_2.001 - тоже, то в сумме будет 2, и модификатор усечет веса. В свое время мне это знатно потрепало нервы, и проблема то в том - что ни в одном, по крайней мере в рунете, туторе о такой подлянке не говорилось, до этого момента)

Чтобы такой гадости избежать, существует опция Auto Normalize. Оно делает определенные операции со всеми группами вершин, куда входит вершина, тем самым обеспечивая общую сумму весов в 1

Screenshot_20221129_000513.png

И на последок - покажу скиннинг при помощи Эвенлоп (Evenlope)

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

Screenshot_20221129_003251.png

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


Итог

  • 3Д курсор - весьма полезная для риггинга вещь
  • Арматура и меш соединяются при помощи модификатора Armature
  • Сила влияния костей же определяется весом, который хранится в группах вершин на меше
  • Веса редактируются в Weight Paint mode
  • Без нормализации весов может быть очень плохо

На этом урок закончен. Пишите комментарии, делитесь с друзьями, набирайтесь сил, всем удачи, всем пока!

757 0 850 10
22
2022-11-30
Александр, привет,
я как раз сейчас озадачился изучением темы риггинга, поэтому твои посты сейчас для меня - что золото.
Я, возможно, забегу в теме немного вперед, но нужна помощь:
есть меш, есть кости, всё работает хорошо, за исключением момента, когда поднимаю руки ровно вверх, в всязи с чем получается неестественный излом (вот ссылка на скриншот). Пересмотрел море видюшек на ютюбе, но так толком и не понял как это исправить...
Поможешь?
2022-11-30
Михаил РАлександр, привет,
я как раз сейчас озадачился изучением темы риггинга, поэтому твои посты сейчас для меня - что золото.
Я, возможно, забегу в теме немного вперед, но нужна помощь:
есть меш, есть кости, всё работает хорошо, за исключением момента, когда поднимаю руки ровно вверх, в всязи с чем получается неестественный излом (вот ссылка на скриншот). Пересмотрел море видюшек на ютюбе, но так толком и не понял как это исправить...
Поможешь?

Подточить развесовкой, пока возможно + корректирующие шейп кеи/кости
2022-11-30
Александр Демченков
Подточить развесовкой, пока возможно + корректирующие шейп кеи/кости

развесовка не даёт нужных результатов, а вот с шейп кеями я пока не разобрался...планируешь по ним статью?
2022-11-30
Михаил Р
развесовка не даёт нужных результатов, а вот с шейп кеями я пока не разобрался...планируешь по ним статью?

Естестна. Довольно важная часть ригов. Но не знаю, когда, скорее после драйверов, без них шейпкеями управлять нормально нельзя
2022-11-30
Александр Демченков
Естестна. Довольно важная часть ригов. Но не знаю, когда, скорее после драйверов, без них шейпкеями управлять нормально нельзя

Ну отлично!
Жду тогда)
2022-11-30
Александр Демченков
Естестна. Довольно важная часть ригов. Но не знаю, когда, скорее после драйверов, без них шейпкеями управлять нормально нельзя

Ещё забыл спросить (может всё ещё проще): может быть есть какой то констрейнт, который заставит вращаться кость 1, если кость 2 переместилась по дуге (поднялась вверх)?
скрин
Экспериментирую с разными привязками, но какая то аброкадабра выходит...
2022-11-30
Михаил Р
Ещё забыл спросить (может всё ещё проще): может быть есть какой то констрейнт, который заставит вращаться кость 1, если кость 2 переместилась по дуге (поднялась вверх)?
скрин
Экспериментирую с разными привязками, но какая то аброкадабра выходит...

Перемещение кости 2 по дуге - это вращение в твоем случае. Можно попробовать поколдовать с Copy Rotation. Но тогда убедись, что у кости 1 правильно поставлены начало и конец. Их можно легко поменять друг с другом через switch direction в едит моде
2022-11-30
Александр Демченков
Перемещение кости 2 по дуге - это вращение в твоем случае. Можно попробовать поколдовать с Copy Rotation. Но тогда убедись, что у кости 1 правильно поставлены начало и конец. Их можно легко поменять друг с другом через switch direction в едит моде

понял, буду пробовать, спасибо
2022-12-01
Спасибо Александр,за ваш труд и ликбез в этой сакральной теме 3d
Одно не понял,на последнем видео как у вас получилось манипулировать мешем?Все режимы перепробывал,не получилось.
2022-12-01
Ян КушнирСпасибо Александр,за ваш труд и ликбез в этой сакральной теме 3d
Одно не понял,на последнем видео как у вас получилось манипулировать мешем?Все режимы перепробывал,не получилось.

Какой момент именно непонятен?
2022-12-02
Зачем , если на торрентах есть видео по скинингу и риггингу переведённые на русский ?
2022-12-02
Крылов АлександрЗачем , если на торрентах есть видео по скинингу и риггингу переведённые на русский ?

Бесплатно (а следовательно и лицензионно, претензий ни от кого точно не будет) + на родном языке 100% каких-либо неточностей перевода не будет + я очень сильно разжевываю, и оказываю поддержку, не будешь же ты ее просить у автора спираченного курса?)
2022-12-03
Михаил РАлександр, привет,
я как раз сейчас озадачился изучением темы риггинга, поэтому твои посты сейчас для меня - что золото.
Я, возможно, забегу в теме немного вперед, но нужна помощь:
есть меш, есть кости, всё работает хорошо, за исключением момента, когда поднимаю руки ровно вверх, в всязи с чем получается неестественный излом (вот ссылка на скриншот). Пересмотрел море видюшек на ютюбе, но так толком и не понял как это исправить...
Поможешь?

Попробуй выбрать кость и поставить галочку (если её нет) в разделе Deform в меню Bone Properties.
2022-12-04
Михаил Ресть меш, есть кости, всё работает хорошо, за исключением момента, когда поднимаю руки ровно вверх, в всязи с чем получается неестественный излом (вот ссылка на скриншот).
Частично можно решить проблему если поставить галочку Modifier Properties > Armature > Preserve Volume (сохранять объем при сжатии). Остальное правится нормальным скиннингом и расположением кости внутри модели. "Preserve Volume" хотя и решает много проблем, но часто дает неприятные вздутия, например появляется пузырь в паховой области при сильном поднятии ноги, или при отгибании большого пальца на руке. Чтобы это убрать делаются специальные кости компенсаторы с прикрученными констрейнтами на сжатие. Когда нога поднимается, то кость компенсатора укорачивается до нужного размера утягивая "пузырь". Подробнее писать лень (очень много информации). К слову дальше тебя начнет смущать что при повороте кисти руки на предплечье неправильно искажается мэш. Это ещё одна большая тема.
2022-12-05
Крылов, доброго дня, если у вас есть, скиньте торент пожалуйста
2022-12-05
Спасибо, подписался
2022-12-05
Гость, тебе в личку не написать
2022-12-05
Евгений Жихарев (ЖЖ)
Попробуй выбрать кость и поставить галочку (если её нет) в разделе Deform в меню Bone Properties.

там стоят эти галочки. Проблема, на мой взгляд, в том, что кости статичны и их надо заставить смещаться в соответствии со смещением друг-друга. Небольшое вращение кости ключицы мне настроить удалось, а вот как заставить двигаться по дуге плечевую кость я пока понять не смог...
2022-12-05
Deis SerbakЧастично можно решить проблему если поставить галочку Modifier Properties > Armature > Preserve Volume (сохранять объем при сжатии). Остальное правится нормальным скиннингом и расположением кости внутри модели. "Preserve Volume" хотя и решает много проблем, но часто дает неприятные вздутия, например появляется пузырь в паховой области при сильном поднятии ноги, или при отгибании большого пальца на руке. Чтобы это убрать делаются специальные кости компенсаторы с прикрученными констрейнтами на сжатие. Когда нога поднимается, то кость компенсатора укорачивается до нужного размера утягивая "пузырь". Подробнее писать лень (очень много информации). К слову дальше тебя начнет смущать что при повороте кисти руки на предплечье неправильно искажается мэш. Это ещё одна большая тема.

пробовал играться с этой галочкой, результат такой себе получается...про кости-компенсаторы ещё не слышал, надо бы изучить...есть ссылка на какой-нибудь толковый видосик?
2022-12-05
Крылов АлександрГость, тебе в личку не написать

и мне, если не сложно, тоже скиньте, пожалуйста ссылку
2022-12-05
Михаил Р
пробовал играться с этой галочкой, результат такой себе получается...про кости-компенсаторы ещё не слышал, надо бы изучить...есть ссылка на какой-нибудь толковый видосик?
Вариант решения с вздутиями на примере руки. Вскользь упоминается то о чем я говорил. Видео с привязкой по времени, но рекомендую посмотреть всё https://youtu.be/3kGMLd7fPgg?t=11530

Арматура где в паховой области есть кости уменьшающиеся при подъеме ноги (саму модель не выкладываю):
https://dropmefiles.com/uwHWd
2022-12-05
Deis SerbakВариант решения с вздутиями на примере руки. Вскользь упоминается то о чем я говорил. Видео с привязкой по времени, но рекомендую посмотреть всё https://youtu.be/3kGMLd7fPgg?t=11530

Арматура где в паховой области есть кости уменьшающиеся при подъеме ноги (саму модель не выкладываю):
https://dropmefiles.com/uwHWd

спасибо, буду изучать
RENDER.RU