2D Grease Pencil персонаж с ригом

Создание 2D Grease Pencil стикмен персонажа с ригом в Blender 3.3

Стикмен или болванка, на самом деле очень полезный ассет. С помощью такого персонажа можно оттачивать навыки, тестировать будущую сцену и даже снимать мультфильмы
Конечно же стикмены бывают самые разные. Существуют 3D варианты таких упрощённых персонажей, но сейчас речь о 2D. Особо заваривать кашу нет смысла, поэтому стикмен-персонаж нарисован в Adobe Illustrator, мне так удобней. А вот дальше опишу каким образом импортировать *SVG файл в Grease Pencil Blender 3.3, немного доработать макет и собрать простой скелет для перекладки (cut-out).
1

Экспорт макета из Adobe Illustrator

С экспортом достаточно просто. Подготовленный макет с именованными деталями экспортируется как *SVG в версии 1.1. Отмечу, что контрольные точки, а точнее кружочки не нужно переименовывать. Blender объединит эти объекты на один слой Grease Pencil, что очень удобно. И ещё одно, в Grease Pencil цвет будет отображаться как Vertex Color (окраска по цветам вершин). Поэтому если необходимы будут материалы, лучше сразу сделать принтскрин палитры. В большинстве случаев создавать материалы по готовой палитре быстрее.
2

Импорт в Blender и подготовка макета

После создания нового файла можно удалить кубик и источник освещения. А вот камеру лучше оставить и немного перестроить. Сбросить все трансформации, затем выполнить следующее: повернуть по оси X на 90 градусов; немного переместить по Y; на вкладке свойств изменить тип камеры на ортографический. Для удобства имеет смысл переместить камеру в новую коллекцию [M/ New Collection]. Выключить новую коллекцию с камерой и сделать активной пустую коллекцию.
Теперь импорт [File/ Import/ SVG as Grease Pencil]. Настройки импорта по умолчанию очень даже хорошо подходят, потому ничего изменять не нужно. Сразу после импорта: фронтальный вид [Numpad 1]; показать выделенное [Numpad .]. Чтобы появился цвет достаточно изменить режим отображения цвета [Viewport Shading/ Color/ Attribute]. На вкладке свойств Grease Pencil, появились слои с именами как были заданы в Adobe Illustrator, а самый верхний, у меня кириллицей, "Слой_2". Это слой в котором собраны все контрольные кружочки.
Чтобы в последствии удобней было привязывать модель к скелету лучше объединить все детали обоих плечей, их по три на каждое плечо: Cuff.R(L); Sleeve.R(L); Arm.R(L). Так же детали рубашки и ремня: Pocket; Belt; Body; Collar. И ещё одна сборка, это детали головы: Face; Head; Ear.L; EarC.R; Ear.R. Однако, если есть желание прикреплять к кости каждую деталь отдельно, то такой вариант тоже возможен. Итак, объединяются слои по два: верхний объединяется с нижним. Таким образом слой Sleeve.R(L) для объединения нужно поднять над слоем Arm.R(L) нажимая на стрелочку вверх, которая расположена рядом с окошком слоев, затем открыть дополнительное меню и выбрать пункт "объединить с нижним" [Layer Specials/ Merge Down]. Далее выделить слой Cuff.R(L), переместить его ниже нажимая на соответствующую стрелочку пока он не окажется над слоем Arm.R(L) и так же объединить. Аналогично можно поступить с деталями рубашки, а вот с головой иначе. Сначала объединить Face на Head, затем Head на Ear.L, потом Ear.L на EarC.R, EarC.R на Ear.R и получившееся переименовать в Head, чтобы не путаться. Далее активировать режим редактирования объекта Grease Pencil [Tab], выделить все и аккуратно "поставить" персонаж на ось Х. Закрыть редактирование [Tab] и заблокировать все слои Grease Pencil за исключением "Слой_2", который понадобится для установки костей. Чтобы заблокировать слои, достаточно при выделенном "Слой_2" нажать на кнопочку с замочком, которая расположена рядом с окошком слоев на вкладке свойств Grease Pencil.
3

Создание скелета

