Wall-walking/hugging system where player attaches to any wall surface with a button press and can smoothly round corners

Hello,

I am trying to create a wallhugging/walking system essentially identical to the one found in the 2003 game Indiana Jones & The Emperor’s Tomb, wherein pressing an input next to any wall surface will attach the player to the wall and allow smooth movement around corners.  (See linked video for reference.)  My first instinct would be to do this with a line-trace of some kind, however I’m having a really hard time figuring it out.  I can get the player to attach to a wall by sphere-tracing on input-pressed and constraining the player movement to a plane set by the normal of the impact point.  And it works in theory, however the system quickly falls apart when trying to round corners.  I can almost make it work on inner corners by way of line-tracing back and to the right/left of the player and updating the planar movement & rotation based on that line-trace, but it’s very broken and glitchy. I have absolutely no idea how to approach the rounding of outside corners.  (See the second video reference)  I’ve attached 2 screenshots of my blueprints.  One portion is firing off the button press, and the other portion is firing on a tick only when player is attached to the wall.  I’m not so concerned about the animation side of things for the moment, unless someone savvy thinks it could be done with root motion or something.(I was going to use a blendspace rather than montages etc. as the player should maintain full control of movement while attached to the wall).  I would be very curious to know if anyone has an idea to how this could be done properly, and would appreciate any suggestions. I seems like if it could be done 17 years ago, it should be relatively simple in Unreal but I’m a bit lost.

Thanks in advance!

[Indiana Jones & The Emperor’ Tomb (2003) (the movement I want)][1]

[What I currently have (awful)][2]

I was thinking, rather than doing line traces, what about using the wall to constrain coordinates? So, once they have chosen to hold the wall, you can run a modified control system in the character that only allows side to side movement along a plane parallel to the wall.

IE, the player capsule is always aligned with the wall normal, which I think should work around corners…