перевод с английского: Artish. Оригинал документа находится здесь.

Мягкие объекты(Softbodies)

Введение



фильм с Soft Body Автор - @ndy

К каждому объект в Блендере можно применить эффект "Мягкого тела" (В настоящее время эффект реализован только для Mesh и Lattice). Система мягкого тела заставляет вершины объекта двигаться в соответствии с законами физики мягких тел, например таких, как желе или ткань.

В демо-файлах версии 2.37 (4 MB) можно найти два примера по использованию техники мягких тел:  softbody_basics.blend и wind_soft.blend.

Существует 2 основных способа управлять эффектом мягкости:

"Цель" ("Goal" )

Под этим понятием понимается заданная фиксация группы выбранных вершин, ограничивающая для них степень эффекта. Когда Цель полностью активна (значение 1.0), анимированный объект будет вести себя также, как любой другой, без эффекта мягкого тела. Если Цель равна нулю, то объект будет подчиняться только законам физики. Устанавливая значение Цели между 0.0 и 1.0, можно смешивать в разной пропорции воздействия на объект от системы анимации и от системы мягкого тела.
Цель также может служить "памятью формы", не позволяя объекту черезмерно деформироваться и запрещая деформацию для его жестких анимированных фрагментов.
Задавая вес для группы вершин, можно можно управлять значением Цели для каждой вершины. Другими словами, этим можно задавать силы упругости, определяющие насколько далеко вершины могут удаляться от своих первоначальных позиций.



Использование весов вершин для управления SoftBody


Упругость (Springs)

Параметр "Edge springs" (упругость ребер) определяет, насколько ребра сопротивляются изменению своего размера. Например, добавив внутрь куба диагональные ребра, можно сделать его более жестким (или менее "желеобразным"). Используя упругость ребер, можно заставить объект сохранять свою форму, не ограничивая его динамики.
Упругость также можно использовать для моделирования ткани.

Текущая реализация

Эффект SoftBody в Blender 2.37 является расширением системы анимации (включая и скелетную анимацию). Поэтому легко можно достичь, например, таких эффектов, как гибкая и ползущая кожа персонажей.

Эффект мягкого тела, примененный к объекту, работает, как симуляция его поведения во времени (увидеть это можно либо запуском анимации по Alt+A либо клавишей "стрелка вправо"). Передвижение во времени назад или прыжками длиннее чем 9 кадров сбросит эффект SoftBody к исходному состоянию. Используйте воспроизведение в новом окне TimeLine для интерактивной работы с эффектом мягкого тела.

Если Вы добились приемлемой симуляции эффекта, то можно "испечь" её в систему статической анимации. "Испеченное" мягкое тело воспроизводится намного быстрее, и больше не зависит от моделирования динамики. "Выпечка" оправдана для конечного рендеринга анимации, так как симуляция не работает корректно для рендеринга с Motion Blur, или для сетевого рендеринга по частям.

Использование SoftBody для симуляции ткани, особенно с нахождением коллизий (пересечений) пока находится в стадии тестирования. Текущий код обнаружения колизий требует оптимизации, это запланировано на следующий релиз.

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

Силовые поля и отражатели

Так, как вершины мягкого тела работают как частицы, к ним можно применять опции силовых полей (Force Fields) и отражателей (Deflectors).
Следует помнить, что отражатели (коллизии) работают только с недеформированным мешем (не использующим hooks, арматуру, Lattice и пр). См.
примечания к Силовым полям и отражателям для подробной информации.

Настройки Мягкого Тела



Панель настроек Мягкого Тела


Основные настройки:

Enable Soft Body (Разрешить эффект мягкого тела)
Разрешает эффект для текущего объекта.

Friction (Трение)
Общее "трение" среды, задает демпфирование (ослабление) для всех движущихся вершин.

Mass (Масса)
Значение массы для вершин. Большая масса замедляет движение.

Grav (гравитация)
Устанавливает значение гравитации для мягкого тела (сила направлена против оси Z).

Speed (Скорость)
Этим значением можно установить внутреннюю скорость для эффекта.

Error Limit (конечная ошибка)
Предел Рунге-Кутта; определяет величину шага при симуляции. Меньшее значение дает большую точность, увеличивая время расчета.

Apply Deform First (Применить деформацию перед эффектом)
Эффект применяется после остальных деформаций, таких, как решеточная или скелетная деформация.


Опции "Цели" (Goal):

Use Goal (Использовать "Цель")
При симуляции применяется также анимация (IPO, деформация, иерархическая деформация и пр.). "Цель" стремится к конечным для этих видов анимации позициям вершин. Способ, которым SoftBody пытается достичь этой цели, задается настройками жесткости (stifness) и вязкости (damping).

Goal (Цель)
Если Группы Вершин не заданы, то значение "цели" работает по умолчанию для всех вершин. Если задана группа конкретных вершин, на кнопке вместо значения отображается имя этой группы.

G Stiff (Жесткость Цели)
Значение упругости для Цели. Низкие значения дают слабую упругость (более гибкая "привязка" к цели), высокие значения дают сильную упругость (жесткая "привязка" к цели).

G Damp (Вязкость Цели)
Значение трения для Цели. Увеличение значений притупляет эффект "цели" для мягких тел.

