How to get a axis constrained actor to turn a corner. (2d platformer in 3d environment)

Hello all. I’ve tried to manage this one on my own and have come up with a decent solution using splines; however, I’m still getting some wonkiness and am wondering if there is a simpler way of doing this.

I’ve got a platformer where the player runs one plane until they hit a turn in the level. All turns are 90°s. When a player hits the turn, their constraint axis changes and they continue on their way.

I’ve got a blueprint actor that detects the overlap with the player and pretty much runs them on a spline using set world location.

Set world location doesn’t maintain velocity so when the character exits the turn, the velocity has to be set manually for a smooth transition otherwise the player stops and has to spool up their run again when they exit the spline.

This “fix” leads to some uncomfortable jump mechanics and I’m trying to smooth those out.

I’m curious to know if anyone has done something like this, and if so, how did you manage it?