Создам арматуру как объект [Shift+A, Armature], переименую [F2]. Переведу объект в режим редактирования [Tab] и переименую кость [F2]. Эта кость будет основной, корневой в иерархии арматуры или просто рут (Root). Выделю хвост кости [LMB], и передвину вниз по оси Z [G, Z]], изменив таким образом размер кости. Создам дубликат [Shift+D], передвину в сторону, переименую, эта кость тела (body). Поставлю кость на пояс с помощью направляющего кружочка и 3D-курсора. Для этого закрою режим редактирования арматуры, выделю Grease Pencil объект, переведу его в режим редактирования. Выделю кружочек на поясе и переставлю на него 3D-курсор [Shift+S, Cursor to Selected]. После этого, в обратном порядке, вернусь к редактированию скелета, переставлю кость на курсор [Shift+S, Selection to Cursor]. Затем увеличу размер кости передвигая хвост по оси Z до воротника персонажа.
От основания кости тела (body) экструдирую вниз по оси Z новую кость [Е, Z]. Переименую, это тазовая кость (hips).
Сделаю дубликат тазовой кости, передвину в сторону, переименую, это уже бедренная кость (thigh). Сделаю дубликат этой кости, передвину в сторону, переименую в зависимости от того с какой стороны находится кость: справа (R); слева (L). Так же как описано выше, установлю эти кости на свои места по направляющим модели с помощью 3D-курсора.
Затем для удобства включу полупрозрачность [Alt+Z], выделю хвосты обеих бедренных костей и переставлю оба хвоста одновременно на кружочки коленных суставов. Не снимая выделения, экструдирую ещё две кости и поставлю их хвосты на кружочки голеностопных суставов (shin.L(R)). Так же, не снимая выделения, экструдирую ещё две кости по оси Х, это кости стоп (foot.L(R)). Сразу же выделю сразу обе кости стоп и разорву парент связи [Alt+P/ Clear Parent].
После переименования созданных костей, выделю сразу два голеностопных сустава и экструдирую из них кости, это целевые кости инверсной кинематики. Выделю целевые кости и разорву парент связи, переименую (Ctrl.L(R)). Затем выделю оба коленных сустава и экструдирую кости полей для инверсной кинематики. После создания выделю сразу обе кости полей, разорву парент связи и передвину кости в сторону, переименую (Pol.L(R)).
Дублирую тазовую кость (hips) и передвину в сторону. Переименую, это будет кость руки (arm.L(R)), сделаю ещё дубликат, название приведу в соответствие с расположением кости. Установлю кости рук на плечевые суставы персонажа с помощью 3D-курсора, по аналогии с тем как описано выше. Затем выделю оба хвоста плечевых костей и переставлю на локтевые суставы. Не снимая выделения экструдирую предплечья (forearm.L(R)), а затем кисти (hand.L(R)).
После, выделю обе кости кистей рук, дублирую и поставлю на основания больших пальцев рук ориентируясь по контурам деталей. Не снимая выделения разорву парент связи и переименую (thumb.L(R)). Выделю хвосты костей и переставлю на кончики больших пальцев.
Затем выделю кость тела, дублирую, используя 3D-курсор поставлю на нижний шарнир шеи, переименую (neck). Выделю хвост кости и поставлю на верхний шарнир. Дублирую кость и поставлю приблизительно по центру головы персонажа, переименую (head) и подниму хвост кости на макушку головы. Создам дубликат кости, поставлю недалеко от персонажа, приблизительно на уровне рта, переименую (mouth). Открою боковую панель [N] и уменьшу размер кости до 0,1 [Item/ Lenght = 0.1].
Выделю рут (Root) кость, создам дубликат, перемещу ниже целевых костей ног и переименую (switch), эта кость будет отзеркаливать персонаж. Вновь выделю рут кость, создам копию без смещений, на боковой панели увеличу размер новой кости до 0,2, переименую (mch), эта кость будет выполнять вспомогательные функции.
Создам копию кости и увеличу так, чтобы хвост кости оказался на макушке, переименую (deform), эта кость будет деформировать, стретчить весь персонаж. От хвоста кости экструдирую ещё одну, небольшую кость, переименую (target), это целевая кость для кости деформаций и разорву парент связь.
4

Настройка рига

