Blender Basics 4-rd edition/Chapter 18- Object Physics

Материал из wiki.nntc.nnov.ru
Перейти к навигации Перейти к поиску

Глава 18: Физика Объектов

Автор: James Chronister
Перевод: Азовцев Юрий aka gumanoed


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


Blender использует свободный физический движок Bullet для симуляции различных процессов. Движок Bullet использовался в одном из последних голливудских блокбастеров для создания падающих зданий и обломков. Я ожидаю его более широкое использование в кино индустрии вместе с Blender.

Использование системы Мягких Тел

Система Мягких Тел (Soft Bodies) была одной из первых систем симуляции в Blender, после частиц. Система Мягких Тел используется для симуляции ткани, "желе" и воды. Меши обычных объектов могут изменять меш Мягкого Тела (одежда на персонаже или лодка на волнах). Даже, не смотря на такие новые модификаторы как Cloth и Fluids, которые появились в Blender 2.6, система Мягких Тел по прежнему широко используется. Для обзора основных настроек системы Мягких Тел мы создадим сцену с плоскостью, расположенной над UV-сферой. Увеличьте плоскость примерно в 2 раза и подразделите (Subdevision) 4-е раза. Мы закрепим два угла плоскости и сделаем так, чтобы она падала на сферу как кусок ткани. 300px
400px Нашим следующим шагом будет создание Группы Вершин (как мы это делали в Главе про Частицы) в разделе Object Data в Окне Свойств. Выделите все вершины и назначьте им вес равный 0. Затем выделите только две вершины в углах, установите параметр "Weight" в значение 1.00 и нажмите кнопку "Assign" для назначения им веса 1.00. Это будут две "закрепленные" вершины, которые мы скоро будем использовать. Вернитесь в Объектный Режим.


Теперь пришло время заглянуть в раздел Physics в Окне Свойств и включить систему Мягких Тел нажатием кнопки "Soft Bodies". Если вы сейчас нажмете Alt-"A", в окне анимации ваша плоскость будет просто прыгать вверх и вниз. Но, если на панели "Soft Body Goal" вы выберете созданную группу вершин, ваша плоскость будет опускаться как ткань или флаг, подобно изображению справа. Сейчас наша ткань просто падает сквозь сферу. Если этого не происходит, попробуйте перейти в 1-й кадр и еще раз запустить анимацию (Alt-"A"). 400px
Для того, что бы наше Мягкое Тело взаимодействовало со сферой нам потребуется активировать свойство "Collision" для сферы. Выберите Сферу и в Окне Свойств в разделе Physics нажмите кнопку "Collision". Нажмите Alt-"A" для проверки полученного эффекта. Теперь плоскость должна взаимодействовать со сферой и обволакивать ее при падении. Ниже в разделе Physics вы можете заметить несколько настроек, влияющих на поведение мягкого тела. Это параметры симулируемой толщины (thikness) и трения (dumpening). Для улучшения эффекта вы можете еще несколько раз подразделить плоскость или добавить модификатор "Subdivision Surface" и включить сглаживание (Smooth) формы. 400px
Файл:BlenderBasics 4rdEdition2011-139 2.jpg На панели Soft Body есть еще несколько настроек, которые могут быть применены к плоскости. Например, если плоскость вам кажется слишком тянущейся, вы можете изменить параметры Pull, Push и Dumpening на панели "Soft Body Edges". Эти параметры отвечают за упругость соединений между вершинами мягкого тела. Активируйте опцию "Stiff Quads", это придаст некоторую жесткость вашей ткани.


Еще два интересующих нас параметра это Self-Collision, предотвращающий пересечение граней ткани между собой и Field Weights, контролирующий гравитацию. Если вы хотите чтобы ветер "раздувал" вашу ткань, добавьте пустышку и активируйте для нее свойство Force Field с типом Wind (ветер) как это описывалось в Главе о Частицах.


Если вы обнаружите что изменяемые вами опции не влияют на поведение ткани или захотите "Запечь" расчеты поведения вашего Мягкого Тела, обратите внимание на настройки в панели Soft Body Cache.

Создание Эффекта Ткани

Система Мягких Тел может использоваться и для симуляции одежды, тем более что в новой версии Blender 2.6 для этого был создан специальный эффект. Мы используем ту же плоскость, что и в прошлый раз. Удалите с нее эффект Soft Body и включите эффект Cloth. Без создания групп вершин наша ткань будет падать и взаимодействовать со Сферой (сфера по прежнему имеет активированный эффект Collision). В примере я использовал опцию "Smooth" с Полки Инструментов как для Плоскости, так и для Сферы. 400px
400px Вы можете, как и раньше, для закрепления ткани использовать Группы Вершин, активировав опцию "Pinning". Теперь вам доступен выбор типа ткани, который будет симулироваться. Так же в разделе Physics вы найдете и другие настройки, подобные описанным выше.

