128 подписчиков

Как перенести готовый риг на новый 2D персонаж в Blender 3.3

Эта публикация на сайте: http://blenderkey.tilda.ws/change2dchar_arm23y

В публикации "Создание рига 2D Grease Pencil стикмен персонажа в Blender" был описан и показан процесс создания 2D Grease Pencil персонажа с костным ригом из *SVG файла. Grease Pencil популярен, интересен и это здорово, но бывают и другие ситуации. Поэтому опишу процесс создания персонажа для перекладки из того же файла *SVG, но в виде 2D кривых с заливкой и один из вариантов переноса готовой арматуры на новую модель. Такой вариант вторичного использования 2D рига экономит время и позволяет работать с единой библиотекой поз для разных персонажей.

Публикация разделена на несколько частей:

  • Настройка Blender и импорт *SVG файла персонажа
  • Подготовка модели к риггингу
  • Аппенд рига 2D Grease Pencil стикмен персонажа
  • Сопоставление скелета с моделью
  • Привязка модели к скелету
Обложка
Обложка

1. Импорт в Blender *SVG файла

Создам новый файл, удалю из сцены все, закрою таймлайн и включу аддон импорта *SVG. Для этого открою настройки Blender, найду вкладку аддонов. В окошке поиска проще набрать "svg" и в окне появятся карточки отсортированных аддонов. Выберу из раздела Import-Export аддон Scalable Vector Graphics (SVG) 1.1 format, поставлю флажок для его активации и закрою окно настроек.
Теперь импорт [File/ Import/ Scalable Vector Graphics (svg)], выберу файл для импорта и нажму кнопочку импорт. Сразу после импорта: выделить все [A]; показать выделенное [Numpad .]; повернуть по оси Х на 90 градусов [R, X, 90]; увеличить масштаб в 10 раз [S, 10]; применить масштаб [Ctrl+A, Scale]. В структурном редакторе (Outliner) выделю все объекты с наименованием "Curve" и перемещу в отдельную коллекцию [M], которую назову "Ctrl_Collection". Изменю набор фильтров структурного редактора (Outliner), добавив ещё один столбец ограничителя на выделение объектов [Restriction Toggles/ Selectable]. Не снимая выделения перемещу все в минус по оси Y и заблокирую выделение. Изменю освещение в окне предпросмотра [Viewport Shading/ Lighting/ Flat].

2. Подготовка макета

Поскольку моделька это 2D кривые, а они плоские. Основная задача разложить все кривые по оси Y, чтобы не было пересечений плоскостей. При этом нужно учитывать, что в процессе работы рига, некоторые кости могут смещаться по Y, то есть между плоскостями дополнительно должно быть какое-то расстояние. Мне проще начинать с детали, которая станет самой дальней, а это предплечье левой руки (Forearm.L), перемещу его по оси Y [G, Y, 0.001]. Добавлю к выделению предплечья ладонь руки (Hand.L), плечо (Arm.L), рукав (Sleeve.L) и вновь перемещу по оси Y [G, Y, 0.001]. Теперь, к выделенному, добавлю большой палец (Thumb.L), отворот рукава (Cuff.L) и передвину по оси Y на большее расстояние [G, Y, 0.09]. Далее ножки. Выделю голень левой ноги (Shin.L) и перемещу [G, Y, 0.01]. Добавлю к выделению ступню (Foot.L) и бедро (Thigh.L) и так же перемещу [G, Y, 0.01]. Ещё добавлю к выделенному тазобедренную часть (Hips), передвину [G, Y, 0.01]. Затем добавлю голень правой ноги (Shin.R), вновь передвину [G, Y, 0.01]. Добавлю бедро (Thigh.R) и ступню (Foot.R) правой ноги, передвину [G, Y, 0.04].
Теперь шея, тело и голова. Начну с шеи (Neck), которую передвину в первую очередь [G, Y, 0.01]. Добавлю к выделению рубашку (Body) и уши (Ear.R, Ear.L), тоже передвину [G, Y, 0.001]. Добавлю ремень (Belt), карман (Pocket), воротник (Collar) и розовую серединку правого уха (EarC.R), вновь передвину [G, Y, 0.001]. Добавлю к выделению кривую головы (Head), передвину [G, Y, 0.001]. Добавлю лицо (Face), передвину [G, Y, 0.001]. Теперь добавлю зубы (Teeth) и передвину [G, Y, 0.02].
Осталась не разобранной правая рука. Первой выделю кривую предплечья (Forearm.R) и передвину [G, Y, 0.001]. Добавлю к выделению большой палец (Thumb.R), плечо (Arm.R) и рукав (Sleeve.R), передвину [G, Y, 0.001].
Вот теперь выделю всю модельку и передвину по оси Y таким образом, чтобы красная линия оси Х оказалась между ступнями.
Далее приведу в порядок материалы. На данный момент у каждой детали свой персональный материал, чтобы было удобней оставлю один материал для деталей с одинаковым цветом и переименую используемые материалы. Начну с материала рукавов (Sleeve.L, Sleeve.R), воротника (Collar) и кармана (Pocket). Выделю эти детали, открою вкладку свойств материалов и назначу один материал для всех выделенных объектов [Material Specials/ Copy Material to Selected], переименую "Bluse_SVGMat". Следующим будет материал рубашки (Body), этот материал просто переименую "DkBluse_SVGMat". Материал отворотов рукавов (Cuff.L, Cuff.R) объединю и переименую "LtBluse_SVGMat". Штанишки, 3 детали светлой части (Shin.R, Thigh.R, Hips) "Pants_SVGMat", 2 детали темной части (Shin.L, Thigh.L) "DkPants_SVGMat". Правый ботинок (Foot.R) "LtBk_SVGMat". Левый ботинок (Foot.L), ремень (Belt) и лицо (Face) "Bk_SVGMat". Объединю и переименую светлую часть кожи "Skin_SVGMat", 6 деталей: голова (Head); правое ухо (Ear.R); правая рука (Arm.R); предплечье правой руки (Forearm.R); кисть правой руки (Hand.R); большой палец правой руки (Thumb.R). А так же 6 деталей затененной части кожи "DkSkin_SVGMat": левое ухо (Ear.L); шея (Neck); левая рука (Arm.L); предплечье левой руки (Forearm.L); кисть левой руки (Hand.L); большой палец левой руки (Thumb.L). Серединка правого уха (EarC.R) "PinkSkin_SVGMat". Зубы (Teeth) "White_SVGMat". На последок изменю цвета персонажа. Без каких-либо затей, на глаз. Однако если есть желание, то можно воспользоваться сервисом Adobe Color и подобрать там что-то необычное. Что это за сервис и где его найти можно посмотреть в
одной из моих публикаций на Дзен.

