Создание кастомного рига для любых анимаций в Blender для indie-проекта.

Создание кастомного рига для любых анимаций в Blender для indie-проекта.

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

В прошлый раз разбирал как быстро анимировать персонажей

Зачем вообще делать кастомный риг, если есть уже готовые системы в том же самом Blender по типу Rigify и AutoRig? Кажется простым на первый взгляд, в Rigify много разных крутилок, настраивается вообще все что можно настроить, много переключателей, тумблеров и прочего.

Если уж и нырять в пучину системы Rigify, то лучше с этим парнем! Канал CGDive. Посмотрев ролик, можно убедиться насколько сложна эта система.

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

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

Я постараюсь изложить все кратко, при этом объяснение чтобы было максимально подробное, для людей с любым опытом в Blender.

Чтиво долгое и для понимания требует базовых навыков работы в Blender.

Я так же рекомендую ознакомиться с каналом Royal Skies на ютубе, подсматривая в свое время откуда я взял большинство принципов создания рига. Можно заметить, что все делают риг по-разному, потому что способы анимации у всех так же разнятся.

Создаем базовый скелет

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

Режим отображения ставлю на In Front - так мой скелет будет всегда проявляться поверх модели и всего остального

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

Размещаем кости

Именование в Humanoid риге в Unity следующее:

  • Для рук: HIPS - spine - chest - shoulders - arm - forearm - hand
  • Для головы: HIPS - spine - chest - neck - head
  • Для ног: HIPS - UpLeg - Leg - foot - toe - toe_end

Использование Humanoid рига для Unity дает несколько преимуществ: унифицируя риги ваших персонажей, их анимации можно задействовать у любого гуманоидного персонажа без ретаргета анимаций. Но об этом - в отдельном материале.

Через клавишу F2 именуем их в соответствии со здравым смыслом. Именование костей очень важно - скелеты с одинаковым наименованием костей может использовать одну и ту же анимацию даже для разных объектов, персонажей!

Обязательно назначаем родителя костям, если у тех нет прямого соединения друг с другом

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

Следующая важная часть скелета - оси вращения. Это очень важно для быстрого анимирования персонажа, чтобы основная ось вращения костей была единой. Для меня — это ось Х. Она может быть любой, но желательно ее сделать единой для всех ригов в проекте, для большего удобства. Я привык, что сгибание идет на ось X, поворот на ось Y. Таким образом процесс анимирования ускоряется.

Чтобы вращать кость относительно их осей надо выбрать режим Local или Normal через клавишу «<» на клавиатуре или в небольшом меню наверху.

Далее важная часть - пальцы рук. Их оси лучше настроить удобно и грамотно сразу, так как пальцы сгибать придется постоянно. Настраиваю ось корневой кости пальца и через Shift+N задаю оси всем дочерним костям.

Выделяю все кости с одной стороны, выбираю Autoname L/R и после этого Symmetrize Bones, что быстро делает идентичный симметричный набор костей. Фишка в том, что теперь мне доступна функция симметрии при анимировании, кости с идентичным именем и окончанием .L или .R будут двигаться зеркально их двойнику.

Через F2+Ctrl задаем имена для костей пальцев. Thumb, pointer, middle, ring, pinky, стандартные названия для пальцев.

Важное упоминание: этот набор костей, что мы сейчас сделали, это скелет, все кости имеют статус «Deform». Это значит, что они деформируют меш, включаются в скелет при экспорте и активно участвуют в анимации, задействуются в установлении «весов» в модели. Те добавочные кости, которые управляют поведением этого скелета, их система как раз и называется ригом. Поэтому с очень важной частью мы закончили - мы сделали скелет. Теперь переходим к созданию рига.

Скелет готов!

Создание рига

Делаем руки

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

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

Дублирую кость руки через Shift+D, немного уменьшаю в размере и так же делаю ее симметричного двойника через Symmetrize. Называю ik_hand, и все кости, которые управляют кинематикой называем с приставкой ik для быстрого поиска в иерархии.

это проще делать в режиме полупрозрачности через Alt+Z

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

Я эту кость вытянул вообще прямо из локтя. Но можно и создать через Shift+A, это неважно. Главное убрать галочку «Connected» из поля Relations кости, чтобы та не «прилипала» к исходной кости предплечья.

Выделяю управляющую кость и кость локтя и нажимаю комбинацию Ctrl+Shift+C и выбираю инверсную кинематику в третьем столбце. Так мы быстро назначаем модификатор и эта комбинация будет использоваться дальше очень часто. После этого назначаем кость для pole, выбираем количество костей, которое должно участвовать в инверсной кинематике (у меня это всегда 2 кости) и все готово! Инверсная кинематика для руки готова!

Иногда для правильного отображения pole нужно покрутить его угол в настройках. Чаще всего это 90 градусов.

В конце вылез смешной баг инверсной кинематики, а происходит он по простой причине: родитель у кости кинематики - сам локоть, который зависит от этой кинематики. Поэтому появляется круговая зависимость и руку начинает «колбасить». Чтобы это исправить надо родителя у кости с кинематикой убрать или поставить например кость груди. Тогда дерганья прекратятся. Родителем я сделал грудь, чтобы руки поворачивались вместе с корпусом.

Достаточно чтобы родитель был «выше» в иерархии, чем управляемая кость. Грудь, бедра, корневая кость, все что убирает «круговую» зависимость.

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

Назначим на кость руки констрейнт, который будет копировать движения кости с кинематикой. Так же как мы и делали раньше Ctrl+Shift+C - Copy Rotation. Теперь управлять рукой чуть-чуть легче.

Инверсная кинематика рук готова!

Верхняя часть тела ожила!

Делаем ноги

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

Приседает без проблем!

