7
$\begingroup$

I have two chairs, a cloth piece falling on it and then a helmet falling above the cloth on one of the chairs. Whatever the setting I'm trying I cannot get the helmet fall nicely on the chair and interact naturally with the cloth. Right now I have following:

  1. the helmet is falling down
  2. the cloth is falling down
  3. the cloth is interacting with the chairs naturally
  4. in the process of falling the helmet gets pushed by the cloth piece far away (as if it would be very hard surface).

https://youtu.be/zmyO6NA9R1U

animated

I also read that soft body physics might be a solution, but it didn't work in my case and the rendering times are getting expanded.

The cloth has settings: 5/M, 10/s, 15/b, (here I tried almost everything) rigid body is off, Collision physics is off

Helmet settings: Right body active, mass 10, all other physics are off.

Right now almost all the other settings (except cloth physics) are default.

Would be glad to get some help!


Edit : Amended the Rigid Body Collision shape to 'Mesh' and this helped with allowing the helmet to collide with the cloth but now the cloth is being forced through the chair.

animated2

$\endgroup$
14
  • $\begingroup$ Can you post an animation of the motion - this might give some clues as to what’s going on. $\endgroup$ Feb 22, 2018 at 17:24
  • $\begingroup$ Okay will try it tonight and will send a link $\endgroup$ Feb 22, 2018 at 18:56
  • $\begingroup$ @RichSedman can I upload the video on this website? this is my first question here and I don't know how to add the files to the thread. Thanks for helping $\endgroup$ Feb 22, 2018 at 20:59
  • $\begingroup$ youtu.be/zmyO6NA9R1U $\endgroup$ Feb 22, 2018 at 21:17
  • 1
    $\begingroup$ Most likely it's a problem with the collision bounds of the chair. In the Physics panel of the chair, check the Rigid Body Collistions 'Shape' - it defaults to 'Convex Hull. If it is set to that (or anything other than 'Mesh') then try changing it to 'Mesh' and see if that helps. $\endgroup$ Feb 22, 2018 at 22:10

2 Answers 2

11
$\begingroup$

For rigid body and cloth/soft body simulations there are a number of things you need to be careful of.

  1. For the Rigid Body simulation you need to ensure you select the correct 'Shape' for the Rigid Body Collisions. The default option is 'Convex Hull' which if fine for objects which are rolling over a flat surface but since it doesn't allow for any concave surfaces (such as the indentation at the seat of the chair) it is not good for smaller objects colliding with the body. Therefore, in this situation ensure you set the Shape to 'Mesh' to allow the actual mesh shape to be used for collision. This is less efficient (since the engine needs to calculate collision for all surfaces, not just an outer 'shell') but produces more accurate results. Note that you should set this for each rigid body.

rigid body collision

  1. Ensure to set sufficient 'steps' in the cloth simulation. More steps will result in more time to calculate the simulation but will produce much more convincing results - especially where objects are hitting the cloth at high speed. Using a larger number of steps should avoid problems such as the fast moving object passing through the cloth or the cloth getting forced through the other geometry.

cloth settings

  1. Ensure to carefully set the Collision Settings - it's very tempting to just add the 'Collision' and forget about what the actual settings mean and leave them set to the defaults or inappropriate settings. For interacting with cloth the key settings are obviously the Soft Body and Cloth settings and these consist of Outer and Inner thresholds. The Outer dictates how close to a surface the cloth can get before it is pushed away while the Inner controls how elements of the cloth that have been pushed into the surface are repelled back out of the surface. Note that you should generally avoid setting the Inner to more than 50% of the minimum depth of the mesh - ie, if the thinnest part of the mesh is 1 Blender Unit in width then do not set this to more than 0.5 - otherwise problems can occur where cloth that penetrates below the surface is effectively pushed through to the other side rather than being repelled. The 'Outer' should be kept fairly small to prevent gaps between the surface the the colliding cloth.

collision settings

Note that your first issue was caused by the Rigid Body 'Shape' - set this to 'Mesh' to allow the rigid bodies to react to the actual shape of the mesh (rather than a simplified convex hull).