Начну с парент связей. Выделю кость тела (body), затем кость деформаций (deform) и создам парент связь [Ctrl+P/ Keep Offset]. Теперь выделю кость деформаций (deform), целевые кости ног (Ctrl.L(R)) и целевую кость деформаций (target), затем вспомогательную кость (mch) и создам парент связь. Вновь выделю кость деформаций (deform) и перемещу на третий слой костей [M]. Кость исчезнет, чтобы вернуть видимость кости достаточно выделить слой на котором она расположена [LMB], а слои расположены на вкладке свойств скелета [Object Data Properties/ Skeleton/ Layers]. Далее, выделю вспомогательную кость (mch) и кость переключателя (switch) припаренчу к кости рут (Root) и перемещу вспомогательную кость (mch) на второй слой костей. Теперь, кости стоп (foot.L(R)) привяжу к целевым костям (Ctrl.L(R)). Кости больших пальцев рук (thumb.L(R)) к кистям (hand.L(R)). Кость рта (mouth) к кости головы (head). Кость головы (head) к кости шеи (neck). Кости полей (Pol.L(R)) и бедренные кости (thigh.L(R)) к тазовой кости (hips). Тазовую кость (hips), кости рук (arm.L(R)) и шеи (neck) привяжу к кости тела (body).
Переведу скелет в режим позирования [Ctrl+Tab/ Pose Mode]. Включу все занятые слои костей [LMB+Shift], выделю весь скелет [A] и переключу Кватерионы на Эйлер [Ctrl+R, XYZ Euler]. Далее, выделю целевую кость деформаций (target), затем кость деформаций (deform) и добавлю констрейнт стретча (Stretch To). Отключу третий слой костей, там где находится кость деформаций [LMB+Shift], а для целевой кости деформаций, на боковой панели заблокирую все трансформации за исключением перемещения по оси Y.
Выделю кость переключателя (switch), так же заблокирую все трансформации за исключением перемещения по оси Х и добавлю констрейнт ограничения на перемещение (Limit Location). Настройки констрейнта такие: минимум по Х= -0,1; максимум по Х=0; установлена галочка Affect Transform и пространство Local Space. Копирую значение перемещения по оси Х кости переключателя (switch) как новый драйвер.
Затем выделю вспомогательную кость (mch) и вставлю в поле масштаба по оси Х скопированный с кости переключателя (switch) драйвер. После вставки драйвера скелет превратится в узкую вертикальную полосочку по оси Z. Для настройки драйвера открою редактор драйверов кликнув правой кнопкой мыши на поле с драйвером [RMB, Open Drivers Editor]. Изменю кривую с Безье на Константу [T, Constant], выделю находящуюся на пересечении осей точку кривой и перейду на вкладку F-Curve. Установлю значения полей: Key Frame = -0.1; Value = -1. Затем выделю вторую точку кривой и установлю значение поля Key Frame = -0.05. Закрою редактор драйверов, проверю работу передвигая кость переключателя. После этого отключу второй слой костей, тот на котором находится вспомогательная кость.
Выделю кости: рут (Root); переключателя (switch); рта (mouth) и целевую кость деформаций (target). Скрою выделенное [H], чтобы не мешало. Выделю всё оставшееся и заблокирую трансформации для всех по одному шаблону. Если появится необходимость что-то разрешить, то это можно будет сделать персонально для одной или для группы костей. Итак, на боковой панели запрещу трансформации: перемещения по оси Z; вращения по осям X и Y; масштабирования по всем осям. Скопирую шаблон на все выделенные кости через меню правой кнопки мыши [RMB/ Copy All tto Selected], при этом курсор мыши должен находиться над копируемыми значениями. Копируются отдельно блокировки перемещения, вращения и масштабирования. После этого можно вернуть скрытые кости [Alt+H].
Продолжу, выделю кость голени (shin.L(R)), затем принадлежащую ей кость стопы (foot.L(R)) и установлю констрейнт копирующий положение кости [Ctrl+Shift+C/ Copy Location], при этом кость стопы "подпрыгнет" на колено. Чтобы вернуть стопу на место, открою вкладку констрейнтов стопы и изменю значение положения с нуля на единичку [Bone Constraint Properties/ Copy Location/ Head/Tail =1]. Аналогичные действия проведу и для второй ноги.
Далее, выделю целевую кость инверсной кинематики (Ctrl.L(R)), затем принадлежащую ей кость голени (shin.L(R)) и назначу констрейнт инверсной кинематики [Ctrl+Shift+C/ Inverse Kinematics]. Дополнительно настрою констрейнт: в окошке Pole Target укажу имя рига (можно скопировать из окошка Target); в появившемся окошке Bone укажу имя кости поля (Pol.L(R)) принадлежащей этой ноге; значение длинны цепочки костей инверсной кинематики равна двум Chain Lenght = 2. Аналогичную процедуру проведу и для второй ноги.
Потом выделю кость рта (mouth), на боковой панели заблокирую все трансформации за исключением перемещения по оси Х. Назначу констрейнт ограничитель перемещений (Limit Location) со следующими настройками: минимум по Х=0; максимум по Х=0,1; установлена галочка Affect Transform и пространство Local Space. Копирую значение перемещения по оси Х кости рта (mouth) как новый драйвер. Переведу скелет в объектный режим [Ctrl+Tab], выделю Grease Pencil объект, открою вкладку свойств, разблокирую слои, удалю "Слой_2". Найду слой зубов (Teeth) и вставлю новый драйвер в значение видимости слоя (на иконку глазика) [Set Layer Visibility]. Открою редактор драйверов через меню правой кнопки мыши . Изменю кривую с Безье на Константу, выделю дальнюю от пересечения осей точку кривой и перейду на вкладку F-Curve. Установлю значение поля Key Frame = 0.05. Закрою редактор драйверов, выделю скелет, переведу в режим редактирования, отключу полупрозрачность и переведу в режим позирования. Проверю работу нового драйвера, передвигая кость (mouth). Изменю внешний вид костей на стики [Object Data Properties/ Skeleton/ Viewport Display/ Display as - Stick]. После этого переведу риг в объектный режим и займусь привязкой деталей стикмена к скелету.
5

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

