[SOLVED] How to combine Cloth and Rigid Body Simulation?

Hello friends,

I made this model of a gasmask and want to simulate it falling on the floor. The leather should obviously be distorted like cloth while the metal parts behave like rigid bodies. I tried using cloth, rigid body and soft body simulations but couldn’t figure out how to properly set the sims up to get the result I want.

The parts are all separate meshes joined into one object. Is there a way to apply a cloth simulation to the leather, while applying a rigid body simulation to the metal parts and keep everything connected at the right locations?

Just an idea:
Hook vertices at cloth edges to solid parts, and make them ‘goal’.

So for everyone struggling with a similar problem, I solved it and here’s my solution:

  1. Set up the cloth sim on the desired mesh.
  2. Create a vertex group for the areas that are attached to the solid parts and use that as a pinning group in the cloth sim.
  3. Create an armature with a bone for every solid part.
  4. Parent the mesh with the cloth sim to the armature with automatic weights.
  5. Make sure the bone of every solid part has a weight of 1 influence to the neighboring vertices of the cloth mesh (same as the pinning group).
  6. Make sure the vertices of the pinning group are only affected by the bone that controls the attached solid part. For example: Remove all influence of the left eye socket bone from the vertices of the cloth mesh around the right eye socket.
  7. Move the armature modifier BEFORE the cloth sim.
  8. Set up rigid body simulations for the solid parts.
  9. In pose mode, setup “child of” bone constraints to parent the bones to the right solid parts.
  10. Start simulation.

It might cause some stretching depending on the gravity strength on cloth and rigid sims but for this gave me the best results. A little issue I couldn’t fix is that the cloth doesn’t affect the rigid bodies so they just fall through. After some research this seems to just be not possible at the moment. There are some workaround with collision and soft bodies, but I didn’t want to kill my computer :smiley: For me the best way of fixing this was just shifting around vertices of the cloth mesh with proportional editing (after applying the armature and cloth).

If you want to read more about that, here’s a good source.

5 Likes

That are my results with that technique (after some tweaking with proportional editing).

6 Likes

I just wanted to add that to get the interaction between the rigid body and the cloth you should add a few passages:

  1. Add “collision” to the rigid bodies.
  2. Let the animation go in the viewport, you will see weird cloth movements as the first position of the rigid body is “baked” creating an invisible collider.
  3. When the animation ends select the rigid bodies and bake the action ( remember to limit the frames to the needed, 250 might be too much), i added visual keying.
  4. Now let the animation go again, if the cloth didn’t interfere too much on the first simulation the result will be pretty accurate.