Модификатор Lattice в Blender: решеточная деформация и анимация

Обновлено:

В Blender объект Lattice | Решетка представляет собой трехмерную сетку из вершин, которая не отрисовывается при рендеринге и в основном используется совместно с одноименным модификатором для деформации другого объекта.

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

В анимации ее можно использовать как вариант морфинга (изменения формы объекта во времени). В таком случае ключи формы создаются не для самой модели, а для связанной с ним сетки. В мультяшной анимации, где ключевое правило — Squash and Stretch (сжатие и растяжение), решетка позволяет сплющивать, вытягивать и скручивать персонажей или их части. В этой статье, после того как рассмотрим особенности работы с деформирующей решеткой, создадим анимацию ударяющегося и отпрыгивающего мяча, выполненную с помощью Lattice.

В Blender, чтобы добавить объекту деформационную решетку, можно выполнить такую последовательность шагов:

  1. Создать объект-модель, добавить объект-решетку.
  2. Подогнать решетку под размер модели.
  3. Выделить сначала модель, затем решетку.
  4. Нажать Ctrl + P, выбрать вариант установления родительской связи Lattice Deform | Деформация по решетке. В результате объекту будет добавлен модификатор Lattice | Решетка.
Установка решетки в качестве родителя

Однако модификатор накладывается на объект сразу, если при добавлении решетки на сцену его выделить и вместо варианта Lattice | Решетка выбрать Lattice Deform Selected | Деформирующая решетка для выделения. При этом решетка сразу подгонится под размер объекта и появится в месте локализации объекта.

Сетка на объекте будет работать, даже если не окружает объект. Но чтобы впоследствии ее воздействие было более предсказуемо, в объектном режиме она должна обрамлять модель. Деформируемый объект следует поместить внутрь нее.

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

В отличие от мешей в режиме редактирования решетки ее ребра не выделяются. Здесь можно выделять только вершины и трансформировать их. Вслед за ними будет меняться модель.

Решетка в режиме редактирования. Изменение положения вершин

Можно корректировать способ изменения с помощью настроек интерполяции на вкладке Data | Данные редактора свойств. Так на скрине ниже видно, что из-за разных способов интерполяции по длине и ширине объект сжат по оси Y сильнее, чем по оси X.

Способы интерполяции деформирующего воздействия решетки

С помощью полей разрешения (resolution) происходит подразделений сетки.

Разрешение решетки, ее подразделение, - количество вершин по ширине, глубине и высоте

Параметр Outside включает вариант сетки "только снаружи". В этом случае внутрь нее не идут ребра и на их пересечении нет вершин, которые можно было бы править.

Теперь посмотрим на модификатор Lattice, который деформирует основной объект согласно форме привязанной решетки.

Настройки модификатора Lattice (решетка)

Если требуется, чтобы изменению подвергалась только часть объекта, то для этой части создают группу вершин и указывают ее в модификаторе. На скрине ниже была создана группа верхней половины меша. Указание этой группы в модификаторе приводит к изменению только верхней части сферы. С помощью двунаправленной стрелки у поля Vertex Group | Группа вершин мы можем инвертировать область воздействия (туда попадет все, что не вошло в указанную группу вершин).

Применение решетки к группе вершин

Как и все модификаторы, пока они не применены, а только добавлены, Lattice вносит изменения поверх исходной геометрии, к которой можно вернуться и выполнять редактирование без учета деформации.

В то же время несколько объектов могут использовать одну и ту же решетку, что позволяет их модифицировать одновременно и единообразно. Однако это несколько входит в противоречие с тем, что решетка должна обтекать объект. Если вы вытащите объект из сетки до применения модификатора (нажатия Apply), его деформация изменится. Чтобы этого не происходило модификатор все-таки придется применять или все объекты размещать в одном месте, убирая видимость остальных при редактировании одного.

Анимация изменения мешем формы с помощью Lattice

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

При таком сценарии получается два анимационных движения. Первое — изменение формы, и оно реализуется через Shape Keys. Второе — перемещение мяча в пространстве.

Добавим на сцену сферу и решетку для нее. У второй увеличим количество точек деформации и создадим два ключа формы. Выделим второй и в режиме редактирования изменим форму мяча так, как будто он немного сжался и растянулся при столкновении. Вернемся в объектный режим, уменьшим влияние второго ключа до нуля и создадим для него анимационный ключ в первом кадре. В 24-м кадре добавим еще один ключевой кадр с тем же значением влияния ключа формы. В 27-м кадре поднимем влияние до 1, создадим ключ анимации. В 30-м кадре уберем влияние, добавим последний ключ.

Когда к сфере был применен модификатор Lattice — это не значит, что была установлена настоящая родительская связь. Если мы станем перемещать мяч, он выйдет за пределы решетки, и ее деформирующее воздействие, когда это надо, станет не таким. Поэтому анимировать как целый объект следует решетку, а мяч привязать к ней как дочерний меш.

Выделем сферу, затем решетку и нажмем Ctrl + P. Выберем пункт Object | Объект. Разместим на сцене плоскость и поднимем мяч на ней, перемещая решетку.

На таймлайне сделаем текущим первый кадр. Во вьюпорте, не снимая выделения с решетки, нажмем K и выберем Location | Положение. В 27-м кадре опустим решетку с мячом до контакта с землей и создадим такой же ключ. В 48-м кадре поднимем решетку, но так, чтобы мяч оказался немного ниже своей исходной высоты. Вставим последний ключ анимации перемещения.

Чтобы отскок выглядел естественно, то есть был резким, можно изменить тип ручек узла у кривых анимации в редакторе графов. Для этого необходимые узлы там выделяют, нажимают V и выбирают Vector | Вектор.