Введение в физику в Blender

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

Создавать такое вручную было бы трудоемко. Представьте, сколько потребуется ключевых кадров, чтобы имитировать колебание флажка, или сколько надо капель-объектов, чтобы в вашем фильме пошел дождь.

Для моделирования физики реального мира Blender содержит физический движок и ряд других инструментов, которые существенно упрощают жизнь. При их использовании открывается доступ ко множеству настроек, с помощью которых можно получить желаемый эффект.

В Blender настройка частиц и остальная физика разделены по разным вкладкам редактора Properties.

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

В Blender частицы порождаются излучателем (источником, эмиттером – Emitter), которым может выступать любой mesh-объект. Часто выбирают плоскость.

Одному мешу может быть назначено несколько систем частиц. Например, если моделируется дождь с градом, то имеет смысл к одному излучателю подключить две системы частиц. Элементарные единицы одной будут похожи на капли, другой – на белые шары. Также у каждой системы может быть свое поведение, т. к. град должен падать быстрее и отскакивать от поверхности.

Системы частиц добавляются в слоты подобно тому, как это делается при добавлении объекту нескольких материалов. Хотя обычно бывает достаточно одной системы частиц.

Кнопки Emitter и Hair позволяют выбрать, будет ли объект испускать частицы или из него будут расти волосы.

На изображении в случае Emitter это не первый кадр, а частично проигранная анимация.

Если выполнить рендер (F12), то волосы мы увидим, а вот частицы – нет. Если посмотреть на панель Render вкладки Particles редактора Properties, то по-умолчанию заявлено, что частицы должны прорисовываться как Path или Halo – светящиеся точки. Чего мы не наблюдаем.

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

В этом случае при рендере частицы видны.

Предварительно частицы надо сгенерировать, для этого следует запустить анимацию (Пробел). Частицы начнут сыпаться вниз из объекта-излучателя. После одного цикла анимации ее можно остановить, перейти к нужному кадру и выполнить рендер (F12), чтобы увидеть, как выглядят частицы на картинке. Можно создать видеофайл с анимацией.

Если потом вы вносите какие-либо изменения, то анимацию лучше снова переиграть.

На панели Emission (Излучение) поле Number определяет количество излучаемых частиц. Это влияет на их плотность на единицу пространства. Start и End определяют промежуток шкалы времени, когда эмиттер излучает частицы. Lifetime – время жизни одной частицы. Так если конкретная частица родилась в 60-м кадре, а время ее жизни 50 кадров, то она исчезнет в 110-м кадре.

По умолчанию настройки таковы, что к 250-му кадру все частицы исчезают, так как последние были рождены в 200-м.

Когда частицы падают, то на их пути могут встречаться другие объекты. По умолчанию эти другие объекты никак не реагируют на частицы. Последние проходят сквозь них, как-будто нет никаких препятствий. Чтобы объект реагировал на другой объект, ему добавляется "физика столкновения".

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

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

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

Рассмотрим моделирование ткани. Оставим куб стартового файла и добавим на сцену плоскость или сетку, которую увеличим и поднимем над кубом. Подразделим ее. После этого включим для плоскости кнопку Cloth на вкладке Physics редактора свойств.

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

Если для куба включить Collision, то плоскость столкнется с ним и обернет его подобно ткани. На рисунке ниже у плоскости также было включено сглаживание.

Теперь представим, что ткань к чему-то прикреплена. Создадим группу вершин и назначим ей несколько вершин плоскости (см. практическую работу 10-го урока). Во вложенной панели Shape укажем группу вершин в качестве значения Pin Group.

Теперь ткань повиснет на вершинах.

Отметим, что при работе с физикой ее следует "выпекать". При этом генерируются кадры анимации, что в последствии ускоряет прорисовку. Можно создать множество слотов с разными выпечками, каждая из которых сохраняет отличные от других настройки физики.

Одним из типов "физик" Blender'а являются силовые поля (force fields) – ветер, вихрь, магнитное поле и др. Соответствующая кнопка включения и последующий выбор типа силового поля находятся на вкладке Physics редактора свойств. При этом силовое поле добавляется выделенному объекту.

С другой стороны, силовые поля доступны через меню Add (Shift+A). На самом деле здесь происходит примерно то же самое, но автоматически: на сцену добавляется объект-пустышка и ему включается физика выбранного силового поля. Так что для последующей настройки надо перейти на вкладку Physics.

На рисунке ниже сцену добавлен ветер (Wind) через Add → Force Field. Стрелка указывает его направление, которое можно изменить, поворачивая объект. Сильно увеличена сила (strength) ветра. В результате ткань не падает на куб, а поднимается вверх. Силовые поля также могут влиять на частицы.

Курс с инструкционными картами к части практических работ:
android-приложение, pdf-версия

Введение в Blender. Курс