Использование Blender и Rigify
Теперь к Blender прилагается бесплатное дополнение Rigify, которое предоставляет вашим моделям гуманоидный риг, который будет работать с Mecanim. Это очень полезно для начинающих и казуальных игроделов.
Это руководство покажет вам, как сделать риг для вашей 3D модели при помощи Rigify и импортировать её в Mecanim Unity 4. Rigify генерирует полный риг для вашей модели и, путём использования основы в виде шаблона, вы сможете переделать его в хороший простой риг для гуманоидных персонажей. Вам следует начать с включения Rigify через Blender, чтобы вы могли воспользоваться его функционалом. Оттуда вы импортируете вашу 3d модель и начинаете корректно устанавливать вашу модель и основу, чтобы в дальнейшем избежать проблем. Как только всё будет настроено, вы сможете расположить кости и сгенерировать главный риг. Самая сложная часть, это привязка меша к костям, которые вы хотите использовать и проверка того, что они соединены корректно, и, наконец (после небольшой проверки и полировки), вы сможете импортировать модель в Unity.
Вот что вам понадобится:
- Unity
- Blender
- 3D модель гуманоида (MakeHuman очень полезная программа, если вам нужна помощь с моделированием).
Включите Rigify
Для начала вам нужно убедиться, что плагин Rigify установлен и включён в Blender:
- Проследуйте по пути File > User preferences.
- Выберите вкладку Addons и промотайте на самый низ и включите флажок рядом с “Rifify”
- Нажмите “Save as default”
Это активирует дополнение и позволит вам получить доступ к необходимым кнопкам и функциям. Установка этого по умолчанию включит Rigify во все ваши будущие проекты.
Настройка основы
Возьмите базовый риг гуманоида, который Rigify будет использовать как шаблон. Этот риг очень простой, но он позволит Rigify построить себя вокруг относительных позиций костей.
- Проследуйте по пути Add > Armature (Human)
- Убедитесь, что и основа и модель центрированы на 0,0,0
- Если вы масштабировали или двигали модель, убедитесь, что сбросили значения масштаба и/или смещения и у основы и у модели.

- Перейдите в режим изменения (Edit mode) (нажмите Tab)

- Начните размещать кости в их соответствующих местах на модели
- Используйте “X-Ray”, чтобы смотреть на кости сквозь модель
- Как только завершите, вернитесь обратно в объектный режим.
- Сместите основу в сторону, чтобы она не стояла на пути. (Если вы используете Make Human, возможно вы захотите соединить несколько разных мешей в один целый. Сделать это можно выбрав все меши и нажав CTRL + J)
Генерация рига
- Выбрав основу нажмите на вкладку Object data с самого права.
- В “Rigify Buttons” нажмите Generate.

- Переключитесь в режим позы (Pose mode) и сделайте следующее:

- Нажмите кнопку (А), чтобы выбрать риг и затем нажмите кнопку (H), чтобы скрыть ненужные слои.
- Нажмите на ниже слоя основы с зажатым SHIFT.

Это раскроет кости деформации. Кости деформации это то, что вы должны привязать к мешу и сделать к ним Weight-раскраску вашего меша.
If all deformation bones do not appear check the “Auto Run Python Scripts” option under File > User Preferences>File and re-generate
Удаление WGT костей
Вы заметите, что в верхнем правом углу, в иерархии сцены у вас будет много WGT-костей.

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

