Мягкое тело в отличии от жёсткого мы можем деформировать. В то время как Rigid Body представляет собой жёсткий полигональный каркас, который реагирует как единое целое на создаваемое взаимодействие, Soft Body в свою очередь состоит из различных и маленьких точек (object points), которые являются взаимно связанными на основе используемых пружин (springs). Если к Soft Body теперь будет приложено определённое усилие, в этом случае оно на основе локального участка угла будет передано для других точек посредством использования для этого усилия пружин (springs). Soft body таким образом, будет реагировать на этот процесс каждой актуальной точкой и вся конструкция на основе этого может оставаться стабильной. Мягкие тела, как правило используются для реализации тел деформации, то есть для объектов, форма которых должна изменяться. Например, мячи или материалы (обратите при этом ваше внимание на улучшенную составляющую Cloth), тонкие полосы металлов и так далее.
В принципе использование сплайнов как Soft Body, также является возможным, но для более простых вещей. Они не функционируют оптимальным образом с коннекторами (Connector) и поэтому могут использоваться, к примеру, в качестве троса или каната только ограничено. Но если вы намерены реализовать падение сплайна с включенной для него функцией взаимодействия таким образом, чтобы он изменил при этом свою форму, в данном случае мы можем вполне использовать эту функцию.
Сплайны функционируют оптимальным образом если:
При использовании примитива сферы обратите внимание на то, что Тип (Type) используемого примитива = Icosahedron функционирует оптимальным образом. Галочка Render Perfect в данном случае должна быть отключена.При использовании примитива сферы обратите внимание на то, что Тип (Type) используемого примитива = Icosahedron функционирует оптимальным образом. Галочка Render Perfect в данном случае должна быть отключена.
Soft Body [мягкое тело]
Здесь вы определяете:
Off: Объект не является мягким телом, а представляет собой твёрдое тело.
Made of Polygons/Lines: Объект является мягким телом в классическом смысле этого слова.
Made of Clones: На основе этого режима массивы клонов (к примеру созданные на основе объекта Cloner) будут связаны между собой по аналогии с Soft Body, при использовании для этого соответствующих объектов Springs. Для этого в объекте Cloner установка Individual Elements должна быть установлена на режим Top Level.
Rest State [положение покоя]
Положение покоя (Rest State) обычно представляет собой конструкцию пружин (Springs), определяющую их состояние для кадра анимации = 0 .
В этом поле возможно использовать последующие положения покоя (копии Soft Body в менеджере объектов; при этом необходимо аналогичное число точек). Практически это означает, что Soft Body могут принимать различные формы в определённой последовательности.
Объект (позиция, направление, видимость которого не имеют значения), который расположен в этом поле, может быть деформирован при использовании для этого определённого деформатора. Это состояние можно передавать впоследствии для Soft Body, которое с определённой степенью амортизации будет перемещено в это новое состояние. Можно назвать этот процесс динамическим морфингом (Dynamic Morph).
Скорость этого перемещения в новое состояние зависит от установленного значения жёсткости – Stiffness для пружин – Springs. Если вы преимущественно назначаете мягкие пружины, в этом случае Soft Body примет свою новую форму более плавно и медленно. При использовании жёстких пружин это изменение происходит более интенсивно и быстро.
На основе этого параметра мы можем создавать замечательные эффекты!
Mass Map [карта массы]
Обычно общая масса Soft Body распределяется на все точки объекта равномерно. Если такое поведение необходимо изменить, то на основе тега Point Selection (при этом действительно правило: точки без выделения имеют массу – Mass = 0) или Vertex карт (Set Vertex Weight) вы можете создавать неравномерное направленное воздействие.
Обратите внимание на то, что точки объекта с массой – Mass = 0 являются жёстко фиксированными (изменять поведение Soft Body клонов в Cloner вы можете при использовании функции MoGraph Selection ).
Различное распределение массы приводит к соответствующему поведению пружин, а также их центров тяжести.
Use Accurate Solver
Если включено – Cinema4d использует более стабильный, но при этом и более продолжительный по времени просчёта алгоритм. Вы можете попробовать отключить эту галочку. Если ваша симуляция при этом остаётся стабильной и аккуратной, то вам в данном случае просто повезло. Вы можете попробовать повысить значение для параметра Steps per Frame, если в вашей сцене отсутствует достаточный уровень стабильности.
Включенная галочка Use Accurate Solver приводит к более интенсивному снижению симуляции и кроме этого, Soft Body значительно быстрее займёт позицию положения покоя (Rest State).
Springs [пружины]
Для создания из простого объекта Soft Body, все точки объекта будут рассмотрены как маленькие массы, которые связаны между собой на основе использования трёх различных типов пружин – Springs (так же именуемые как “классические типы пружин“). Каждый тип пружины может регулироваться по отдельности при использовании для этого тега Point Selection tag или Vertex на уровне точек (Point level).
Обычно на кадре = 0 все пружины [Springs] условно считаются в положении покоя [Rest state]. Именно в этом состоянии Soft Body, все Springs производят усилие = 0 (естественно только в том случае, если значение параметра Rest Length установлено на 100%). При просчёте симуляции, гравитация производит соответствующее воздействие на точки массы, что влечёт за собой деформацию Springs и созданию определенного усилия.
Для объяснения различных типов пружин ниже продемонстрирован пример Soft Body, которое является жёстко закреплённым слева при использовании Connectors. Как вы видите на трёх изображениях – происходит падение мягкого тела на поперечную балку. Данный эффект можно получить при воздействии всех трёх видов пружин (при высоком уровне сабдивижна полигонов объекта, необходимо значительно усилить интенсивность Springs для получения аналогичного результата).
Structural [0..+∞]
Map
При этом типе пружин для каждой точки объекта имеется собственная пружина, которая соединяет эту точку с соседней вдоль линии полигона. Соответствующий параметр – Structural определяет жёсткость [stiffness] пружины. Чем выше значение жёсткости, тем меньше будет её подвижность. Оптимальным образом можно это увидеть, если Structural = 0 :
Springs с типом Structure прежде всего обеспечивают сохранение внешнего вида мягким телом. На изображении в правой его части вы видите деформацию объекта, так как Springs определяющие структуру [Structural] просто отсутствуют. При этом полигоны объекта могут изменять свою форму практически в любом направлении.
Springs: Damping [0..+∞%]
Map
На основе параметра Damping [затухание] вы определяете снижение энергии пружин структуры [Structure Spring] при их деформации. Чем выше это значение, тем быстрее происходит снижение деформации пружины.
При наличии выделения (Point Selection tag или Vertex ) мы можем производить регулировку этого процесса на уровне точек.
Для имеющегося выделения точек действительным является следующее правило:
и для карты вершин [Vertex maps] в зависимости от индивидуально нанесённого значения:
Springs: Elastic Limit [0..+∞%]
Map
По аналогии с отдельными пружинами происходит пластическая деформация и для пружин структуры (см так же Elastic Stretch Limit ) после достижения ими определённого растяжения. Эта граница растяжения устанавливается на основе параметра Elastic Limit [предел эластичности] по отношению к значению длины покоя. Значение Elastic Limit = 0 отключает пластическую деформацию.
Shear [0..+∞]
Map
Shear – Поперечная сила. Этот вид пружины для 4-х сторонних/угольных полигонов, производит соединение точек расположенных напротив друг друга и приводит к увеличению жёсткости, исключая при этом возможность складывания полигонов как простого листа бумаги. Соответствующий параметр [Shear] определяет жёсткость пружины. Чем выше значение жёсткости, тем меньше будет её подвижность.
Оптимальным образом можно это увидеть, если пружины [Springs] с типом Shear являются отключенными (Shear = 0):
Обратите внимание на деформацию полигонов показанную справа. Springs с отключенным Shear не могут предотвращать параллельное смещение точек.
Shear: Damping [0..+∞%]
Map
На основе параметра Damping вы определяете для пружин Shear снижение их интенсивности. Чем выше это значение, тем быстрее происходит снижение колебания пружины.
Map функционал описан в этом разделе.
Flexion [0..+∞]
Map
Strings Flexion [пружины изгиба] в отличии от других типов пружин не являются пружинами с линейной формой. Они представляют собой торсионную пружину [вращения], которая расположена на каждой точке объекта с целью сохранения граничащих линий поверхности в зависимости от установленной жёсткости. Кроме этого процесс изгиба можно регулировать абсолютно независимо от поведения объекта при процессе растяжения (в ранних версиях динамики до R 11.5 ситуация выглядела иначе. Для них использовались пружины линейного типа, которые постоянно оказывали воздействие при деформации длины для объекта). Соответствующие параметры позволяют назначить жёсткость [stiffness] пружины параметром Flexion. Чем выше это значение, тем ниже будет эластичность пружины и выше её жёсткость.
Мы можем увидеть поведение пружин изгиба, когда они находятся в отключенном состоянии (Flexion = 0):
Как вы видите, не исключается взаимный изгиб полигонов, если пружины изгиба не производят сохранение угла с граничащими полигонами. При использовании соответственной карты [поле Map] вы можете производить назначение участков, на которых Soft Body будет иметь складки на поверхности геометрии.
Flexion: Damping [0..+∞%]
Map
На основе параметра Damping [затухание] у Flexion вы определяете снижение усилия, создаваемого на основе пружины. Чем выше это значение, тем быстрее происходит снижение колебания пружины.
На основе параметра Map и тегов (Point Selection tag или Vertex maps) вы можете контролировать этот процесс на уровне точек.
Flexion: Elastic Limit [0..180°]
Map
По аналогии с отдельным обьектом симуляций Springs у обьектов Soft Body происходит пластическая деформация и для пружин изгиба (см. так же Elastic Stretch Limit ) после достижения ими определённого растяжения. Эта граница растяжения устанавливается на основе параметра Elastic Limit [предел эластичности] по отношению к значению длины покоях [Rest Length]. Значение Elastic Limit = 0 отключает пластическую деформацию. В зависимости от сцены необходимо регулировать параметр Elastic Limit для Springs Flexion, чтобы сохранить пластическую деформацию Soft Body.
Rest Length [1..+∞%]
Map
Карта вертексов/вершин (чем краснее оттенок цвета, тем меньше значение. То есть тем меньше будет длина покоя для пружины, назначенная на основе параметра Rest Length ).
В состоянии покоя [Rest state] Soft Body имеет замоделенную и неизменённую внешнюю форму. Все пружины расположенные между точками этого объекта имеют их положение покоя (если для параметра Rest Length = 100). При начале просчёта симуляции, на точки объекта происходит воздействие усилия гравитации, что в свою очередь приводит к их взаимодействию. На основе этого точки объекта смещаются по отношению к соседним точкам, что приводит к созданию усилия на основе используемого типа (типов) пружин (чем интенсивнее происходит деформация пружины по отношению к её состоянию покоя, тем больше усилия использует она для возможности возвращения в первоначальное положение [rest state]).
На основе параметра Rest Length можно назначить отклонение до 100%. Если значения ниже чем 100%, будет происходить сокращение для соответствующих пружин, а при высоких значениях (выше 100%) мы будем наблюдать противоположный процесс — растяжение.
Tear-out Length [1..+∞%]
Map
Если для параметра Soft Body вы поставили режим Made of Clones, в этом случае дополнительно будут показаны эти два параметра. Параметр Длина разрыва определяет процентуальное значение, при котором происходит разрыв пружины.
Параметр Map предназначен исключительно для объекта Cloner с назначенным Mode = Object. Значения карты в данном случае будут относиться к точкам объекта, на которых производится размещение клонов.
Fix Rotation [0..+∞]
Map
Если для параметра Soft Body вы установили активным режим Made of Clones, в этом случае на основе параметра Fix rotation вы можете определить поведение клонов по отношению к их вращению. Низкие значения допускают создание вращения, в то время как высокие значения соответствуют жёстким пружинам вращения.
Fix Rotation: Damping [0..+∞%]
Map
На основе параметра Damping [затухание] у Fix Rotation вы определяете процесс потери кинетической энергии для пружин. Чем выше значение этого параметра, тем интенсивнее происходит возврат пружины в начальное состояние и потеря энергии.
Shape Conservation [сохранение формы]
Shape Conservation сохраняет общую форму для объекта Soft Body в зависимости от значения параметра Stiffness [жёсткость] (за исключением незначительных деформаций при коллизиях).
Функция сохранения формы создаёт копию оригинала для объекта в недеформированном виде и пытается произвести сохранении этой формы в зависимости от значения параметра Stiffness [жёсткость]. Классический вариант с изложенными выше типами пружин склоняется к направлению потери своего первоначального состояния и общей формы, так как каждая точка объекта при использовании пружин «видит» только своего непосредственного соседа. Параметр Stiffness[жёсткость] можно драмматический задрать до небес, но в таком случае создаваемая симуляция со временем начнем просто терять свою стабильность. Этот нюанс мы можем исправить повышением числа сабстепов, увеличив параметр Steps per Frame, но при увеличении параметра Steps per Frame будет соответственно увеличиваться время просчёта симуляции.
Shape Conservation [сохранение формы] позволяет производить свой быстрый и стабильный просчёт. Если ситуация требует сохранения первоначальной формы (или только отдельные участки сохранять стабильными на основе используемых карт [Map]), в этом случае эти установки рекомендуется использовать. Они функционируют максимальным образом, если их использовать одновременно со всеми тремя типами пружин (их значения не равны 0, но могут быть снижены до минимального значения).
В меньшей степени сохранение формы подходит как единое целое для объектов с минимальным или практически отсутствующим у них сопротивлением изгибу, к примеру, различные материалы текстильного характера.
Shape Conservation: Stiffness [0..+∞]
Map
Шрек под солью разьебался об асфальт.
На основе параметра Stiffness [жёсткость] вы устанавливаете отклонение точек Soft Body от внутренней формы оригинала. Это усилие пружины и чем оно ниже, тем пластичнее будут пружины и тем выше будет уровень деформации при взаимодействии объекта с поверхностью. При высоком значении параметра Stiffness [жёсткость] этот процесс имеет абсолютно противоположный результат.
Оптимальным образом можно использовать пружинящее свойство жёсткости (начиная с значения Stiffness = 0), к примеру, для реализации эффекта отскока объектов от поверхности мягкого тела. После процесса деформации мягкое тело очень быстро восстанавливает свое первоначальное состояние, а также свою форму.
На основе этого можно устанавливать жёсткими только отдельные участки мягкого тела, по аналогии с последующим примером. Как видите, здесь замоделена покрышка с ободом колеса для самолёта. Покрышка колеса, по дефу, должна изменять свою форму, если она расположена на поверхности и не имеет достаточного давления внутри камеры. С этой целью для точек покрышки было произведено назначение значений в непосредственной близости от обода колеса (на правом изображении по периметру покрышки вы видите жёлтую полосу). На этом примере мы видим максимально возможное и ярко выраженное сохранение формы. Мягкое тело покрышки при этом не деформируется в непосредственной близости от обода, а также при этом не происходит пересечение геометрии этих объектов (при этом обод колеса не является объектом мягкого тела).
Стандартные значения для трёх типов пружин. Справа с дополнительно назначенным значением для параметра Stiffness и используемой вертекс картой [поле Map]
На заметку:
Если вы намерены создать жёсткость для нескольких участков независимо между собой, в этом случае у вас возникли бы проблемы на основе изложенной выше методики, так как при этом исключается их взаимное движение. Альтернативой для этого был бы отдельный объект Spring, со значением параметра Strength[интенсивность] = 0 и параметром Attachment A с назначенным режимом Выделение точек. В таком случае получается что вы используете участок сжатия пружины с целью сохранения формы для Soft Body.
Volume [0..100%]
Volume – объем. Если три классических типа пружин не имеют достаточного эффекта и при этом необходим просчёт Shape Conservation [сохранения формы], в данном случае не исключается «пульсация/раздувание» (изменение объёма) объекта. Увеличение параметра Volume поможет избавится от данного эффекта.
Volume: Damping [0..+∞%]
Map
Здесь вы можете установить снижение воздействия пружин (от параметра Stiffness[жёсткость]). Чем выше это значение, тем быстрее происходит данный процесс. При использование поля параметра Map для тегов (Point Selection tag или Vertex maps) вы можете контролировать этот процесс на уровне точек.
Volume: Elastic Limit [0..+∞m]
Map
По аналогии с отдельным обьектом Spring – происходит пластическая деформация пружин, которые используются для сохранения формы, начиная с определённой длины растяжения. Эта длина определяется на основе параметра Elastic Limit [предел эластичности] по отношению к неизменённой Rest Length [длине покоя]. Elastic Limit = 0 производит отключение пластической деформации.
При использовании этой функции можно реализовать эффект остаточной деформации.
Pressure [давление]
Показанный слева куб будет надут, на основе чего получается форма расположенная на изображении по центру. Справа объект дополнительно имеет тег Point Selection [выделение точек] для параметра Stiffness [жёсткость]
Эти три параметра работают только если объект имеет закрытую форму. Объект будет раздут на основе использования прилагаемого усилия, имеющего направление по аналогии с нормалями поверхности. Это позволяет нам создавать, к примеру объекты на основе других объектов имеющих складки или впадины.
Pressure [-∞..+∞]
Параметр Pressure [давление] как и в реальности является определённым усилием или силой, которая воздействует на каждую поверхность и приводит к раздуванию объекта. Положительные значения приводят к увеличению и отрицательные к снижению объёма (вакуума) объекта. Обратите внимание на параметр Volume Conservation [Сохранение объёма], который в зависимости от давления может производить соответствующее воздействие на объект.
Volume Conservation [0..+∞]
При сжатии Soft Body объём объекта при высоком значении Volume Conservation [сохранении объёма] остаётся одинаковым, выпучиываясь наружу.
Volume Conservation [Сохранение объёма] пытается на основе сил, произвести сохранение “рестового/первоначального/досимуляционного/rest volume” объёма покоя на поверхности объекта. Если текущий объём является большим по сравнению с объёмом покоя [Rest volume] – создаваемое усилие будет направлено во внутреннем направлении. При обратном соотношении усилие направлено во внешнем направлении.
Величина этой силы определяется на основе параметра Volume Conservation.
Чем выше это значение, тем интенсивнее деформация содержащегося в объекте корпуса. Если вы производите сжатие мягкого тела, оно пытается при этом сохранить этот объём и произвести аналогичное расширение на другом участке.
Без сохранения объёма не исключается возникновение выходящих из под контроля различных видов деформации. Справа мы видим актуальное выделение точек и деформацию объекта на основе параметра Stiffness
Volume Conservation : Damping [0..+∞%]
На основе этого параметра вы можете снижать уровень деформации объектов, получающихся на основе эффектов давления. Чем выше это значение, тем быстрее происходит процесс снижения колебания.