Why does a capsule rigid body stays floating when bodies below it are removed? It should fall with gravity.

Setup (UE 5.1)

Actor with a StaticMesh with the following Physics properties:

imagen

It has an imported capsule collider:

There’s no code driving the physics of the Actor.

Problem

At runtime, when removing bodies that are below this actor, instead of the actor falling with gravity it stays in place.

It only moves if the character controller steps on it or if another body is dropped on top of it.

Video showing removal of bottom bodies and the actor staying floating:

Alternative Approach

If I remove the actors and WHILE CARRYING one of the removed actors I DO NOT MOVE, the actor that stays, keeps floating and is not affected by gravity (this is the problem described above):

But if I MOVE while HOLDING AN ACTOR that I removed, the actor that stays react right away and falls down:

But why is that, since inspecting the collision shapes show that they are always moved out?

Question

  1. How to make it correctly react to gravity when its support is removed?

Reducing Inertia Tensor Scale did not solve it.

That has happened to me… I think the capsule does not emulate physics when the character is detached from it. (rag doll for example)

In fact there is a node that does that. (Emulate physics)

Yes, I think your object is not emulating physics… other sticks can go through it… (In the editor you can also make the capsule emulate physics… you don’t need the node) (You have to configure the collions too… if you have the collions misconfigured the physical ones may not work)

From you can see from the physics settings in the image attached to the original post, they all have Simulate Physics On and Gravity is Enabled for all of them. They are also set to PhysicsActor in the Collision settings.

imagen

In the beginning of the game, before I take them out with the character they are even simulated:

Is it a multiplayer game? If so, maybe you should replicate the object… non-replicated objects in a multiplayer game do very strange things… like that for example

No, single player, simple mechanic of picking up and dropping rigid bodies.

I would copy another one of those sticks that behaves correctly and delete the one that behaves badly. It will be the fastest. You probably have something in the configuration different from the others. Might even have an invisible collision element… Easy path, Copy and Paste… :slight_smile:

Best regards

Thanks, but unfortunately they are all the same.

I almost solved by creating a Physics Material and tweaking the Sleep Linear Velocity Threshold, Sleep Angular Velocity Threshold and Sleep Counter Threshold parameters.

They still go to sleep, but correctly wake up when they lose their supporting bodies.

Well, too soon, objects are still randomly not waking up:

It’s very weird.

Check the components of the object… maybe it has a collision box that you’re not seeing because it’s invisible.

When you export an FBX it is possible that colliders are automatically generated as well.

another possibility is that it’s not the stick… maybe it’s the ground (or something above the ground)

another possibility is that the stick is surrounded by a mesh… that mesh would have the normals inverted, so it would be invisible…

there are really many possibilities…

1 Like

Thanks, I tried all of these, but it’s still related to the physics actor going to sleep and not waking up unless I move.

Solution

Solved by forcibly waking up objects near the picked up object. Seems very hackish, as I’d expect rigid bodies to wake up when they lose their supporting ground, but if it works, it works!