This might require some advanced math knowledge. I am trying to make the camera interpolate. However, the problem is that after I tried the code below, the camera is shaking which is not expected. (And it makes me feel sick!) Therefore, I just wanna ask if there is a problem when writing this script.
The following code is a LocalScript placed in StarterPlayerScripts (in StarterPlayer):
local Camera = game.Workspace.CurrentCamera
local target = workspace.Block -- It can be any brick you added.
Camera.CameraType = Enum.CameraType.Scriptable
Camera.CameraSubject = target
local centre = target.Position
local angle = 0
-- Change around the variables if you'd like to. ------------
local InterpolationTime = 0.3 -- The amount of time the interpolation will take.
local increment = 5 -- Increments the angle variable by this number for every interpolation.
local radius = 15 -- How further apart between the center and the camera.
local YOffset = 5 -- How high should the camera lift up?
---------------------------------------------------------------------------
while true do
Camera:Interpolate(
CFrame.new(
centre.X + (radius * math.cos(angle)),
centre.Y + YOffset,
centre.Z + (radius * math.sin(angle))
),
CFrame.new(target.Position),
InterpolationTime
)
angle = angle + math.rad(increment)
Camera.InterpolationFinished:Wait()
end
The formulas I used are very difficult, so the code may be hard to understand. If you have other suggestions or a solution, I would be very grateful! Also, I have already seen the Camera Manipulation tutorial a lot of times on the Wiki, and it does not help me now. (Sorry!)
There is nothing displayed in the output while running the code whatsoever.
You can change around the values of some variables to play around and check out the problem.

4 comments
Add a wait in your while true do loop..
pay attention to line 30 of the code
Just to clarify, you are trying to make the camera smoothly revolve around the target part, yes?
yes, however it cannot be shaky.