From the second animated example, it appears that the helmet's collision 'outer' is such that it is repelling the cloth before it even gets close enough to touch it. The 'inner' collision of the chair is then presumably repelling the cloth through the surface. You should reduce the 'Outer' of both the helmet and the chair to close to '0' and adjust the 'inner' of each mesh's collision settings to a value that is not more than 50% of the thinnest part of the associated mesh. This should then produce a more stable simulation, similar to this :

animated

Blend file included


EDIT: Note that @Ralf and @James_t pointed out that the attached Blend file doesn't actually work with later versions of Blender. This is due to a change in behaviour related to the Rigid Body simulation and how/when it is evaluated with respect to other modifiers. See How to combine Hair and Rigid Body physics? and this developer report.

The rigid body is now evaluated in a different order - previously it would be after all other modifiers but now - under certain circumstances - it can be before other modifiers. By setting the Rigid Body Source to 'Base' or by changing the collision Shape to something other than 'Convex Hull' or 'Mesh', the old order of simulation is applied - otherwise the rigid body is ignored in the cloth simulation.

$\endgroup$
4
  • $\begingroup$ Wow thanks a lot. I will try to do it on Monday and will notify you about the results. $\endgroup$ Feb 24, 2018 at 21:53
  • $\begingroup$ Thanks again it worked! For even smoother result I just animated the helmet and didn't apply active rigid body to it. If you like I can post the video of the result $\endgroup$ Feb 28, 2018 at 10:02
  • $\begingroup$ @IraKonyukhova Brilliant - glad to help. Yes - I'd love to see the result. $\endgroup$ Feb 28, 2018 at 10:13
  • $\begingroup$ @RichSedman see "answer" by Ralf, below and my followup answer. I would need more input from a better expert because "Deform" and "Final" aren't working for me in 3.0.0, whereas "Base" works. Do I need to Bake Rigid Body World or some other process to get these to work? $\endgroup$
    – james_t
    Jan 9 at 21:11
0
$\begingroup$

I agree with @Ralf and found the problem. In the blend file from @Rich : he mentions setting from Convex Hull to Mesh, but his version of the file did not have this change (perhaps he uploaded the wrong version).

However, even this did not solve the problem for me! The solution (not yet making full sense) is to use either "Hull" or "Mesh", but to set the Source to "Base" instead of "Deform", and oddly "Final" didn't work... But that means that if I have a deforming (eg, softbody) object, I will get inaccurate results for the cloth simulation!

enter image description here

Note also that setting Shape to "Sphere" worked in Deform or Base Source mode. Okay uhm...

My solution:

$\endgroup$
4
  • 1
    $\begingroup$ I've just downloaded my original file and opened in Blender 2.78 and it works fine - the chair is correctly set to Mesh collision and everything works fine with the cloth and collision with both the chairs and the falling ball. I wonder if the problem is with opening on 3.0.0 and the same settings aren't being preserved. I can't load it into 3.x.x at the moment so will try it later. $\endgroup$ Jan 10 at 12:24
  • $\begingroup$ Actually, I just realised with your comment about "setting Shape to 'Sphere'" that this is a completely different problem to the original post - your problem is that the falling rigid body isn't affecting the cloth whereas the original post was that the rigid body wasn't falling into the cavity of the chair. The change in my answer was to change the collision properties of the chair, not the ball. This should be asked as a separate question rather than on this answer since it's different to the original question and also likely cross-version related. By all means link new question to this one. $\endgroup$ Jan 10 at 12:37
  • $\begingroup$ This did seem familiar and I've located a related answer that explains the change in behaviour - see blender.stackexchange.com/a/196320/29586 regarding other simulations (in that case hair but it applies to cloth too) taking notice of the rigid body simulation. Your solution of setting the Source to 'Base' is mentioned and the actual Blender developer change is described here : developer.blender.org/… $\endgroup$ Jan 11 at 13:51
  • $\begingroup$ @RichSedman -- thanks for your findings and analysis. It's unclear from Fix T77685 and "Partially Fix T77685 (Closed)" whether they are still aware of the problem with Deform and Final. I'll consider this tomorrow and perhaps and perhaps post a question in one of these issues. $\endgroup$
    – james_t
    Jan 11 at 19:51

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.