Limit the collision solver's force


I’ve got some rocks that smash into each other. And when that happens I want the rocks to break op in several smaller rocks. The smaller rocks are spawned randomly within the volume of the original rock. It’s very well possible the smaller rocks are placed within each other. The collision sover then forces them out of each other, which involves way too much force.

The base effect fine, I wanted the smaller rocks to move apart from each other, just more … controlled. It’s not an option to put them in another layer which ignores collision. Because these smaller rocks can in turn smash again an break in even smaller rocks.

So the ideal solution would be, the collision solver uses less (or no) force in this situation. And a less ideal solution would be, but still suitable, the rocks ignore each other for a small amount of time. But in that time, it still has to collide with other objects in the world. Because the rocks breaking into smaller rocks is actually just a fancy way to hurt the AI in the game :slight_smile:

I’m a little lost on how to achieve this however. Anyone got any advice for me?


Found a solution myself in the meantime.

I fixed it using layers. Upon breaking, the smaller rocks will be moved to a separate layer. This layer collides with everything as the regular layer, minus objects in the same layer.

Then I added a script to the smaller rocks. While the rock is in this separate layer, the update of the script will check if for overlaps with other objects within the same layer and apply a subtle force to move the smaller rocks apart. When the rocks are far enough apart, they’re moved to the Original layer again where they’ll be able to be smashed again.