Problem with Climbing limits on a wall

Hello all,

Thank you for reading my question!

I have spent the whole day trying different things but it seems to be too challenging for the beginner I am.
I created a simple Climbing system for 8 directions with animations all in one Blend Space and each time the inputs are triggered (2 differents inputs UpDown and Left Right, float values from -1 to 1), I trace 4 lines parallel lines, perpendicular the the wall, to know if the wall ends

So the algo is simple :

  • If the 4 lines makes a hit on the wall, UpDown and LeftRight equals the Player Inputs
  • If the UP line (above the character) does not make a hit then the UpDown input is set Min(0,UpDown input)
  • If the DOWN line (above the character) does not make a hit then the UpDown input is set Max(0,UpDown input)
  • Same thing for LeftRight.

It works great when I only trigerred ONE input and the character stops where it should.
But when I press both inputs to go Up and Left at the same time for instance, it continues slightly above the limits, ruining the thing…

I changed the blueprint several time but i cannot be sure if its a performance issue or if it has something to do with the animations themselves.
For info, all of the animations are forced Root lock and the character is in flying movement mode for climbing.

If you have any idea or suggestions… maybe im looking at the problem from a wrong point of view.
Thank you for your time!

Here is the result in video when i only press Up :

Here is the result in video when i press Up and Left :

And here is the code if the section :

Ok I finally found a way but im still convinced im looking at this the wrong way.
After the Add movement Node, I add another TraceLine to get the height above the limits, and if it is more than 1, I do a Set Actor Location to go back within the limits.