Для удобного управления стопой я делаю кость foot_ik_ctrl, так как сама кость отвечающая за кинематику объективно находится под углом и вращать ее не всегда удобно. Так же я делаю кость, которая помогает опускать-поднимать пятку без необходимости сгибать остальные кости, а сразу.

Пока создаем 2 кости и соответственно их именуем

Далее очень внимательно: создаю косточку для пальца ноги, которая не будет зависеть от поворотов ступни, она должна быть дочерней к foot_ik_ctrl. Кость с ik ноги делаю дочерней к новой «вертикальной» кости, а эту в свою очередь дочерней к foot_ik_ctrl. Логика в том, что маленькая вертикальная кость должна при повороте оaпускать - поднимать кинематику, а контролирующая кость крутит при этом всю стопу. Более понятно это показано на видео.

Финально вешаем констрейнт на кость пальчика ноги чтобы тот копировал поворот «недвижимой кости» по аналогии как работает носок ноги человека.

Назначаю отображение контролирующей костей в виде «кружков» как раньше. Все, риг ног готов!

Улучшения в риге

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

Сгиб пальцев через корневую фалангу

Удобней сгибать пальцы, не сгибая каждый палец по отдельности, а сгибая только его основание. Таким образом можно сгибать не только пальцы, а так же управлять тканью, веревками, хвостами и прочим! За способ большое спасибо Royal Skies, его видео об этом здесь.

Выбираю корневую кость, затем выше по фаланге и добавляю констрейнт Copy Rotation. Делаю так со всеми остальными костями, которые должны сгибаться в след, и применяю на них настройки «Local Space», режим «Add».

Можно применять параметры, выделяя все кости, правой кнопкой по параметру - Copy to Selected.

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

Кость для статичного положения головы при вращениях тела.

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

Создаю косточку дублирующую кость шеи, чуть уменьшаю, назовем ее neck_ctrl. У нее не будет родителя, корневая кость будет ее родителем.

Применяю модификатор Copy Rotation на кости шеи. И на этом можно сказать все, поворот шеи теперь зависит от контроллера, а не от поворота корпуса!

Так же назначил кружок для отображения во вьюпорте.

Важное упоминание

Но тут надо оговориться, я назначил констрейнт на эту контролирующую кость, которая копирует положение кости заставляя ее «следовать» за положением кости шеи.

Контролирующая кость «следует» за положением шеи.

Это провоцирует «мягкую» круговую зависимость, которая не влияет на итоговые анимации, но иногда может выплыть странное положение костей на первом кадре анимации. То же самое и с pole-костями ног - они у меня дочерние от костей ступней, что понятное дело так же провоцирует круговую зависимость. Делать так или нет решает каждый сам, я при импорте анимаций в движок просто отрезаю первый кадр, это никак не влияет на чистоту цикла анимации. Чтобы не было круговой зависимости можно на все подобные кости вещать констрейнт Parent вместо прямого парентинга через режим Edit, либо создать кость, которая отдельно копирует положение кости шеи, а затем к ней вешать кость контроллера. Каждый решает сам.

Pole кости ног - дочерние от костей ступней, а ступни участвуют в инверсной кинематике. Отсюда и круговая зависимость.

Финальные настройки

Все кости рига, которые не участвуют в деформации меша не должны иметь у себя включенную кнопочку «Deformed». Таким образом, я выделяю все ранее созданные кости рига и выключаю этот параметр через «Copy to Selected».

Можно так же основные кости, которые участвуют в анимации чаще всего вынести на отдельный слой.

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

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

Послесловие

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

Статья вышла объемная, но показать как делать риг кратко подчас почти невозможно, моя цель - чтобы эту статью можно было использовать как инструкцию. Поэтому, если у вас есть дополнения я буду рад их внести.
Эта статья про риг посвящена ходу разработки нашего проекта "Песнь Копья". Ссылку на проект скромно оставлю здесь

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

125125
22 комментария

Это что, сайт про РАЗРАБОТКУ игр!?? о_О
Етит колотить!!! Вы вернули мне мой 2007!!!

5
Ответить

Да, я малость старомоден)

5
Ответить

Автор вошёл не в ту дверь

Ответить

По поводу autorig pro. У этого замечательного аддона есть свой экспорт рига для игровых движков(юнити\анрил). При этом если твоя моделька имеет анимированные shape keys(например, реалистичный сгиб локтя, лицевая экспрессия без применения костей), то autorig нажатием одной кнопки экспортирует и их. Так-же у аддона очень много крутых функций. На этапе когда нужно назначать веса, понял, что гораздо быстрее это делается в autorig, с наличием таких функций как heat skinning и скиннинг выбранных вершин.
Понимаю, аддон платный, но в сети можно найти и бесплатно, например, в группах вконтакте поискать. Для rigify есть бесплатный аддон от того же cgdive, который поможет экспортнуть риг, но этапов подготовки больше и менее удобно чем autorig.

3
Ответить

Оп, благодарю, милсударь
Надо демку потыркать

2
Ответить

Не подскажите? Планирую в будущем покупать 3Д модели в юнити или UE сторах, чтобы сделать из них 2Д спрайты, насколько сложно освоить с нуля эту программу Blender для этой задачи? Просто мне не нравится пиксель арт, а более реалистичные 2Д спрайты для игры с видом сверху уже почти никто не рисует, читал что сейчас модно нарезать спрайты из 3Д моделей через блендер.

1
Ответить

блендер достаточно быстро осваивается, если даже был опыт в стороннем ПО, я на него перешел с 3ds max. Его полезно просто так даже освоить чтобы базово уметь в нем работать, в вашем случае - это 2д арт при помощи 3д болванок. Я сам художник 2д и в будущем у меня будет материал по 2д в том числе и в блендере.

1
Ответить