How can I achieve an On-Rail Camera?

I am trying to force the player’s camera to only be able to move along a preexisting arc. Kind of like how an old rail-shooter works. I tend to overexplain, so I have pictures for reference.


I currently have an invisible part that starts at the green block. The player’s CameraSubject is this invisible part. Using A or D will tween the invisible part to the linked grey parts, moving the camera along this arc. The path does not loop, when you reach the end you can only go back the way you came. The yellow block is where the player is supposed to be looking at, though it has no mechanical effect on what I’m trying to do here. All of this works right now. The issue is, movement consists of tweening the CameraSubject to the next node. There is no stopping in between like you would get if you had a character and were on foot. Is there any way to force this invisible part to follow along a curved path like the following image:
(Instead of the camera jumping to blocks roughly making the shape, have the camera slide along this curve)

Does anyone know how to do this?

2 Likes

I found a Youtube Video that I think you’re looking for, if not sry

Are you trying to rotate around the yellow part? If so I would recommend checking out the link below relating to camera manipulation, there’s a section there called ‘Rotate around object’ which could be useful.

It seems like you just want to have a part in between those curves and have the camera set to that part.
You then move the part with A or D relativly on that curve to achieve that effect.

1 Like

This should help!

5 Likes

@boatbomber‘s link should be helpfull. But if you dont want to use the linked script then you have to use Bezier Curves. If you want a video you should be able to find one on Youtube.

I assumed I’d probably have to do something mathy for curves. Dang, that’s what I’m worst at :sweat_smile:

1 Like

A few years ago I suggested a new feature for Roblox, camera-as-a-part. It was rejected, but I see that there is still a need in it and the developers write their own solutions for it all the time…