When a character is pushed by another object (block collision) the character moves up and down in a choppy glitchy way instead of being pushed smoothly. When this character is moving or jumping at the moment of impact it does get pushed smoothly instead of choppy. When standing on top of an object (think of an elevator floor) the up-down movement is smooth.
In all tests the object pushing the player is a simple cube:
(collision profile BlockAllDynamic, no physics, no generate hit events (only required on character), moves back and forth using a InterpToMovement component with Sweep enabled.)
I’m trying to find a solution to this choppy behavior when any sweeping object pushes my character from sideways, without hacky workarounds. I’m confused why this doesn’t work “out of the box”
On top of the movement problem I noticed that Blocking Hit events are also not generated by the character while standing still, they are only generated while moving the character. Both problems (the glitchy sideways push and the missing hit events) are a big problem for my project.
Does anyone have a fix for these that doesn’t feel hacky?
Adding info, It seems the character is being “choppy pushed” by the movement component’s “Max depenetration with geometry” value, not the push effect we see while walking against an object. Any chance to get the exact collision behavior on the character of moving, but while stationary?
Isn’t it amazing though? Such a simple problem that you think would have tons of support by now yet, nothing…
What I discovered about it is essentially the shape of the capsule and how collision is calculated. And this only seems to be in the X and the Y, Z or vertical movers are fine.
It seems that the penetrating object must reach the exact center of the player’s capsule before a push is initiated…different mover speeds and different jerking behavior.
Many things have been proposed but nothing seems to be solid yet. The other day…I found a thread with this problem and he found a solution, that I can’t seem to get to work in both X and Y at the same time.
You can check that out here.
If and when a solution to this is found I think it should on one of those UE4 answers threads one can get to from a search engine.