Sidescrolling Arcade-Style Shooter - Environmental collision without getting stuck

I’m trying to make an arcade-style sidescrolling shoot-em-up, and not having much luck with getting the movement right. Here’s a rundown of what I’m trying to build:

  • There’s a spline in the level that represents the track the player will follow
  • There’s an actor called “tracker” that follows the spline at a constant rate from one end to the other
  • The player maintains its position relative to the tracker as a 2D Vector, and can move up/down/left/right

My current implementation has a lot of trouble with the (completely smooth) environment. Right now I’m using Set Actor Location to set the player’s new position against the tracker every tick, which has a tendency to get stuck easily against floors and ceilings if the player is forced to collide with them in order to keep up with the track.

I recorded a short video here showing both the kind of movement going on and the issue I’m having:

The sticking issue happens at 0:06 and 0:11 seconds.

If anyone can offer any suggestions on how to do this correctly, or even any resources at all for developing this style of game in Unreal, I’d be extremely grateful. I’m pretty clueless about where to go from here.

TL;DR Sidescrolling arcade shoot-em-up game - how can I force the gameplay frame (player, camera, enemies, etc) to follow a spline path through the level without getting stuck?