Практическое Задание. Создание флага

Симуляция жидкости (Fluid)

Эффекту симуляции жидкости в Blender 2.6 было уделено большое внимание. Теперь вы можете создавать реалистичные эффекты жидкости, используя лишь базовые настройки.

Выделив объект и включив эффект Fluids на панели Physics, вы можете выбрать один из типов объекта, в роли которого данный объект будет участвовать в симуляции жидкости (типы приведены в порядке важности):

Файл:BlenderBasics 4rdEdition2011-141 1.jpg
  • Domain (Домен): Необходим для ограничения пространства симуляции жидкости. Все другие объекты, участвующие в симуляции должны находиться внутри Домена.
  • Fluid (Жидкость): Объект, представляющий некоторый объем жидкости.
  • Obstacle (Препятствие): Объект, с которым будет взаимодействовать жидкость.
  • Inflow (Поток): Объект, действующий как водопроводная труба, из которой будет вытекать вода. Используется вместо Fluid.
  • Outflow (Сток): Объект, действующий как отводная система (стоковая труба).
  • Particle (Частица): Позволяет жидкости вести себя, как частицам. Развитие этого типа планируется в следующих версиях Blender.
  • Control (Контроллер): Добавляет дополнительные инструменты управления жидкостью.


В этой главе мы будем говорить только об основах использования симуляции жидкости. За более подробной информацией обратитесь на сайт b3d.mezon.ru и www.blender.org.


Простой Всплеск:

В нашем первом примере будет только Домен и Fluid. В сцене, на иллюстрации ниже, присутствует Куб, увеличенный примерно в два раза и представляющий собой Домен для симуляции жидкости. Внутри Куба расположена Сфера, для которой выбран тип Fluid. Чем большей вы сделаете сферу, тем больше жидкости окажется в сцене при симуляции. Очень важно, чтобы Сфера располагалась полностью внутри Куба.


Выделите Сферу и в разделе Physics дайте ей роль "Fluid" в симуляции. Вы увидите несколько опций, включая начальную скорость (initial velocity), которая придаст некоторое движение жидкости, вместо простого падения под действием силы тяжести.

200px
200px Теперь выделите Куб и сделайте его Доменом симуляции. Помните, что домен включает в себя всю область симуляции и контролирует "запекание" расчетов. Не удивляйтесь, если куб сожмется в небольшую точку из-за предыдущей закэшированной анимации. При повторном нажатии на кнопку "Bake" все исправится само собой. В домене вы можете устанавливать качество рендеринга и длительность анимации. На панели Fluid вы можете даже определить папку для сохранения расчетов анимации, к которой сможете обратиться позже. После завершения расчетов Куб будет представлен начальным объемом жидкости "разлившимся" по его форме.


После установки всех параметров нажмите кнопку "Bake" и дождитесь окончания расчетов.

Во время процесса "Запекания" вы увидите шкалу прогресса вверху экрана. Возможно, что для правильной работы вам придется удалить файлы предыдущих расчетов из каталога /tmp, где Blender сохраняет временные файлы при выполнении различных действий (в том числе и "Запекания" симуляции жидкости). После завершения процесса нажмите Alt-"A" для просмотра получившейся анимации. Для улучшения внешнего вида получившейся жидкости сгладьте ее, нажав кнопку "Smooth" на Полке Инструментов и примените модификаторов "Subdivision Surface" к мешу жидкости. Вы также можете поэкспериментировать с параметром Time для Домена. 300px

Поток жидкости:

400px На этот раз мы создадим сцену с Препятствием (Obstacle) и входным Потоком (Inflow), вместо обычного объема жидкости (Fluid). Начните с создания новой сцены, напоминающей приведенную на иллюстрации. Куб был увеличен примерно в 3 раза и используется как Домен. Наклонная плоскость используется как Препятствие (Obstacle). Небольшая сфера сверху будет представлять собой входящей Поток жидкости (Inflow). В разделе Physics все 3 объекта были настроены в соответствии со своими ролями и учетом следующих параметров:


Сфера - Объект-Поток (Inflow):

Задайте даваметру Inflow Velocity некоторое значение для придания начальной скорости потоку. Я использовал значение -1.000 по оси Z.


Плоскость - Объект-Препятствие (Obstacle):
Поэкспериментируйте с параметром Slip Type для получения нужного эффекта. Он определяет степень скольжения жидкости по объекту. Я выбрал No Slip. Выберите ваш Куб-Домен и нажмите кнопку "Bake" для просчета анимации. Не забывайте следить за ходом процесса в правом верхнем углу окна Blender. Возможно, вам придется подождать.
300px
Создание анимации жидкости может занимать достаточно длительное время. Но практикуясь и экспериментируя с различными параметрами вы научитесь получать отличный результат.

