Physics collision on rotating platform, actor keeps bouncing

Hi, I think this issue has been around for some time now, but has anyone found a solution for the unexpected bouncing on physics collision with meshes other than planes? It seems it keeps depenetrating the mesh.

Correct behavior on collision with rotating plane:

Incorrect behavior on collision with rotating sphere:

Both the Cube and Sphere are their own RootComponents of each actor.

I’ve tried messing around with “PCM” and “Max Depenetration Velocity” on Project Settings, but all it does is mask the problem, not fix it.

I’ve tried various types of collisions for the Sphere mesh, generating a “Simple Sphere Collision” and “Auto Convex Collision” options but the issue persists.

Also, “use Complex Collision as Simple” for some reason doesn’t work with “Simulate Physics” - using “CCD” doesn’t seem to help either.

Any help appreciated, thanks

edit: Strange that the Cube actor has an incorrect behavior whilst the Character doesn’t bounce.

Because the character movement component handles it differently. I don’t think this is about depenetration or CCD. Have you played with these:

Just to test it out, keep doubling them to see if / when that stabilises it.

  • another way to handle it is to add extra linear and angular dampening - this may not be ideal due to gameplay requirements, of course. But it’s sometimes missing just a notch to get things stable and may be unnoticeable in game.

  • and yet another way is to get a physical material involved. This allows you to play with friction and restitution values & modes - pretty much a must if you want a specific behaviour. I understand that you expect this to work as is (and rightly so!) but oftentimes tweaking is required, sadly.

Btw:

  • how large is that sphere we’re on
  • how far from the world centre are we in that very case?

Wondering if float precision could be the (additional) culprit. If you place a 5m uus sphere at 0,0,0 and stand on top, that’s a 2.5km mark at that radius - at this point the physics behaviour will start deteriorating rapidly, manifest oddities and so on. It will be unreliable. So will be tracing.

1 Like

I’ve cranked Position and Velocity Solver up to 255 but didn’t notice any visible change in behavior. Changing both linear and angular dampening didn’t seem to change anything either, nor when messing with Physical Material Friction and Restitution values.

The sphere used as floor is the one from Engine/BasicShapes and it has a scale of 100,000.
The world center is ~1000u from where we’re at.

Decreasing the sphere scale from 100,000 to 1,000 seems to smooth out the issue, but it still exists:

I thought it could be caused by the Sphere having few collision points, so I created another sphere with more subdivisions and the issue remains - also, using a Sphere or Icosphere as floor produced the same result.

Maybe it is a float precision problem, but does the Sphere has a radius big enough to cause it? If I use a Cube as floor with the same 100,000 scale and then add a 10º rotation on X, it works as intended - so why would it happen on spheres specifically?

1 Like

It seems you’ve ticked every single box I could think of. :frowning:

1 Like

Is the sphere scaled in a uniform way?

1 Like

Yes it is.

I’ll try having a SphereCollision wrap the Sphere itself and use it instead of the mesh.

Maybe something can be done using the FloatingPawnMovement component?

I’d try it. Almost certain that would work.

1 Like

I’ve placed a static mesh (Shape_Sphere) at the root of an actor, set the mesh’s collision complexity to:

Added a rotating movement component, scaled the actor up and offset Z so the pole is roughly at 0,0,0.

image

The result seems stable enough:

1 Like

Hi again.

After more testing, I couldn’t find a concrete solution for this problem on UE4.27, as large scale open-world of this magnitude is a limitation of the engine itself.

Though, I’ve been researching some new features of UE5 and it seems that this will be a feature that’ll be actively developed and implemented: Large World Coordinates in Unreal Engine 5 | Unreal Engine 5.0 Documentation

Nonetheless, I appreciate your help, thanks!

1 Like