Эта публикация на сайте автора: http://blenderkey.tilda.ws/arm2d_locn23y
Достаточно давно наметил себе небольшой материал по поводу "шевеляжа" элементов 2D локаций и вот, спустя продолжительный промежуток времени, все-таки вернулся к этой теме и теме 2D.
Идея этой публикации связана с демо-роликом "2D локация Grease Pencil с ригом в Blender". Именно там использовались костные конструкции оснастки, которым посвящен этот материал. Однако, когда в проекте нет костных ассетов, или нет смысла делать такой риг, тогда такелаж будет без костей. Например на пустышках или вовсе напрямую на объектах. Подсмотреть за эдаким безобразием можно в видеороликах: "2D сцена и персонаж Grease Pencil из векторного макета в Blender" и "Создание 2d сцены из *SVG в Blender". А в этой публикации рассматриваются несколько простых костных конструкций в Blender.
Содержание:
- Создание простых объектов для демонстрации
- Риг 2D локаций
- Риг с констрейнтом Maintain Volume
- Риг с тремя костями
- Риг с бенди-бонс (Bendy Bones) костью
1. Создание простых объектов для демонстрации
Итак, для того чтобы установить и посмотреть как работает риг, нужны несколько совсем простых объектов. Пусть это будут: облачко, одной кривой; куст, созданный парой кривых; дерево, так же в виде пары кривых; ещё одно дерево, смоделированное меш плоскостями и третье дерево, нарисованное Grease Pencil.
Процесс создания подробно показан в предлагаемом к просмотру таймлапс ролике, а общее описание начнется с очень простой штуки. 2D в Blender это почти всегда вид спереди (Front View). Поэтому после создания кривой Безье (Curve Bezier), нужно повернуть объект кривой по оси X на 90 градусов, чтобы она смотрела "лицом" в камеру. После, в режиме редактирования, можно удалить кривую, поскольку проще нарисовать нужную кривую самым обычным инструментом рисования (Draw). Даже при рисовании мышкой, а на видео показан именно этот способ, кривая очень хорошо сглаживается, что является несомненным плюсом. Затем достаточно немного или много подправить, тут уж как получится с рисовакой.
Настройки кривой так же не очень сложные, достаточно указать, что кривая 2D и ей нужна сплошная заливка. Всё, да не всё. Если кривые накладываются друг на друга, то их надо немного разнести по оси Y.
Созданную меш плоскость так же нужно повернуть по оси X на 90 градусов, причина та же. Моделирование достаточно свободное, но лучше собрать в один объект с минимальным количеством точек и ребер, а поверх использовать модификатор подразделения (Subdivision surface).
Материалы используются самые простые и для кривых, и для меш.
Grease Pencil использует свои материалы и слои. То есть достаточно создать Grease Pencil объект, настроить материалы, задать слои и не забыть нарисовать.
2. Риг 2D локаций
Вне зависимости от того каким образом создана локация: будь то картинки, кривые, Grease Pencil или меш, импортирована она или нарисована в Blender, структура костного рига 2D локаций обычно очень проста. Основа - главная кость или рут (root), к ней крепятся детали и мастер-кости к которым крепятся ещё детали или новые мастер-кости. То есть самые простые зависимости без изысков, без складывающихся-накладывающихся, скрывающихся (иногда в шкафу) скелетов и всего вот такого, ну, в большинстве своем.
Однако, иногда возникает жизненная необходимость что-то пошевеляжить. Например: сделать "мягким" диванчик; наклонить дерево; пошевелить куст и так далее.
Да, если какой-то объект большой, важный, да ещё с ним связаны какие-то действия или взаимодействия, то такой объект будет уже пропсом. При необходимости для него будет сделан отдельный риг, а простенькие детальки так и остаются в локации. К таким объектам, чаще всего, не предъявляются особые требования, а риг делается максимально простой.
Стоит уточнить, что для объектов окружения чаще всего необходимо обычное передвижение по оси X (горизонталь) и оси Z (вертикаль). Это если смотреть на 2D макет в лоб, при используемой глобальной системе координат. Бывает необходимость покрутить деталь по оси Y, а перемещение по оси Y делается для совсем немногочисленных объектов, поскольку большинство деталей уже расставлены в объеме - все же локация. Передвижение по осям X, Z реализуется очень просто. Элемент, или целая группа, привязывается к кости целиком (Set parent to bone), а на кость желательно установить ограничения, включить замочки на всем лишнем. Можно ещё добавить ограничивающий констрейнт, например для ограничения угла поворота.
3. Риг с констрейнтом Maintain Volume
Если деталь просто перемещается и поворачивается, то достаточно одной косточки и на этом все, а вот с масштабом может быть несколько иначе. Это потому, что при масштабировании по одной из осей, очень часто возникает необходимость сохранять визуальный объем всего объекта. В Blender для этих целей предусмотрен констрейнт Maintain Volume. Достаточно добавить этот констрейнт на кость и все. Деталь или несколько деталей припаренченных к этой кости, будут хорошо, правильно сквошится и стретчится.
Вот это и есть первый вариант рига способного сквошить и стретчить. Какой ни есть, а он не очень удобен, как минимум тем, что просто изменить размер стало совсем не просто. Но это работает и даже используется.
4. Риг с тремя костями
Для того чтобы стало удобней нужно построить конструкцию немного сложнее. В такой конструкции целых три кости: кость-основа; кость деформаций и кость-цель. Такая конструкция является основой множества других прекрасных и простых конструкций. Например, рига для мячика, который описан в одном из опубликованных материалов.
Итак, что же тут к чему. Кость-основа или мастер кость, является главной в этой конструкции, к ней припаренчены обе кости: кость деформаций и целевая кость. Для того чтобы все хорошо работало хвост кости деформаций должен находится в точке расположения основания целевой кости. И желательно расположить оси перечисленных костей максимально близко к визуальной оси объекта. Конечно, объект может быть разной формы и состава, это могут быть и несколько кривых одновременно. В общем бывает такое, когда приходится опытным путем подбирать расположение деформационной кости, чтобы деформация происходила более удобно и правдоподобно. После того как кости установлены на свои места достаточно перейти из режима редактирования в режим позирования и добавить на деформационную кость констрейнт Stretch To. Сделать это возможно несколькими способами. Если просто добавить констрейнт на кость, тогда необходимо указать в качестве цели риг, затем целевую кость, к которой будет тянуться деформационная кость, а остальные настройки можно оставить по умолчанию. Либо, выделить сначала целевую кость, затем кость деформаций и нажать [Shift+Ctrl+C], в появившемся меню выбрать констрейнт Stretch To. В этом случае цель и целевая кость уже будут указаны в настройках. Остается припарентить объект или детали объекта к кости деформаций и можно использовать. Парент простой, так же как и в предыдущем случае, целиком к кости (Set parent to bone).
Когда нужно сделать одинаковый риг и для другого объекта, то вместо того чтобы каждый раз создавать новые кости, достаточно скопировать уже имеющиеся и перенести на новое место. Затем расставить скопированные кости, например с помощью 3D-курсора и переименовать. После изменения размера и положения деформационной кости, после каждого такого изменения, необходимо сбрасывать значение её размера в настройках констрейнта.
Вот таков второй вариант.
5. Риг с бенди-бонс (Bendy Bones) костью
Этот вариант работает с Grease Pencil и Mesh объектами. В нем все так же три кости. Кость-основа, от нее исходит (т.е. эти кости связаны) деформационная кость, а целевая припаренчена к основной с отступом (Keep Offset). Аналогично предыдущему варианту на кость деформаций установлен констрейнт Stretch To. Видимый объект припаренчен к деформационной кости с помощью варианта Object. На самом деле припарентить можно другими способами, включая вариант с автоматическим распределением весов, но в данном материале опишу способ с Object. Для того, чтобы все заработало нужно создать группу вертексов состоящую из всех вертексов с весом равным единице и именем деформационной кости. А так же добавить к меш объекту модификатор Armature в котором указать имя рига.
Осталось сделать пару завершающих штрихов. Деформационной кости, в разделе Bendy Bones нужно добавить сегментов (Segments), пусть будет 10. И указать что управлять хвостом будет целевая кость. То есть в том же разделе Bendy Bones/End Handle изменить значение на Absolute или Tangent, а в End Handle/Custom указать имя целевой кости.
Вот из таких, простых конструкций можно собирать очень даже приличные локации. И можно навести красоту, заменив внешний вид костей на симпатичные виджеты. Каким образом это сделать показано и рассказано в публикациях: "Риг для 2D мячика в Blender" и "Знакомство со скелетным ригом простого 2D персонажа в Blender | Персонаж Корги"
А на данный момент всем успеха и удачи!