Создание Объемного Дыма

Физика объемного дыма является нововведение в Blender 2.5 и еще требует большого количества работы над собой. Но несмотря на это, она все же заслуживает внимания в этой книге. Вы можете найти хорошие руководства по использованию и образцы видео с демонстрацией объемного дыма в интернете. И, наверняка, некоторые возможности будут расширены еще до того, как кто то прочтет эту главу. Вот что уже есть:


Объемный дым работает подобно жидкости, где вы создаете Домен (Domain) и добавляете Источник дыма (Flow). Для создания частиц дыма вам потребуется включить систему частиц (Particles) и настроить материал и текстуру.


Для начала создайте новую сцену и увеличьте куб примерно в 5 раз. Помните, что созданный дым не сможет выйти за пределы домена (в нашем случае Куба). Поэтому, сделайте куб достаточно большим. Так же, не рекомендуется изменять положение вершин куба в Режиме Редактирования. Это связанно с особенностями расчетов поведения частиц дыма. Теперь добавьте в сцену Плоскость и разместите ее в нижней части куба. Мы используем ее в качестве Источника (Flow). Проверьте, что бы плоскость полностью помещалась внутри куба! В качестве источника дыма (Flow) может выступать любой меш, но для начала мы воспользуемся именно плоскостью. 200px
BlenderBasics_4rdEdition2011-143_2.jpg Сейчас нам нужно включить Систему Частиц для Плоскости. Причиной этому особенности создания дыма. Дым создается из частиц, а не из меша. Выделите Плоскость, перейдите в Окне Свойств в раздел Particles и добавьте Систему Частиц нажатием кнопки "+". Мы хотим что бы частицы оставались на поверхности плоскости и не двигались (они нужны для испускания дыма). Для этого мы выключим Физику (на панели Physics нажмите кнопку "No"). Так же, мы не хотим видеть сами частицы, поэтому выключите отображение частиц при рендере на панели Render (кнопка "None").


Пришло время поработать над физикой дыма. У вас должна по прежнему быть выделена плоскость. В разделе Physics включите Smoke Physics для плоскости и в качестве типа выберите "Flow" (источник). Вы увидите поле с выбором Системы Частиц (Particle System). Выберите в нем систему частиц, созданную вами для плоскости. 200px


Теперь, выберите куб и включите Физику Дыма и для него. Он будет выполнять роль Домена, поэтому в разделе Physics используйте кнопку "Domain". Мы готовы увидеть результат наших действий. Для этого нажмите Alt-"A". Проигрывание анимации вероятно будет очень медленным, но вы должны увидеть процесс построения дыма в окне 3D-вида. Если вы будете делать рендер отдельного кадра, то увидите только куб и никакого дыма. Далее мы исправим это! 250px
Для получения хорошего изображения при рендере нам потребуется сделать некоторые настройки Материала и Текстуры Куба. Выберите Куб и перейдите в Окне Свойств в раздел Material. Добавьте новый материал или выберите уже имеющийся и установите для него тип Volume (мы настраиваем куб, не плоскость!). Установите параметр Плотности (Density) в значение 0.000. 250px


200px Теперь настроим текстуру для Куба. Для этого в Окне Свойств перейдем в раздел Texture. Добавим новую текстуру кнопкой "New". Изменим тип текстуры на "Vortex Data", в качестве Объекта-Домена (Domain Object) выберем сам же Куб и на панели Influence установим значение параметра Плотности (Density) в значение 1.000.


Для анимации вашей сцены с дымом потребуется выполнить "Запекание" (Bake) расчетов физического движка. Для этого убедитесь что Куб по прежнему выделен, перейдите обратно в раздел Physics и разверните панель Smoke Cache. Здесь вам нужно установить начальный и конечный кадры анимации дыма для определения длительности и название файла (File Name) в который будут сохранены расчеты. Для начала расчета анимации нажмите кнопку "Bake" и оставьте компьютер на некоторое время. После завершения процесса вы можете создать анимацию по аналогии с предыдущими главами. 200px


400px Как и в случае с другими эффектами, которые мы рассматривали, для Дыма доступно большое количество параметров с которыми вы можете поэкспериментировать. Например, настройки параметров частиц могут быть использованы для управления густотой дыма. Вы можете настроить качество дыма параметром resolution и применить к нему действие различных сил (field weights). Хотите создать эффект Огненного Шара? Попробуйте использовать связь Потомок-Родитель между сферой и огненным шаром и использовать для шара физику дыма.

Практическое Задание. Симуляция жидкости. Всплеск