Turns out there’s a great explanation here.
I just ran into a similar issue and came up with a slightly different solution. What I found is that UE4 considers the players z velocity to be zero as long as they are in a walking state, even if they are running/sliding up a ramp. Obviously this is not correct, but it’s probably done out of convenience for their default movement preferences.
So when you come to the end of your ramp or the top of a slope no z velocity momentum is considered on the character because it thinks it is zero, thus keeping you ‘stuck’ against the ground.
So what I am doing is calculating my actual Zvelocity and adding it as a vertical impulse when the slope or ramp angle decreases from the last tick. This should allow you to ‘get air’ off of inclines you slide on at high speed, which is the expected behavior I’m going for.
The other issue I ran into is you can be running (or sliding) up a ramp and press jump and effectively not be able to separate off the surface because it does not add the jump impulse to true Z velocity when ‘walking’ up a ramp. IMO this is a bug. Meaning you can be running or sliding 1500u/s up the ramp…and effectively have a 500u/s Z velocity. You press jump giving you a 420u/s Z impulse and go absolutely nowhere because its consumed by going up the ramp. So I add my calculated base Z velocity to my jump impulse when running up a ramp and it now works as desired.