1
$\begingroup$

I was wondering if there is a way to pin some vertices of a cloth object to a soft body object with a sort of physical link with a fixed-length.

To be more specific, I would like to use a cloth object pinned on the "ground" to hold a flexible pole (soft-body object) in a wind force field. Here is a scene for example :

enter image description here

  • The pole is a simple string of vertices with a Skin modifier and Soft-Body physics.
  • For the cloth object, there is one vertice pinned on the ground and I used hooks pinned to the vertices of the arc part of the cloth and keyframed "Child of" constraints so hooks can follow the pole dynamics at some point in the scene.

But as you can see, the cloth is not holding the pole since Child of constraints are not really made for this purpose.

Do you have any idea on how I can create those links between the cloth and the pole ?

- EDIT : after some research, it seems that blender is not able to make cross-simulation between physics systems (where the state of each system is dependent of the state of the other ones)

$\endgroup$

1 Answer 1

1
$\begingroup$

Yes, you can do that:

enter image description here

We'll start by making an empty at the position of the pole that we want the the cloth to be controlled by, then we'll vertex parent that empty to the pole.

Next, we'll create a hook modifier for the cloth object. To be affected by a hook, a vertex needs to be assigned to the hook. The easiest way to make a hook is to select a vertex in edit mode and ctrl-h hook to new object, which creates a new empty and hooks the selected vertices to that empty.

This hook modifier needs to be above/before the cloth physics, and any hooked vertices should be assigned to the cloth pinning group. The cloth pinning group should have a stiffness of 1. The hook modifier should probably be set to no falloff (as shown). When this happens, the hooked vertices will follow the hook, and the cloth physics won't affect those hooked vertices, which will then drag the rest of the mesh with them to preserve the cloth physics.

We now have two empties. The only thing remaining is to join them. I recommend doing that with a "copy location" constraint on the hook empty, targeting the soft body's child empty. Now, when the soft body moves, it will drag its child, which will drag the hook, which will drag the cloth.

Physics works by generating forces according to a base mesh. That means that wherever you place the hook at frame 1 will generate the rest shape for the cloth physics. Because of that, you may wish to set the influence of the copy transforms constraint to 0 at frame 1, to set rest lengths, and only keyframe it up to 1 a few frames into the animation. (That's why I recommend doing this with a copy location constraint.)

$\endgroup$
2
  • $\begingroup$ Thanks for your help Nathan. I did what you explain here but I obtain the same result as when I was using Child of constraints to link the hook empties of the cloth to the flexible pole : the pole is not held in place by the cloth after bending and still fall on the ground. Maybe I did not explain well the purpose of my experiment. What I would like to achieve here is to fix the cloth object to the pole just after its bending so the pole stay up (like an arch) : the cloth is pinned on the pole and acts as a sort of guy line. $\endgroup$
    – YoannS
    Dec 27, 2021 at 9:59
  • $\begingroup$ You can create forces from cloth->SB, or from SB->cloth, but you can't create forces that go both ways without creating a dependency loop. $\endgroup$
    – Nathan
    Dec 27, 2021 at 17:57

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .