Categories
Journals

Notes to self: Soft Body dynamics

I mucked around with the soft body system in Blender today looking for a way to do procedural flesh jiggles and whatnot. I wanted to try to use the Cloth sim as a skin while getting things to move underneath it but couldn’t. I tried the Soft Body sim instead but it was only after a few annoyed hours that I realised i didn’t know how Soft Body simulation worked.

The wiki was OK, examining the tooltips seemed to work, and eventually I built up a picture of how it all works. Since I learn about stuff and forget it pretty easily, this is a series of notes to myself about what to remember when I get back into Soft Body dynamics at a later date. Sort of workflow notes…

Select Mesh object. In vertex groups add one group each for mass, goal and spring. Add “Soft Body” sim. Immediately go to the Soft Body Cache and turn Cache Step down to 1 otherwise you’ll be scratching your head for hours and thinking it’s a bug or something.

Softbody sim happens after shape keys are applied and will read shape keys for cues – twanging the corner of a box does stuff. (In fact, if you forget all this, a shapekey driven cube with a twangy vert at one corner should refresh your memory.)

General concepts:

  • Soft Body dynamics takes control points and turns them into Newtonian particles.
  • Goal: Ground state. “Goalishness” of each vertex/control point can be controlled via vertex group. Perfect pin appears to not be possible. Not goaled = will wander, goaled = will respect pre-SBS position.
  • Stiffness: How hard a vert tries to maintain ground state distance from other verts. Low stiffness = wobbly. High stiffness = rigid. Probably.
  • Dampening: Self-explanatory – rate of energy loss. Highly dampened verts don’t wobble as much for as long. Low damping encourages wobble.
  • High stiffness, high dampening = rigid. Low stiffness, high dampening = moves but settles quickly. High stiffness, low dampening = rigidly wobbly, silicone?. Low stiffness, low dampening = collapsing jelly possibly.

In top “Soft Body” panel: friction controls air viscosity; mass controls inertia or can be specified vertex by vertex using group. Speed controls simulation speed – speed < 1 = slower and flowier, speed > 1 = quicker and snappier.

  • Example of mass use: Mark Suzanne’s eartips 1.0ish in mass vertex group and her ears 0.0 (but rest of head 1.0) for goal group. Floppy ears driven by floppy eartips.
  • Highly massed objects don’t appear to listen to armature deformation like good little boys.

Mass vert group probably works best as an inverse subset of Goal group – sort of. Whatever is 1 in Goal is animated upstream and whatever’s less than 1 is progressively being handled by the sim.

Soft Body Cache is self-explanatory.

Soft Body Goal controls how attached the verts or other control points in the softbody sim are to their pre-sim positions. Min/Max scale vertex group, Stiffness.. does something on top of the vertex group – stiffness of any vert = vg value times stiffness via scaling? Maybe. Damping controls the loss of energy as usual.

Soft Body Edges is the most useful panel.

  • If something’s bending out of shape or collapsing into a souffle, increase Bending and turn on Stiff Quads to doubly reinforce it.
  • Bending is a deformation resistance control that dampens movement across adjacent vertices. Good to discourage some self-intersection.
  • Stiff Quads encourages rigidity across both edges and quad faces. Not sure what shear does.. ?
  • Damp parameter again controls energy loss. Dampening can go crazy high: 50 is mentioned in the wiki.
  • Pull and Push control the stiffness of an edge when it is respectively stretched or compressed beyond its ground state. High push/pull values start to lag the simulation something harsh.
  • Plastic controls whether the deformation is permanent or not – weirdly it’s an int even though it’s a percentage value. Probably not much use for character animation – a pure sim feature.
  • Length is fraught with annoyance and chews CPU for no reason. Leave it alone.
  • Face collision box chews CPU but prevents faces going through one another. Edge does the same.

Unsure what spring vertex group controls: says spring strength values in the tooltip. Spring is explained elsewhere as a force trying to keep control points at a distance but how would that value derive from verts? Averaged between normalised vertex group values? Possibly.

Soft Body Self Collision will melt CPU for not much reward. Also only works when Soft Body Edges is running.

Soft Body Solver takes care of itself mostly. Solver Min Step can be turned up for finer granularity in case of highly energetic sim that needs lots of calculation.

Soft Body Field Weights – wiki says only Spherical, Wind and Vortex forcefields actually affect soft body sim. Might be out of date. Dynamics system is still bucketloads of fun for not much effort, just a lot of waiting for stuff to calculate.

Unsolved problems/issues:

  • Jiggle always seems a bit too crazy. Hard to get a fleshy response. Maybe try running sim at slower speed with heightened dampening for fun and profit.
  • SB respects collisions but not rigid body – different simulation architectures are not properly linked at this point. Long-term goal to fix says BF.
  • How does vert stiffness differ from edge stiffness? Unknown.

By quollism

A creator of quollity stuff.

Leave a Reply