Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Softbody falls through collider at times, is this a bug?
#1
Sorprendido 
So my softbody collision setup works well (Obi colliders in different phases). My scene setup is simple : A softbody object falls onto a table surface. The problem is, upon building to an android device, sometimes, the object just falls through the table, completely ignoring any collision with that table. 

It happens randomly after 10-12 spawned softbodies - But once it starts happening, the collision ignoring doesn't stop. From thereon, any further softbodies spawned (completely fresh prefabs with newly instantiated solvers) stop interacting with the table at all. The game has to be closed and restarted for table collision to work again temporarily until problem repeats.

Now before you blame the obi collision phases, I have checked and double checked and all instantiated objects are on phases other than the table's phase at all times.

One thing I did note is due to quicker iteration times to debug, I normally use the Quick Enter Play mode feature in Unity a lot (which disables Domain Reload). But Obi collision completely fails instantly if Domain reload is disabled. If I enable Domain reload again, collisions seem to work again.

But regardless of Domain reload on or off in the editor, on the built APK, as mentioned above, the collisions start to fail after a point. It's unpredictable. To make sure, I rebuilt the APK with Domain reload On within the Editor, but same results.

Also, not sure if it's worth mentioning but I'm using different gravity values for the game. The main Physics system has a gravity value of -69.8 and the solver for each softbody is using -39.8. Could such values create issues?

I'm completely lost here, as the scene setup seems fine and I just don't understand why collisions randomly stop working after a point in builds for no reason. No scripts alter the Table's Obi Collider component or it's phase at any point. It behaves as if Domain Reload has been turned off after a point.

What is happening here? Is there any way to force collisions to work within build again? Maybe force domain reload on each spawn? Is domain reload even the culprit here? I don't see how, that's supposed to be within Editor only.

Please help
Reply
#2
(08-08-2020, 02:07 AM)arrnav96 Wrote: So my softbody collision setup works well (Obi colliders in different phases). My scene setup is simple : A softbody object falls onto a table surface. The problem is, upon building to an android device, sometimes, the object just falls through the table, completely ignoring any collision with that table. 

It happens randomly after 10-12 spawned softbodies - But once it starts happening, the collision ignoring doesn't stop. From thereon, any further softbodies spawned (completely fresh prefabs with newly instantiated solvers) stop interacting with the table at all. The game has to be closed and restarted for table collision to work again temporarily until problem repeats.

Now before you blame the obi collision phases, I have checked and double checked and all instantiated objects are on phases other than the table's phase at all times.

One thing I did note is due to quicker iteration times to debug, I normally use the Quick Enter Play mode feature in Unity a lot (which disables Domain Reload). But Obi collision completely fails instantly if Domain reload is disabled. If I enable Domain reload again, collisions seem to work again.

But regardless of Domain reload on or off in the editor, on the built APK, as mentioned above, the collisions start to fail after a point. It's unpredictable. To make sure, I rebuilt the APK with Domain reload On within the Editor, but same results.

Also, not sure if it's worth mentioning but I'm using different gravity values for the game. The main Physics system has a gravity value of -69.8 and the solver for each softbody is using -39.8. Could such values create issues?

I'm completely lost here, as the scene setup seems fine and I just don't understand why collisions randomly stop working after a point in builds for no reason. No scripts alter the Table's Obi Collider component or it's phase at any point. It behaves as if Domain Reload has been turned off after a point.

What is happening here? Is there any way to force collisions to work within build again? Maybe force domain reload on each spawn? Is domain reload even the culprit here? I don't see how, that's supposed to be within Editor only.

Please help

Hi Arnav,

We've been unable to reproduce this.

Obi does not support quick enter play (as it uses static variables to store collider ids, which aren't fully supported with domain reloading disabled, so collisions won't work). However, this only happens in editor, so it should work fine at runtime.

Also, different gravity values should not affect collisions in any way as they're completely unrelated. However a gravity value of -69.8 m/s is extremely high though, and can cause tunneling issues (missing collisions) if the relative velocity of objects gets very high as a result of gravity acceleration. This is true for Obi as it is for most physics engines.

Would it be possible for you to send a repro project to support(at)virtualmethodstudio.com?

kind regards,
Reply
#3
(10-08-2020, 08:44 AM)josemendez Wrote: Hi Arnav,

We've been unable to reproduce this.

Obi does not support quick enter play (as it uses static variables to store collider ids, which aren't fully supported with domain reloading disabled, so collisions won't work). However, this only happens in editor, so it should work fine at runtime.

Also, different gravity values should not affect collisions in any way as they're completely unrelated. However a gravity value of -69.8 m/s is extremely high though, and can cause tunneling issues (missing collisions) if the relative velocity of objects gets very high as a result of gravity acceleration. This is true for Obi as it is for most physics engines.

Would it be possible for you to send a repro project to support(at)virtualmethodstudio.com?

kind regards,

For some reason the issue seems to have been fixed temporarily if I change the phase of the table obi collider right after spawning a new object everytime. This works even with domain reload disabled. Any idea how that fixes it? I'm just curious.

Also, I'll try fixing up the gravity. You're right indeed. Things do have a chance of glitching out.
Reply