3. Аппенд рига 2D Grease Pencil стикмен персонажа

Чтобы приаппендить (добавить к рабочему файлу) риг, выделю пустую коллекцию, открою окно выбора элемента для добавления в сцену [File/ Append]. Выберу *blend файл с ригом, найду найду в его структуре папочку с объектами [Object], открою эту папочку, выберу объект рига и нажму кнопочку добавить (Append). В окне предпросмотра (Viewport) появятся кости скелета. Сразу переименую, пусть будет называться 2DstickmanTwo_RIG. На вкладке свойств арматуры поставлю флажок "In Front" [Object Data Properties/ Viewport Display/ In Front], чтобы скелет отображался на переднем плане и изменю внешний вид костей на "Octahedral" (это вид костей по умолчанию) [Object Data Properties/ Viewport Display/ Display As Octahedral].

4. Сопоставление скелета с моделью

Размер скелета и персонажа не совпадают, Чтобы совместить модель и скелет буду изменять скелет, для этого переведу его в режим редактирования [Tab]. Переведу предпросмотр на фронтальный вид [Numpad 1]. Включу режим полупрозрачности [Alt+Z], включу все занятые слои костей [LMB+Shift], переключу режим трансформирования на относительно 3D-курсора [>/ 3D Cursor]. Выделю весь скелет [A] и масштабирую [S] так, чтобы шарнир хвоста большой кости деформаций (deform) оказался на макушке. Сниму выделение [Alt+A], переведу скелет в режим поз [Ctrl+Tab/ Pose Mode], при этом кости подпрыгнут вверх. Об этом эффекте писал в публикации "Несколько простых конструкций рига элементов 2D локаций в Blender", происходит это ввиду того, что был изменен размер кости деформаций (deform). Для исправления ситуации достаточно сбросить значение размера кости в настройках рига. Выделю кость деформаций (deform), открою вкладку констрейнтов кости и нажму на крестик рядом с числовым значением "исходная длинна кости" [Bone Constraint Properties/ Stretch To/ Original Length/ Reset Original Length]. После этого кости вернутся на свои места и можно вернуться в режим редактирования [Tab]. Отключить подключенные ранее слои костей и заняться сопоставлением шарниров костей с деталями персонажа. Для кости шеи (neck), нужно выделить всю кость и поставить шарнир основания в центр контрольного кружочка, затем при необходимости выделить верхний шарнир и переместить его по оси Z. Для шарниров плечей и локтей рук, а так же тазобедренных и коленных сустав ног, проще выделить оба шарнира, например оба локтевых шарнира и сопоставить с кружочком. А для сопоставления кистей рук и стоп стоит выделить не только шарнир, но и все следующие за этиим шарниром кости. Для рук это будет шарнир хвоста кости предплечья (forearm.L(R)), кость большого пальца (thumb.L(R)) и кость ладошки (hand.L(R)). Для ноги это будет шарнир хвоста кости голени (shin.L(R)), кость стопы (foot.L(R)) и целевая кость (Ctrl.L(R)). В таком виде можно сопоставлять выделенное с контрольным кружочком. Для сопоставления с кружочком на ремне нужно выделить целиком кость тела (body) и тазовую (hips).
По завершении процесса можно отключить коллекцию контрольных кружочков, выключить полупрозрачность, отключить режим отображения костей на переднем плане [Object Data Properties/ Viewport Display/ In Front] и переместить предпросмотр в перспективу. Эти настройки упростят процесс сопоставления цепочек костей рук и ног с деталями модели по оси Y. Выделю всю левую руку: кость плеча (arm.L); кость предплечья (forearm.L); кость кисти (hand.L); кость большого пальца (thumb.L). Перемещу выделеное по оси Y [G, Y] таким образом, чтобы детали модели оказались приблизительно по центру костей. Ориентироваться лучше на хвост кости плеча (arm.L) или предплечья (forearm.L), это самые узкие части костей поэтому наиболее близки к оси кости. Далее, сброшу выделение, включу режим отображения костей на переднем плане и выделю цепочку костей правой руки: кость плеча (arm.R); кость предплечья (forearm.R); кость кисти (hand.R); кость большого пальца (thumb.R). Так же как описано выше, передвину выделеное по оси Y. Вновь сброшу выделение и выделю все косточки принадлежащие одной из ног: кость бедра (thigh.L(R)); кость голени (shin.L(R)); кость стопы (foot.L(R)); целевую кость (Ctrl.L(R)); кость поля (Pol.L(R)). Предвину по оси Y, чтобы совместить с деталями ноги персонажа. Для ног проще ориентироваться на кость бедра или голени. Аналогично описанному совмещу с персонажем кости второй ноги, включу режим отображения костей на переднем плане и изменю внешний вид костей на стики.