G Min/GMax (Минимальные/Максимальные значения Цели)
Если значения для вершин задаются при помощи рисования весов, этими параметрами можно в последующем настроить значения весов. Так, самое низкое значение веса (синее) будет установлено в GMin, а самое высокое - в GMax.


Опции рёбер (Edge):

Use Edges (Использовать рёбра)
Ребра в Меш-объекте могут работать как упругие элементы (убедиться в том, что объект является мешем, можно по наличию панели Mesh в кнопках редактирования - F9)

Stiff Quads (Жёсткие четырехугольники)
Включает в четырехугольных гранях использование их диагональных рёбер как упругих элементов. Это предотвращает полное складывание четырехугольных полигонов.

E Stiff (жесткость граней)
Степень упругости для граней (их растягиваемость). Низкие значения означают очень слабую упругость (эластичный материал), высокие значения - сильную упругость (жесткий материал).

E Damp (торможение граней)
Трение для упругих граней. Высокие значения ослабляют эффект жесткости граней.

Настройки "Выпечки"

Start, End (Начало, конец)
Устанавливает диапазон, в котором симуляция мягкго тела будет "испечена".
Interval (Диапазон)
Устанавливает число кадров, между которыми производится "выпечка" (разрешение результата "выпечки"). Промежуточные значения вычисляются как ключевые кадры, с использованием B-Сплайновой интерполяции.
Bake (Испечь)
Запускает процесс "выпечки". В зависимости от сложности, это может занять некоторое время. Нажатием ESC можно прервать процесс. После окончания процесса, кнопка "Bake" превращается во "Free Bake". Нажав её можно отменить "выпечку", чтобы изменить настри\ойки мягкого тела.

Обучение технике Soft Bodies

Ниже приведены начальные указания и видео-руководства по использованию техники SoftBody в Блендере.

Ссылки на уроки
Tuxbot, обитатель Elysiun.com, создал великолепные видео-уроки по SoftBody. Они доступны на blendertutorials.org

Все по порядку

В этом разделе мы рассмотрим создание двух основных типов мягкого тела: "желе" и "ткани". Хотя это не слишком подробный урок, освоив его вы почувствуете себя более уверенно, работая с системой эффектов мягкого тела Блендера.

"Желе"

Этот пример довольно прост, так как нам не нужно устанавливать "Цель" и создавать группы вершин.
Для этого примера нужно лишь создать план и IcoSphere с 2-мя Sub-делениями. Увеличим план, чтобы он был чуть больше сферы. Разместим Сферу так, чтобы её центр был на 4 деления сетки выше, чем план.
Сделаем Сферу гладкой, включив кнопки редактирования (F9) и нажав Set Smooth и Subsurf. Для большей гладкости можно установить значение subsurf равным 2.

Теперь, выйдем из режима редактирования и перейдем в панель объектного контекста (F7). Щелкнув на вкладке SoftBody, нажмем "Enable Soft Body." Для получения эффекта желе нужно изменить еще несколько параметров. Вначале отменим опцию "Use Goal", так как мы не собираемся использовать веса вершин. Увеличим "Grav" до 9.8 (это реальное значение гравитации). Затем увеличим "E Stiff" примерно до 0.9. Этот параметр нужно подобрать в зависимости от того, насколько жесткий или гибкий материал желе мы хотим получить. (Установив "E Stiff" на максимум, мы сделаем сферу почти твёрдой).
Теперь мы должны заставить сферу отскочить от плана. Выделим его, и перейдем во вкладку Particle Interaction. Активируем параметр "Deflection". Установки по умолчанию для отражения мягкого тела вполне пригодны.

Теперь нажмем Alt+A и пронаблюдаем за прыжком шарика из желе!

Ткань как Soft Body

Этот пример немного сложнее чем предыдущий. Создадим план и немного его увеличим. Затем дважды его поделим (SubDivide). Перейдем в кнопки редактирования (F9) и включим SubSurf, желательно уровень 2. Нажмем "Set Smooth."
Давайте добавим "прищепку" в один из углов, чтобы увидеть эффект мягкого тела. Создадим новую группу вершин, и установим её вес в 0. Выделим все вершины и нажмем "Assign". Теперь выделим угловую вершину ткани, установим "Weight" в 1.0 и снова нажмем "Assign". Это заставит угловую вершину остаться на месте во время симуляции мягкого тела.
Теперь выйдем из режима редактирования и перейдем в панель объектного контекста (F7). Нажмем "Enable Soft Body." Снова сделаем "Grav" равным 9.8. На этот раз оставим кнопку "Use Goal" активной. Нажав на небольшую кнопку меню около "Use Goal", выберем имя группы вершин для Цели (в данном случае выбор будет единственным: "Group"). Теперь нажмем Alt+A, чтобы увидеть как ткань реагирует на гравитацию. Для изменения эластичности материала, используем опцию "E Stiff", малые значения которой сделают ткань почти бесконечно растягиваемой, а высокие значения - нетянущейся.


Автор кода: Jens Ole Wund. Инеграция: Ton Roosendaal. Анонс и руководство: Jason Saunders
перевод с английского: Artish


Последнее обновление: 31 мая 2005.
Руководство разделом:
Ton Roosendaal.



Хостинг от uCoz