7
$\begingroup$

I simply want to make a pinned cloth catch a falling rigid body so as to slow its fall until it comes to a halt.

At the moment, the ball falls and the cloth interacts with it, but the ball will pass straight through the cloth without slowing it (even though the cloth reacts to the ball).

What setting do I need to apply to make this work, please?

$\endgroup$
1
  • $\begingroup$ I just added another (last) edit, to update the result of my efforts on this matter, even if I failed... $\endgroup$ – m.ardito Feb 21 '17 at 11:10
13
$\begingroup$

Here is an example, based on what you said, if I got it right:

  1. subdivide a bit a cube, rise it on Z, set rigid body "active", a bit of bounciness, "mesh" collision shape
  2. set a ground plane, set a group with the 4 corner vertices, set plane to cloth, with pin to the above 4 vertices group, set also rigid body "passive", with a bit of bounciness, set collision shape to "mesh"

it should behave like this:

enter image description here

here is the example file

Hth.

edit

As for comments, I noticed you asked something slightly more natural. Rigid bodies made the cloth stop the falling cube, but it seemed as their interaction was poor.

Although you didn't post any image, animation or example file, I hope now to understand what you wish, and have done another setup, but it does not use rigid bodies, it uses soft bodies:

Here is the result:

enter image description here

I've done it like this:

Plane has

  1. cloth enabled, pinned to the 4 corner vertices group
  2. collision enabled (default settings)
  3. soft body enabled with "default goal strength" .98

Falling cube has also soft body enabled, with

  • soft body goal > disabled
  • soft body edges > stiff quads, shear 1
  • soft body edges > springs pull 0.99

And, here is another example file

edit 2:

since in comments you (finally!) unveiled your ultimate desire:

"I specifically wanted to achieve the effect of a (soccer) football being caught by a goal net."

I tried similar setups and... found that's is really hard, imho. I had some partial (weird) results using mostly softbodies instead of cloth, and you see them below, but although I'm not satisfied (all of them are really acting weirdly) I show them here below for completeness's sake. To partially justify my failures, I found this on this manual page: Deflection for softbody objects is difficult, they often penetrate the colliding objects.

Below you see I used a "force" simulation (with a abrief strong impulse behind the ball) to "kick" the ball into the net, this also could help or inspire you. Last, I would create a new question more specific, like "how can I realistically simulate a soccer ball caught in a goal net?"...

So, here are some results I got until now: I can post also .blend files if you need to experiment: it was fun, in the end, but I wish I found a very good end compelte solution...

enter image description here

enter image description here

enter image description here

late edit

here is the .blend file relative to the last example

$\endgroup$
9
  • 2
    $\begingroup$ Quoting OP: "so as to slow its fall until it comes to a halt" With the technique you are showing here, the cube's impact on the "cloth" is not affecting the cloth at all. It's as if the cloth has turned to stone an instant before the impact. The cube bounces, but does not slow as if caught by a net or cloth, which is what OP seems to be seeking. $\endgroup$ – Mentalist Feb 17 '17 at 2:18
  • $\begingroup$ @Mentalist thanks, true. I just added another way (although it needs soft bodies, not rigid bodies), I hope this fits better. $\endgroup$ – m.ardito Feb 17 '17 at 8:43
  • $\begingroup$ Updated answer looking good! $\endgroup$ – Mentalist Feb 17 '17 at 10:08
  • $\begingroup$ Thank you for taking the time to post an answer. I specifically wanted to achieve the effect of a (soccer) football being caught by a goal net. The net would be cloth and the ball would be a rigid body travelling at speed. Your edit to the original post almost answers the question, but I can't see a way of achieving a fully simulated result without having to manually animate the ball. $\endgroup$ – Ben Hayward Feb 17 '17 at 16:28
  • $\begingroup$ ah ok, but a soccer ball doesn't really "fall" into a net... it "travels" more or less horizontally and then collides with the net which slows the ball until it falls down on the ground... I'll think of something, and if it works, I'll update the answer. But if you have some setup, even not working, an image of it could help to replicate it as closely as possible... but if you don't wish to animate the ball, how is the ball going to score a goal in that net? $\endgroup$ – m.ardito Feb 17 '17 at 17:13
1
$\begingroup$

Here is one option that does not require the soft body modifier.

  • Make a cloth the "usual" way by making a plane, sub-dividing, and adding the cloth modifier. Critically, also add the collision modifier. Then, pin the four corners of the cloth.

  • Make a bunch of cubes above. Add the cloth modifier with default arguments. Update: also add the collision modifier.

Then, surprisingly, that's all that seems necessary to get interesting results (though there are some issues as I'll point out later).

In the below gif, I show some experiments where the the three blocks to the left have only the cloth modifier, the three blocks to the middle do not have the cloth modifier (instead they are either rigid body only or rigid body with collisions) and the three blocks to the right have cloth and collisions.

The results show that the six blocks with cloth seem to be behaving appropriately.

enter image description here

I am attaching the blend file I used to make the animation above. I used 2.82a.

Now, a few caveats that I found:

  • You may run into problems if you let the blocks be closer to each other, in that the blocks will not properly collide (though they do collide with the underlying cloth).

  • Strangely, reducing the size of the cloth will sometimes result in weird behavior on the blocks where they collapse. They are not penetrating the cloth, they literally collapse. Perhaps it's a surface normal issue arising after the point of collisions, since the blocks that are collapsing are closer to the corners. See the gif below. The only difference is scaling the size of the cloth to be smaller. Since this is 2.82a, maybe adjusting the pressure of the cloth (a new feature in this version) may help.

enter image description here

Update #1: to avoid the blocks colliding with each other, you can use the collision modifier, so that should probably be selected in addition to the cloth modifier. See this gif, where I put the blocks closer together to see the effect better:

enter image description here

Update #2: ah, unfortunately that doesn't seem to work reliably. See this GIF where I put the blocks together near the corner. The blocks that don't collapse will intersect each other despite how the blocks all have collisions on them (in addition to the cloth modifier). The quality steps has been increased from 2 to 5 for each of the 9 blocks.

enter image description here

I'm attaching the blend file for the above video in case anyone wants to take a further look.

Update 3: inspired by this answer, you can join the 9 blocks together into one object. Then, turn on self-collisions, and increase the cloth quality steps to 10. I get this gif now:

enter image description here

It's still pretty bad, but better than earlier, and the self-collisions at least seem to be working for the blocks.

$\endgroup$
3
  • $\begingroup$ What about catching a torus on a string (cloth, softbody) - blender.stackexchange.com/questions/212181/… $\endgroup$ – urema Feb 19 at 12:29
  • $\begingroup$ Maybe that would work. I'm curious to see what you find. $\endgroup$ – ComputerScientist Feb 19 at 13:57
  • $\begingroup$ Nah I meant like how would that work... how can this be achieved also $\endgroup$ – urema Feb 19 at 14:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.