#anyone managed to fix the annoying slide deflection?

1 messages Β· Page 1 of 1 (latest)

turbid pilot
#

as demonstrated in the video. it feels awful and ruins pretty much any 3D platforming. sometimes you'll even get bumped off the corner of a ledge you're trying to land on because of it.

things i've already tried:

-messing with lateral friction (can't find a good way to keep the intended feeling of the game while also modifying this)
-directly trying to override the deflection velocity during On Component Hit, using dot products and last stored velocity before hit etc
-mover (they put this shit in that too charliekms )

it really feels like something that should be toggleable. i want basic sliding along sloped surfaces but i don't want my character yeeted off to the side. this gets even worse if you're near max falling speed and land on an unwalkable angle; you might make it to mars when that happens.

EDIT: oh yeah, another case you maybe hadn't thought about. if your jump hold time is anything above 0, and you hold jump under a slope like i did at the beginning of the video, you'll launch yourself really far, it's kinda hilarious. one of the reasons i implemented my own way of handling variable height jump

#

if someone has an epic linked github on hand to add another request for making this optional, both CMC and Mover, please do it for me. the more we bitch at them about it the better thumbs

arctic crystal
#

Maybe I don't understood what is intended behavior, but maybe just zero X and Y velocity after hit something?
Or if yoy don't want to be "glued" after collision, especially angled collision - try to zero that part of velocity vector that is parallel to normal vector of object that you hit (always only for X and Y).

I guess it would prevent bumping, and be more realistic for human-like body.

UE5 Physical materials has "restitution" parameter that is described as how much object bounces, but I never trust UE5 physics πŸ™‚

turbid pilot
#

This doesn't really work because of how SlideAlongSurface works. This is implemented in C++ in the movement component. After the player "slides" along any collision, a "deflection velocity" is imparted that moves them away from the surface. There is currently no way to reliably control this outside of making your own movement component (as far as I know)

#

Intended behavior would be a multiplier that we could set to scale this deflection velocity directly. Like a value between 0 and 1

#

I would like the player to slide around collisions but have no extra velocity imparted to them

#

These images from a very old thread having the same issue illustrate it well using a jump

#

If you have your Jump Max Hold Time a non-0 value, the full force of your jump momentum gets deflected over the entire time jump is held during that window, causing a drastic take-off

arctic crystal
#

Nightmare of every phisics simulation - collision that adds energy to the system...
Tried in this sample Third Person Perspective game and CharacterMoveComponent has a property "Braking Deceleration Falling" that from about 500 starts to stop player from doing that.
But - not when you accelerating in direction of that strange acceleration. Also without acceleration it simply stops any lateral movement when falling.

If you are familiar with C++ it looks like CharacterMoveComponent have something like HandleImpact() method.
Possibly there you could do some adjustments?
I am not familiar with this component.

turbid pilot
#

i noticed that if i always set the player's velocity directly, it overrides any sort of deflection. what this means is that i'll need to recreate walking acceleration and gravity myself

#

if at any point i let the CMC run input through "add input" it'll deflect me

#

same with default jumping behavior

#

not too terrible a task, since i can still leverage things CMC already implements, like slopes and movement modes