- Привяжите модель к костям деформации.
Прежде чем начать, убедитесь, что вы в режиме Object mode и выберите mesh, затем зажмите SHIFT и выберите hbu, нажмите CTRL + P и выберите Armature deform > With Automatic weights. Это назначит меш костям, создав группы вертексов. Это то, что мы будет использовать для процесса привязки. Если вы плохо или вообще не знакомы с привязкой в Blender нажмите здесь, чтобы перейти к уроку. Учтите, что кости деформации будут использовать две кости на каждый верхний и нижкий лимбы. Не привязывайте ко второй кости и убедитесь, что они связаны, чтобы Mecanim мог их правильно связать.
- Привяжите плечи к “DEF-shoulder.R” + “DEF-shoulder.L” и убедитесь, что он являются дочерними для “ORG-ribs”
- Привяжите верхние части рук к “DEF-upper_arm.R.01” + “DEF-upper_arm.L.01” и убедитесь, что он являются дочерними к “DEF-shoulder.R” или “DEF-shoulder.L” соответственно.
- Привяжите предплечья к “DEF-forearm.R.01” + “DEF-forearm.L.01” и убедитесь, что они являются дочерними к “DEF-upper_arm.R.01” или “DEF-upper_arm.L.01” соответственно.
- Привяжите бёдра к DEF-thigh.R.01 + DEF-thigh.L.01 и убедитесь, их материнской костью является “ORG-hips”.
- Привяжите голени к DEF-shin.R.01 + DEF-shin.L.01 убедившись, что эти кости являются дочерними к “DEF-thigh.R.01” или “DEF-thigh.L.01” соответственно. Это предоставит вам риг, который привязан к не перечёркнутым костям. Лишние кости не должны быть привязаны ни к чему.
Do the same thing to the hands, just remember Mecanim will only take the hand bone and three bones for each finger and thumb. This means you skin the model’s hands to the bones without crosses through them as shown in the picture below. 
Для каждого пальца вы будете использовать следующее (левая рука в качестве примера):
- Большой палец: “DEF-thumb.01.L.02”, “DEF-thumb.02.L”, “DEF-thumb.03.L”
- Указательный: “DEF-finger_index.01.L.02”, “DEF-finger_index.02.L”, “DEF-finger_index.03.L”
- Средний: “DEF-finger_middle.01.L.02”, “DEF-finger_middle.02.L”, “DEF-finger_middle.03.L”
- Безымянный: “DEF-finger_ring.01.L.02”, “DEF-finger_ring.02.L”, “DEF-finger_ring.03.L”
- Мизинец: “DEF-finger_pinky.01.L.02”, “DEF-finger_pinky.02.L”, “DEF-finger_pinky.03.L”
Помните, что каждая кость пальца всегда должна быть дочерней по отношению к предыдущей и первая кость должна быть дочерней по отношению к руке, в результате предоставляя аккуратную связь для Mecanim.
Экспорт и Импорт
Экспортируйте модель как .FBX файл и поместите его в папку, отдельную от ваше проекта. File > Export > AutoDesk FBX (.fbx) > Export. Как только экспорт будет завершён, вы сможете начать импорт модели в Unity и связать её с Mecanim.

- Откройте Unity 4 и создайте новый проект названный, например, “Rigify Test”. Как только он откроется, просто перетащите вашу модель в окно проекта.
- Выберите префаб модели в окне проекта и нажмите Rig в инспекторе. Смените Animation Type на Humanoid и нажмите Configure.
Все кости должны без проблем связаться в Mecanim.


