Probably not without python. But I’m assuming that if you are doing a track editor, you have a good grasp of python. Use python to get the position and orientation of each object. Then use intervals for how many frames to get to the next piece? The only problem , I see is that bullet physics, would not work.
Psuedo Code
position = Next_track_piece_position-Train_position # Get the difference
rotation = Next_track_piece_rotation -Train_rotation # Get the difference
Position_interval = position/speed #speed would be however many frames you want to the next piece
Rotation_interval = rotation/speed #speed would be however many frames you want to the next piece
Train_position = Train_position + Position_interval
Train_rotation= Train_rotation+ Rotation_interval
frame = frame + 1
if frame>speed:
Get_Next_Piece()
I think that would work… but as I said it would not have any physics. You might be able to approximate, by modifying the speed value based on the orientation of the track piece. Also you would have to make sure that each track piece was the same length. SO like you could have a default piece of length 1. Then you would multiply speed by such value. A curve, would have to be made of many piece’s to.
Hopefully that helps.
P.S. There are probably other ways that might work better