Obi Official Forum
Help Can't get surface collisions to work - Printable Version

+- Obi Official Forum (https://obi.virtualmethodstudio.com/forum)
+-- Forum: Obi Users Category (https://obi.virtualmethodstudio.com/forum/forum-1.html)
+--- Forum: Obi Rope (https://obi.virtualmethodstudio.com/forum/forum-4.html)
+--- Thread: Help Can't get surface collisions to work (/thread-3735.html)



Can't get surface collisions to work - natko1412 - 19-01-2023

Hi,

I have a rather long rope with distance between particles set to around 0.8m

I have some box colliders with ObiCollider component attached to them and enabled Surface-based collision in ObiRope component. In the solver I have Collision constraints set to 20 iterations, and enabled particle collision and friction constraints as well. I even cranked the surface collision iterations up to max 32, and tolerance is set to 0.0005.
Still, I cannot get the rope to collide with the box colliders, it just passes through them like through air.
These colliders have a Rigidbody on their parent, and it has Kinematic for particles enabled because I just want to have collisions without adding forces to the rigidbody.

edit: Obi rope particles are set to category 0 , and to collide with everything.. Same setup for box colliders as well

Can you help me, maybe I forgot some settings ?


RE: Can't get surface collisions to work - josemendez - 19-01-2023

(19-01-2023, 12:30 PM)natko1412 Wrote: Hi,

I have a rather long rope with distance between particles set to around 0.8m

I have some box colliders with ObiCollider component attached to them and enabled Surface-based collision in ObiRope component. In the solver I have Collision constraints set to 20 iterations, and enabled particle collision and friction constraints as well. I even cranked the surface collision iterations up to max 32, and tolerance is set to 0.0005.
Still, I cannot get the rope to collide with the box colliders, it just passes through them like through air.
These colliders have a Rigidbody on their parent, and it has Kinematic for particles enabled because I just want to have collisions without adding forces to the rigidbody.

Can you help me, maybe I forgot some settings ?

Hi!

Based on your description, this should definitely be working.

Could you send a repro project to support(at)virtualmethodstudio.com so that I can take a closer look?

kind regards,


RE: Can't get surface collisions to work - natko1412 - 19-01-2023

(19-01-2023, 12:33 PM)josemendez Wrote: Hi!

Based on your description, this should definitely be working.

Could you send a repro project to support(at)virtualmethodstudio.com so that I can take a closer look?

kind regards,

Upon further investigation, I came to the conclusion that collisions are in fact calculated. If I go real slow with no tension on the rope, it seems to work, but as soon I try to do it faster and with more tension, it goes through. Do you have any ideas how to solve this?

I already have Continuous collision parameter set to 1

Could this be because Bend constraints are prioritized over collisions?

edit:
Another observation - seems to only pass through when there is not enough slack on the rope to wrap around the obstacle. I expected the rope to not pass but instead pull the end of the rope

edit2:
I increased the mass of the rope + add more iterations, seems to work fine now


RE: Can't get surface collisions to work - josemendez - 19-01-2023

(19-01-2023, 02:39 PM)natko1412 Wrote: Another observation - seems to only pass through when there is not enough slack on the rope to wrap around the obstacle. I expected the rope to not pass but instead pull the end of the rope

If you're stretching the rope beyond its rest length, there's only two options: either A) the rope will break or B) collisions will be ignored as that would stretch the rope further which isn't allowed unless the rope is elastic. If your rope is not breakable, then the only option is obviously B).

This is what happens in the real world too. Think about a real inelastic rope that's 2 meters long, both ends firmly attached to columns. Now you place an infinitely heavy object on top of the rope, to pull it down: either the rope would break, or -if it had infinite resistance- it would cut trough the object.

Options:
- allow the rope to have some slack.
- make the object it is colliding against non-kinematic so that the rope can push against it.
- make the rope elastic by increasing its stretching compliance.

kind regards,


RE: Can't get surface collisions to work - josemendez - 19-01-2023

(19-01-2023, 02:39 PM)natko1412 Wrote: I increased the mass of the rope + add more iterations, seems to work fine now

If the object it's colliding against is kinematic, that means it has infinite mass for all intents and purposes. Increasing rope mass should have no effect in this case, not sure what's happening there.


RE: Can't get surface collisions to work - natko1412 - 20-01-2023

(19-01-2023, 03:16 PM)josemendez Wrote: If the object it's colliding against is kinematic, that means it has infinite mass for all intents and purposes. Increasing rope mass should have no effect in this case, not sure what's happening there.
I think it was because the mass ratio was greater than the recommended maximum ratio of 1:10. I was trying to see how much can I push the mass ratio and I guess I forgot about it by the time I was setting up collisions