Выделю объект Grease Pencil, на вкладке свойств, в окошке слоев выделю самый верхний слой. Начну с него, у меня это Hand.R. Кроме слоев на этой же панели открою раздел связей (Relations), в этом разделе и будет происходить основная работа. Для того, чтобы привязать слой: укажу в окоше Parent имя рига (2DstickmanBlue_RIG); тип связи Type = bone; в появившемся окошке Bone укажу кость к которой привязывать, для Hand.R это будет кость hand.R. Вот таким образом свяжу все детали персонажа со скелетом. Единственный слой у которого не совпадает название с именем кости, это Teeth, этот слой надо привязать к кости головы (head). А чтобы каждый раз не искать в списке нужную кость, проще набирать на клавиатуре название кости. Тогда Blender будет показывать только отсортированные по набранным символам кости. Так получится быстрее. После создания связей можно тестировать риг. Он работоспособен, но в отдельных случаях имеет смысл привязать объект Grease Pencil к арматуре. Для этого на вкладке характеристик объекта на панели связей (Relations) достаточно указать: в окоше Parent имя рига (2DstickmanBlue_RIG); тип связи Parent Type = Armature.
6

Приложения

Дополнительные файлы к публикации.
*blend файлы были созданы в Blender 3.3 (https://www.blender.org/)
Yandex Диск: https://disk.yandex.ru/d/lL9NKiDt4TsbUQ
  • PP1_2DStickmanBlueGP_V23.blend
  • PP2_2DStickmanBlueGP_V23.blend
  • 2DStickmanBlueGP_V23_exportBlend.ai
  • 2DStickmanBlueGP_V23_exportBlend.svg
  • Palette2DStickmanBlue_Scn20230529115212.png
Таймлапс видеоролик процессов создания стикмен модели в Blender 3.3.
«2D Grease Pencil стикмен с ригом в Blender 3.3»
Зеркало на Rutube: https://rutube.ru/video/88580afa94e1d294f21b88fee6222bfe/
-------------Tags-------------
#greasepencil #rigging #easy2d #blender #b3d #2д #character #rig #animationpipeline #blenderanimations​ #character #персонаж #howtoanimate #cg
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website