Use a trigger volume to change the animation state and utilize a custom collision mesh that blocks the player from moving away from your path.
The only downside to this solution is that your player couldn’t fall off your path (not sure if that’s good or bad in your case).