Hey** 10michael01 **are you still looking for an answer to this?
I was able to figure out how to get Sonic rolling downhills in Blueprints using the normal of the surface he’s on and the a (0,0,-1) vector for gravity.
- From the character Movement Component use the “Current Floor” reference/node.
- Use “Break FindFloorResult” and connect the “Hit Result” to a “Break Hit Result” node.
- From there, use the “vector+vector” node and subtract (0,0,-1) from the “ImpactNormal” result. This will give the direction of the slope of the hill
- Feed this into a “Launch Character” or “Add Movement Input” node or whatever you want to actually “push” the character in that direction
So in a nutshell, it’s basically just projecting the SurfaceNormal vector onto the surface itself (by adding (0,0,-1) to it). And that gives the direction of the slope everytime
I got some help from this post: Calculating floor angle, char-movement - Character & Animation - Unreal Engine Forums