5. Привязка модели к скелету

Прежде чем приступить к этому процессу, переведу скелет в режим позирования и сниму ограничение на выбор одновременно редактируемых объектов [Edit/ Lock Object Modes]. Теперь можно припаренчивать детали модели к скелету. Для этого выделяю деталь модели, затем кость скелета и создам парент связь [Ctrl+P/ Bone]. Чтобы связать детали плеча к кости, выделю: рукав (Sleeve.R(L)); отворот рукава (Cuff.R(L)); плечо (Arm.R(L)). В последнюю очередь выделю кость плеча (arm.L(R)) и создам парент связь. В этом случае все детали припарентятся к кости. Для того, чтобы припарентить детали головы к кости головы нужно выбрать: оба уха (Ear.L, Ear.R); серединку правого уха (EarC.R); голову (Head); лицо (Face); зубы (Teeth). А для парента к кости тела нужно выбрать: рубашку (Body); ремень (Belt); карман (Pocket); воротник (Collar). Остальные детали припаренчиваются к одноименным костям. После завершения этой процедуры можно убрать кости голеней (shin.L(R)) и стоп (foot.L(R)) на второй слой костей [M], чтобы не мешали. А так же, вернуть блокировку одновременно редактируемых объектов. Осталось создать заново драйвер для рта. Открою вкладку свойств кости рта (mouth) и скопирую перемещение по оси Х [Bone Properties/ Transform/ Location X] как новый драйвер [RMB, Copy fs New Driver]. Переведу скелет в объектный режим. К фильтрам структурного редактора (Outliner) добавлю ещё один столбец ограничений, на этот раз подключу свойство видимости объекта в окне предпросмотра [Restriction Toggles/ Disable in Viewports]. Найду объект зубов (Teeth) и вставлю новый драйвер в значение видимости объекта (на иконку глазика) [Disable in Viewports]. Открою редактор драйверов через меню правой кнопки мыши [RMB, Open Drivers Editor]. Изменю кривую с Безье на Константу [T, Constant], выделю дальнюю от пересечения осей точку кривой и перейду на вкладку F-Curve. Установлю значение поля Key Frame = 0.05. Закрою редактор драйверов, выделю скелет и переведу в режим позирования. Проверю работу нового драйвера, передвигая кость (mouth). Если все устраивает, в окне структурного редактора (Outliner) скопирую драйвер и вставлю на соседнюю иконку фотоаппаратика [Disable in Renders]. Таким образом объект будет управляться драйвером не только в окне предпросмотра, но и на рендер слое. И ещё пара действий. Переименую коллекцию в которой расположен риг. Выделю все детали модели в окне структурного редактора и перетащу в коллекцию рига. Пустую коллекцию удалю.

-------------
#2d #blender #rig #character #cg #b3d