- Убедитесь, что все кости на своих местах, и что нету никаких ошибок.
- Таким же образом рука должна быть дочерней соответствующих костей. Привяжите ладони к “DEF-hand.R” + “DEF-hand.L” и убедитесь, что их(костей) материнскими костями являются “DEF-forearm.R.01” или “DEF-forearm.L.01” соответственно.
Серия уроков по риггингу в Blender. Урок 1: арматура, кости, иерархия
В 3д графике анимация выполняется при помощи установки ключевых кадров (ключей) — главных поз объекта на определенных кадрах, а все положения в промежуточных кадрах между ключами программа достраивает сама (это называется интерполяцией, пришло из математики)
Определенно легко выставлять эти позы, когда объект монолитен, и ничего внутри него ничего не должно двигаться. Но вот стоит взять что-то комплексное (например, робота), или еще хуже — живое существо, где довольно сложные деформации, то жизнь превратится в ад. Работать с кучей вершин будет очень сложно: придется постоянно все перевыделять, двигать, вращать, сначала выставив пивот (т.е. точка, от которой будут идти трансформации), а в случае с живыми существами вообще будет очень легко сломать их форму
В общем, такое — определенно не дело, поэтому придумали концепцию управляющих элементов, за которыми бы следовали определенные вершины, и назвали костями, а все кости — скелетом, по аналогии со скелетом живых существ. Однако одних костей тоже было мало, работать с огромной кучей костей, управляя каждой — тоже очень сложно и времязатратно, поэтому придумали делать поверх еще один слой контроля с той же инверсной кинематикой, контролами, которые управляли уже костями и т.д. и т.д.
Смысл риггинга — как раз воплотить всю эту идею в жизнь, сделать скелет, которым аниматор сможет удобно манипулировать объектом, а после этого поддерживать этот скелет, улучшать его
Это определенно не легко — ведь надо сделать не только удобный и простой для аниматора сетап, но и хорошо работающий под капотом, чтобы он лишне не нагружал комп (а нагружать систему риги очень хорошо умеют), и в нем было легко разобраться другим риггерам. Я уж молчу, когда персонажей много, да и обычным багам риг вполне подвержен, очень легко может оказаться так, что из-за реализации риг ведет себя в некоторых ситуациях не совсем правильно
Как уже стало понятнее, анимация и риггинг живут бок-о бок с друг-с другом. Риггер не только делает сами риги, но и например пишет различные скрипты-инструменты для аниматора. У любой анимационной студии просто несмертное количество таких скриптов. Поэтому стоит иногда брать фидбек у аниматоров по поводу своего сетапа
Иерархия
Весь риг построен на принципе иерархии ака связях родитель-потомки между костями. Названа связь по примеру из генетики, где подобно тому, как дети наследуют черты от родителей, кости-дети наследуют трансформации кости-родителя, т.е. к их собственным трансформациям поверх добавляются трансформации родителя. Далеко не просто так потомки упоминаются во множественном числе, а родитель в одном: кость может иметь всего лишь одного родителя (на самом деле функция под названием switch Parent иметь их хоть тысячу, но обычно только один родитель активен, так как воздействие сразу нескольких родителей не особо имеет смысл в большинстве случаев), но ее потомков может быть сколько угодно, хоть 2, хоть 20
Давайте перейдем к блендеру, где это и наглядно увидим
Отчищаем сцену, если у вас не изменен стартап файл, и ищем в меню Add в заголовке вьюпорта Armature->Single Bone
Мы создали объект-арматуру с одной-единственной костью. В блендере скелет обзван Арматурой, так как разрабы любят показать всем, что блендер не такой как остальной софт 🙂
Переходим в режим редактирования арматуры. В нем мы устанавливаем костям позицию, которая будет для них нулевой, дефолтной (выставляем так называемую рест позу, Rest Pose) и строим саму иерархию (т.е. определяем, кто кому будет родителем, а кто потомком)
Rest Pose — это тоже очень важное понятие, но мы разберем его вместе с тем, что такое системы координат кости
Кости в блендере состоят из трех частей — хвоста, тела и головы
- Голова — это основа кости. Так например если перейти в режим позы ака Pose Mode (режим, в котором арматура анимируется, и ставятся ключи), то вращение и масштабирование будут идти именно от головы
- Тело позволяет быстро выделить и голову, и хвост
- Хвост — конец кости. От хвоста будут идти потомки кости в режиме connected, но об этом далее
Мы можем отдельно манипулировать хвостом и головой в режиме редактирования, но не в режиме позы
Связь родитель-потомки
Выделяем хвост нашей кости, и жмякаем английскую Е, ведем мышкой куда-нибудь, и жмем ЛКМ, чтобы подтвердить операцию. У нас появилась еще одна кость
Мы применили операцию под названием экструдирование. Наверняка вы ее знаете по моделированию. Как и в моделинге, в редактировании арматуры она создает новую кость из выделения, сохраняя связь с ним. Собственно, тут и есть пример отношения родитель-потомок. Если выделить нашу новорожденную кость, и посмотреть в редактор свойств->вкладочка Relations, то в в поле Parent будет указано имя кости, из которой мы ее сделали. Она и будет родителем для нашей кости
Кстати да, у костей есть имена. Сохранять их в порядке очень важно, а иначе станет неудобно ориентироваться в риге: довольно часто придется указывать имена костей, и вряд ли это будет удобно с Bone.001, Bone.002. Переименовать кости можно либо в редакторе свойств, либо через хоткей F2. Мы назовем нашу кость-родитель как «Parent», а потомка как «Child». Будем так сказать сразу приучатся держать риг в чистоте, а заодно мне будет легче вам рассказывать. На скрине я показал, что как переименовать
Название выделенной кости можно посмотреть либо в редакторе свойств, либо в левом верхнем углу вьюпорта
Собственно, что нам дает то, что Child — это потомок Parent? Очень хорошо это видно в режиме позы: стоит подвигать Parent, как Child тут же последует за ним
При вращении Child видно влияние опции Connected. Она велит кости, что ее голова должна быть намертво приварена к хвосту родителя. Разорвать это никак не получится, даже в режиме редактирования: хвост Parent и голова Child будут единым целым
В режиме позы кость-потомок с Connected в принципе нельзя будет двигать — только вращать и масштабировать (при использовании хоткея G вместо оператора перемещения будет запускаться оператор вращения). Опция Connected является обязательной для такой штуки как инверсная кинематика (IK), но и бывает полезной, когда например кость должна только вращаться (те же кости рук), и не двигаться
Если убрать эту галочку, то Child станет жить отдельно от Parent, но все равно будет двигаться вместе с ним в режиме позы
Блендер оставляет визуальный отклик о том, что между этими костями есть связь — пунктирной линией. На самом деле это не всегда удобно, например, когда много потомков, поэтому ее можно отключить в оверлеях галочкой Relationship Lines
У отношений между костями есть куча дополнительных опций: например галочка Inherit Rotation позволяет отключить наследование вращения. Мы разберем их, если они понадобятся, прямо на месте
Для того, чтобы назначать связи, вовсе не надо постоянно экструдировать. Это можно делать, например выбирая имя кости в поле Parent во вкладке Relations, но еще лучше — использовать хоткей Ctrl + P. Он позволяет установить связь родитель-потомок, припарентить одну кость к другой. Хоткей работает по следующей схеме: Последняя выбранная кость станет родителем для всех ранее выделенных костей. Опции Connected и keep offset позволяют устанавливать значение галочки Connected. Поэкспериментируйте: продублируйте кости через Shift + D, переназначайте родителей с Connected и keep offset, покрутите в режиме позы
Существует противоположный Ctrl + P хоткей — Alt + P — он либо убирает галочку Connected (Disconnect Bone), либо в принципе убирает родителя (Clear Parent)
По сути, то, что мы увидели — это и есть иерархия — структура, где все построено на связи родитель-потомок, хоть и мега простая, из двух элементов. В сложных ригах все также — у костей есть родитель и потомки, только там могут быть нехилые цепочки костей и много-много потомков. Вот пример гуманоидного рига: кость pelvis тут главная. За ней следуют кости спины, за костями спины кости рук и головы
Итог
- Весь риг строится на иерархии костей
- Родитель-потомок — связь между костями, когда кость-потомок добавляет к своим трансформациям трансформации кости-родителя
- Арматура — тоже самое, что и скелет
- У арматуры есть режим редактирования, где мы устанавливаем костям дефолтное положение (рест позу) + настраиваем иерархию, и режим позы — где мы анимируем сами кости
- Хоткеи Ctrl + P и Alt + P — ваши лучшие друзья
Это все, что я хотел сказать в этом уроке. Иерархия — это база, это то, без чего риг не смог бы существовать в принципе. Жизненно важно понять ее, к тому же это не сложное понятие. Если вы все поняли — то значит жду вас в следующем уроке, который выйдет в скором времени. Желаю всем выдержки на этом сложном пути, всем удачи, всем пока!
Как сделать риг в blender
Начиная с версии Blender 2.8x симметрия делается просто. Достаточно в режиме редактирования рига оставить все необходимые кости на стороне X+ и центральные. Затем выделите все кости и Menu > Armature > Symmetrize. Вот и всё. Программа сама обо всем позаботится. Но все же желательно перед применением убедится, что у всех нуждающихся костей присутствует признак левой кости (.L или подобное.).
![]()
Ниже идет старый туториал, оставлен как история.
Для начала давайте добавим в сцену метариг человека (предварительно удалив дефолтный куб и переместив курсор в центр — Shift + C), для чего следует выбрать в меню Add (или комбинацией клавишь Shift + А) в выпадающем списке выбрать Armature > Human(Meta-Rig) . Если в списке данного пункта нет, значит у вас не включен соответствующий аддон. Чтобы его включить в главном меню выберите File > User Profiles (или Ctrl + Alt + U) и в окне настроек во вкладке Addons включите его установив галочку у аддона Rigging: Rigify.
Для большего удобства работы с риггом следует отключить вид перспекривы (5 на дополнительной клавиатуре) и включить вид спереди (1, там же).
У нас уже есть готовая заготовка скелета с правильно названными костями.
Давайте для наглядности включим отображение имен каждой кости. Для этого следует в окне свойств в вкладке Object Date в разделе Display установить чекбокс Name.
Как можно заметить, все парные кости имеют имена вида name.L и name.R.
Для редактирования скелета перейдем в режим редактирования (Tab), выделим вершину кости и попробуем подвигать ее.
Кость двигается, что и не удивительно. Для симметричного редактирования костей следует включить симметричное редактирование (X-Axis Mirror).
Выделим другую вершину и тоже передвинем ее. Теперь кости двигаются симметрично. Даже та, которую мы двигали до включения симметрии.
Для практики давайте с эмитируем несимметричный скелет, удалив правую часть скелета. Сначала отключим симметричное редактирование. Затем выделим при помощи выделения B правую часть и удалим ее. Не трогайте центральных костей.
Теперь у нас есть несимметричный скелет, левые кости которого оканчиваются на .L Это важно. Давайте добавим еще кость (Shift + A) и дадим ей правильное имя Bone.L во вкладке
Bone.
Подобным образом вы должны переназвать все кости в скелете, который пытаетесь сделать симметричным.
Теперь следует переместить курсор в центр скелета. Если ваш скелет находится в начале координат, то для этого достаточно Shift + C. Если нет, тогда выделите одну из вершин костей спины, затем вызовите меню привязки объектов (Shift + S) и в нем выберите Cursor to Selected.
Так же выберите режим редактирования относительно курсора (рисунок)
Снимите все выделение с костей (А) и выделите все левые кости (те, что справа) не выделяя центральных.
Продублируйте кости (Shift + D), теперть кликните левой кнопкой мыши, затем включите режим масштабирования (S) и ограничте его воздействие осью х (Х). введите на основной клавиатуре — (минус) и 1, затем Enter.
Как видно у нас все кости с правой части скелета стали с именами name.L.001. Для того чтобы вручную их не переименовывать достаточно в меню Armature выбрать пункт Flip Names.
Теперь все кости названы правильно, но вот повернуты они некорректно. Чтобы это увидеть следует включить отображение осей на вкладке Object Date в разделе Display
Для того,чтобы это исправить снова включите режим симметричного редактирования, выделите только левые кости (с именами name.L), надавите Ctrl + R и не двигая курсором мишки Enter. Вы заметите, что кости на противоположной стороне повернутся в «правильное» положение.
Давайте это проверим. Перейдем в режим редактирования позы Ctrl + Tab, выделим и повернем кость руки. Выделенные кости в данном режиме подсвечиваются синим.
Если кости поворачиваются странно , то вернитесь в режим редактирования объекта относительно центра выделения.
Выделите те кости , которые вы поворачивали. Скопируйте позу в буфер и вставьте зеркальное отражение. На рисунке это соответственно первая, а затем третья кнопки в отмеченном месте.
Если правая рука стала точно в то же положение, что и левая — значит все сделано правильно.
Этот метод подготовки скелета выгоден тем, что все модификаторы можно присвоить только одной стороне, а при копировании костей и все модификаторы будут скопированы правильно, что избавляет нас от лишней работы.
Как сделать такой РИГ?
Всем утра доброго.
Есть у меня развертка (крой) картонной упаковки под игрушки. Материал — микрогофрокартон. Он толщиной 1,5мм.
Перевести крой в Blender, задать толщину, сделать UV, вручную сложить (т.е. придать собранный вид)… я могу.
НО! Как настроить rig, что бы «складывать» упаковку, дёргая за кости? Сколько не пробовал, у меня возникает проблема. Попробую описать её:
Представим себе модель руки. Рука в локте сгибается пополам (пусть будет на + 180градусов) только в одну сторону. образуя сгиб в локте и двойную толщину. Но если у нас рука сгибается в локте как на +180гр, так и на -180. В обоих случаях в «локте» — ровное скругление.
Что-то подобное можно наблюдать в CAD (SolidWorks) программах при гибке листового металла. Как сделать такой риг?
П.С. Надеюсь хоть кто-то понял что я имею ввиду (
16.11.2015 в 18:27 #9500
Чисто моя идея, может можно и по другому
Естественно это черновой вариант, скругление поэтому и не круглое Ссылка на файл
https://yadi.sk/d/tXeZZO9rkVhej
20.11.2015 в 16:03 #9530
Т.е — предлагаешь в месте где «логоть» делать отдельную короткую «кость»?
Сгиб получается не очень красивый — круглый. Но это приемлимый вариант.
Надо будет попробовать.
Отпишусь о результатах. У меня толщина картона 1,5мм и 0,5мм. При рендере это надо учитывать т.к. срез картона виден и обойтись плоскостью нулевой толщины не выйдет. Картинки на форум наверное не загрузились. я их не вижу. Смотрел твой blend файл.
20.11.2015 в 16:57 #9531
Ну ShapeKey как вариант, управляемый драйвером который реагирует на дельту угла костей