You’re probably looking for splines. It’s when you create a smooth path from multiple points. You can use it for the camera by putting points all across the map. There’s a lot of math involved, but there’s plenty of community modules available.
Lerping is basically the better version of tweens and if you use workspace.Camera:Lerp(Cframe, Time)
then it will make everything smoother. try to do this for now and reply back to me once you get a result
cutremotes.MudgrimBreakIn.OnClientEvent:Connect(function()
local cam1 = camfolder.MudgrimBreakIn.MGBreakInCam1
local cam2 = camfolder.MudgrimBreakIn.MGBreakInCam2
local cam3 = camfolder.MudgrimBreakIn.MGBreakInCam3
local cam4 = camfolder.MudgrimBreakIn.MGBreakInCam4
local ti = TweenInfo.new(17, Enum.EasingStyle.Cubic, Enum.EasingDirection.InOut,0)
local goal = {}
goal.FieldOfView = 45
local animation = ts:Create(Camera, ti, goal)
-- Function to move the camera continuously without pauses
local function moveCamera(fromCFrame, toCFrame, duration)
local startTime = tick()
local endTime = startTime + duration
-- Continuously update the camera position using Lerp
while tick() < endTime do
local elapsed = tick() - startTime
local alpha = math.clamp(elapsed / duration, 0, 1)
Camera.CFrame = fromCFrame:Lerp(toCFrame, alpha)
runService.Heartbeat:Wait() -- Wait for the next frame
end
-- Ensure the camera is exactly at the target CFrame when done
Camera.CFrame = toCFrame
end
-- Disable player controls and UI
Player.Character.SprintScript.Enabled = false
script.Parent.MainUI.Enabled = false
Player.PlayerGui.FPBodyScript.Enabled = false
Camera.CameraType = "Scriptable"
-- Perform the camera transitions with Lerp continuously
animation:Play()
moveCamera(Camera.CFrame, cam1.CFrame, 1)
moveCamera(cam1.CFrame, cam2.CFrame, 2)
moveCamera(cam2.CFrame, cam3.CFrame, 0.5)
moveCamera(cam3.CFrame, cam4.CFrame, 6)
end)