How do we add cloth or soft body physics to characters entire body?

I want to animate a balloon filled with water flying around as if he has the abillity to fly where he wants.

I was hoping to add a cloth sim to animate the secondary action, but it doesn’t work.


Eventually I may add bones to have the balloon sprout legs and walk as well, but want to get the flying working first.

“Character’s whole body” is probably not a good target for physics. But “water balloon” is different than that, and is.

Give it a pinning vertex group (for soft body, goal) and assign verts at, say, 0.5 strength. The physics will try to acquire the pin/goal position at half strength, so if you transform or deform the mesh, the verts will tend toward the desired position.

Thanks for the reply! How do I assign the verts and only .5 strength?

I pinned a vertex group to a cloth sim, and I was able to animate it. Thanks! But, the pinned vertex group is rock solid and kills the illusion of the balloon moving on it’s own.

Is there a way to have the whole balloon surface flow freely while still animating it’s general location, rotation, and scale?

Enter edit, create a new vertex group on properties/object data/vertex groups, enter 0.5 in the slider at the bottom of the list of VGs, select all verts, hit the assign button at the bottom of list of VGs.

The less pinning/goal you use-- generally speaking, the lower the weights in the pinning/goal VG-- the more freely the physics object will react to physics. But of course, the more it reacts to physics, the less control you have over it via direct animation.

IIRC pinning, for cloth, can only be modulated by vertex group assignment (although you can use vertex group modifiers to modulate it dynamically), while soft body physics has a few more controls in the physics section.

One thing that I sometimes do, that you might find useful, is to use non-manifold meshes for my cloth/soft body physics, with extra loose edges leading out to fully pinned verts-- “sewing” lines for cloth, but for soft body, it’s the same principle. Then, using an armature or other deforming modifier on only these pinned anchor verts, I can exert control more indirectly than via direct transformation. This will screw up your normals, so you’d need to restore them with a modifier, (or custom normals or normal mapping, maybe) or make the physics mesh non-rendering and use it only as a surface or mesh deform for a different, rendering mesh.

Quick demo file: physdemo.blend (602.4 KB)

1 Like

Thank you for taking the time to create that file.
I can see some cool uses for this technique, but it deforms the shape too much where the vertex group is.

Maybe what I want to do can’t be done with the current version?

I guess I thought if a character could be animated and that would deform cloth sims that there would be a way to animate the cloth the way I’m imagining. But I guess the cloth on a character is still limited to the shape of the body. So that is not really what I’m trying to do.

It may be something I’ll have to put in as a feature request.

You just need to play with your paramters. You can’t have total control over a mesh at the same time that you let physics control it-- to get one, you give up the other. Other than that, you just need to spend some time tuning your physics. Settings, vertex groups, and topology. They’re not magic, they’re just work and experience.

Here’s a video with an example of the kind of thing I’m trying to do. It is possible, though I guess it may not be possible in blender.

The idea of having the ability to move the entire object in a keyframable way but then have physics act on the surface of the object rather than its location is certainly something that could be programmed in as an option to the physics, if it’s not already available.

Just skipped around your video, but if you’re looking for something less water balloon, more elephant ears, here’s how I generally do “jiggle” physics:

jiggle.blend (1.6 MB)

I use a soft body mesh deformer to transfer physics to my rendering mesh. In order to act properly (no double dipping on deforms) I use a dynamic bind and bone parent the mesh deformer to an appropriate bone. To contain the area that gets deformed, my mesh deformer contains two shells: an interior deformer, and an exterior anchor, both with normals pointing outwards, so that the deformation is interpolated from verts in the inner shell, to nothing as verts are close to (or outside of) the outer shell. I use a goal vertex group, to which I assign everything that shouldn’t move (for example, the outer shell), and which I use to quickly control the rigidity of the simulation (my inner shell is weighted to goal at 0.75 in that example.) I use interior edges to create additional forces, for example, to preserve thickness. You can see in my soft body settings, they’re pretty default, except I have a goal group with default goal of 1.0, I’ve enabled stiff quads, and set up a little bit of bending.

Thank you for that explanation.
A large portion of the words you used are not ones I’m familiar with.
So I’ll be looking up all of them to see if I can figure it out.

I don’t want to bug you to get into too much detail, but I’ve definitely never heard of dynamic bind. What part of blender is that in?

It’s a setting on the mesh deform modifier.