Physics collision question - actors slides under other actor

Hello,

(new to unreal). I have a problem with some physics collisions I’ve setup. What this is trying to simulate is the following.

Imagine a physical checker board, with some checks on in. You can flick a checker at another checker. The goal is to knock the second checker off the board (while, ideally, keepings yours on the board).

The problem I am having is that the flicked pieces often end up going directly under the target pieces. Here’s a picture:

2022-05-10 12.10.45 (1)

Obviously the velocity here matters, although I don’t think it’s behaving “realistically”, which is what I am trying to achieve. I can’t just restrict the Z axis movement, because I want the pieces to be able to move up and down.

Is there something obvious I can do here. In the picture above, the checker that’s flicked should hit the green checker on the bottom and make it move as well (instead of just passing under it).

And if I apply less force, then it does the right thing. The trick seems to be in applying just the right amount force to avoid this behavior but still be enough to knock the other piece forward.

The way this is implemented is that I get the force vector from the end of the pink arrow back to the beginning point. It is multiplied by a float constant (to provide more force) and then that force is applied directly to the checker actor.

This is UE 5.0.1 on MacOS if that matters.

Thank you!
Dan

Check the CCD box for all the checkers. Might help.

Fascinating… see picture. :). The floor is made up of individual squares, but above the floor is a single BlockingVolume that the checkers are sliding across. This is the collision settings on the volume:

This is the result of enabling CCD…

2022-05-10 13.40.00 (1)

This is what the mesh of the checker looks like with collision bounds:

Interesting. I’m not really sure but maybe the blocking volume is causing this? Why don’t you just set a simple collision for the floor? I kinda feel like the volume is making them float a little, thus causing this. But as I said, not sure, however, maybe it will help.

The floor is made up of many actors (each square), so each one has its own collider. Trying to slide the checkers across the floor directly causes a different problem, where they will catch on the edges and suddenly stop, or flip for no reason. So I put the volume there to try and work around that for now.

1 Like

If each square is a static mesh you can select them all and combine it into one, unless you need them separately. But as I said, I’m not really sure what’s causing this but my bet is on collision.

Edit: I also just noticed that your checker mesh has convex collision which might also be causing the issue where it slides under. Try removing the collision from the static mesh and just wrap it around with a simple box to test it out imo!

So I tried this on the default floor and with CCD I am hitting the same issue as here: https://www.reddit.com/r/unrealengine/comments/t80umw/ccd_continuous_collision_detection_with_objects/

Without CCD, I get the same behavior as above. Sometimes the pieces slide under each other and sometimes they fly above each other.

2022-05-10 23.01.57 (1)

P.S. I changed the collider to be a simple box for the above tests.

Here’s what happens with CCD on the default floor:

2022-05-10 23.04.19 (1)

fwiw, this is the physics material I am using, but it behaves the same without it: