Disable player physics but not collision?

Just wondering if anyone knows how to disable the player’s physics force on physics actors without disabling the collision entirely? I want some dynamic rubble to be something the player can step up on but not push around. I’ve tried everything from increasing the object’s mass to 5000000 (million) to adjusting the player’s Force settings in the character movement but nothing works. It’s like everything in the world is made of foam blocks.

Have you tried creating a Physics Material and adding it to the rubble? You could mess around with the Density in the Physical Material settings and perhaps even Friction to get your desired results.

Oh right, I forgot about physics materials. I’ll definitely check that out. Though I still am curious about whether or not it’s possible to disable the player bumping physics objects but still being able to collide with/step up on them.

Sadly adding a physics material didn’t change anything. Everything is still foam regardless of what I set the mass or density to. Even tried maxing out the mass to power and that did nothing too. I really hate the physics in UE4.

Did you ever find a solution or workaround for this?

Unfortunately no. Physics in UE4 is still wonky. My suggested workaround would be to add a collision mesh to the BP to act as a trigger and when the player hits the trigger, disable the physics on the simulated actor (rubble) then enable it again when the player leaves the trigger.

Thanks for the tip. I still wonder if there is a setting in the Engine which controls the interaction between characters (player controller) and physics objects. I mean there has to be some code that actually triggers the push force on the physics object?

You’d imagine yeah, but only God or Tim knows what it is.

Thanks for the suggestion but changing the collision channel wouldn’t help as we’re not trying to disable the collision. We’re trying to be able to walk on top of an object simulating physics without adding force of any kind to said object. If you disable collision with the player it stops them from affecting it, but it also stops you from being able to walk on top of it. There’s no way to put the player or object into another collision channel while still allowing them to collide with the object. It’s strange that we don’t have more control over the amount of force that’s applied by the player.

The “Twin Stick Shooter” example seems to have a custom movement with “AddActorLocalOffset” and the Sweep parameter enabled. The sweeping prevents the physics objects in the level from breaking. Once you disable the Sweep parameter the vehicle can break physics objects.
I think someone just needs to implement that for the CMC.

if you want to disable interaction with physical objects, you need to go to character movement under physical interaction and disable physical interaction.

1 Like

An alternative solution:

1.Add box collision to the object you want to hit (and make him the son of that object)
2.Turn off physics simulation on the father and activate on the son.
3. Lock rotation + position of the box ( in default mode of constriction)
4. Now watch the box hit event(which will work since physics is activated)
Now whenever you get an hit, if you want to activate a force you do(for example):
Set Simulate Physics on the father → Apply force at Location → delay for force apply → Turn off the simulate physics on the father → change constraint mode of collision box to none ( so that you can move it)-> change the box location to be where the father is now ( You can move this function to Tick event or something) → return the constraint
In this way(if you are forced for physics simulation) you can apply whatever force you want on the father object and still have collision ( you can also do 0 of course)
and because box collision is not visible it will work as you want.