How to manipulate the camera if the camera jumps?

Good! I need help with this. I have the following script that manipulates the camera and it is fully functional, but. with jump I mean that the camera is in a place, and suddenly it moves towards where the script tells it (how to teleport), and what I want it to do is to see how the camera moves towards the direction. the script is an intro, you can test it if you want, the script creates the necessary things, you just need to put it in starterCharacterScripts

local TweenService = game:GetService("TweenService")

local Head = script.Parent:WaitForChild("Head")

local speed = script.Parent:WaitForChild("Humanoid")

speed.WalkSpeed = 0

local FolderParts = Instance.new("Folder")

FolderParts.Parent = workspace

FolderParts.Name = "Intro"

local parte = Instance.new("Part")

parte.Parent = FolderParts

parte.CanCollide = false

parte.Transparency = 1

local parte2 = Instance.new("Part")

parte2.Parent = FolderParts

parte2.CanCollide = false

parte2.Transparency = 1

local parte3 = Instance.new("Part")

parte3.Parent = FolderParts

parte3.CanCollide = false

parte3.Transparency = 1

local parte4 = Instance.new("Part")

parte4.Parent = FolderParts

parte4.CanCollide = false

parte4.Transparency = 1

local weld = Instance.new("Weld")

weld.Parent = parte

weld.Part0 = Head

weld.Part1 = parte

weld.C0 = CFrame.new(0,200,0)

local weld2 = Instance.new("Weld")

weld2.Parent = parte2

weld2.Part0 = Head

weld2.Part1 = parte2

weld2.C0 = CFrame.new(0,100,0)

local weld3 = Instance.new("Weld")

weld3.Parent = parte3

weld3.Part0 = Head

weld3.Part1 = parte3

weld3.C0 = CFrame.new(0,10,0)

local weld4= Instance.new("Weld")

weld4.Parent = parte4

weld4.Part0 = Head

weld4.Part1 = parte4

weld4.C0 = CFrame.new(0,0.15,12)

parte.Orientation = Vector3.new(-90, 0, 0)

parte2.Orientation = Vector3.new(-90, 0, 0)

parte3.Orientation = Vector3.new(-90, 0, 0)

local camera = game.Workspace.Camera

local cutsceneTime = 0.5

local tweenInfo = TweenInfo.new(

cutsceneTime,

Enum.EasingStyle.Sine,

Enum.EasingDirection.Out,

0,

false,

0)

function tween (parte, parte2, parte3, parte4)

camera.CameraType = Enum.CameraType.Scriptable

camera.CFrame = parte.CFrame

wait(2.5)

local tween = TweenService:Create(camera, tweenInfo, {CFrame = parte2.CFrame})

tween:Play()

wait(1.1)

local tween2 = TweenService:Create(camera, tweenInfo, {CFrame = parte3.CFrame})

tween2:Play()

wait(1.1)

local tween3 = TweenService:Create(camera, tweenInfo, {CFrame = parte4.CFrame})

tween3:Play()

wait(1.1)

camera.CameraType = Enum.CameraType.Custom

speed.WalkSpeed = 25

parte:Destroy()

parte2:Destroy()

parte3:Destroy()

parte4:Destroy()

end

tween(parte, parte2, parte3, parte4)

If the script is for an intro, simply create a scene then animate it in Moon Animator. If you already don’t know how to weld things there are videos out there that can teach you how to weld things to make them animatable. Simply weld a block called CameraBlock or something to a block called “HumanoidRootPart” then group them and set the model’s primarypart to the humanoidrootpart. This video should help with learning how to animate the camera and stuff. And since you are animating an actual block, its exportable and all you have to do is play the animation and set the Camera’s CFrame to the block’s CFrame using RunService

ALSO Instead of animating the actual camera in moon animator like the guy does, in moon animator go to camera, then press add camera.Then in the little box in the timeline click the tiny wrench and press attachtopart then click ok. After this click the attachtopart row, press the “+” key, then click the keyframe, and click track and go to edit track items. after you are in edit track items go to value, then click set and then go into explorer and click the camera block you have. This will set the camera’s CFrame to the block’s CFrame to see how you are animating the camera

srry for such a long explanation but its still easier than manually tweening and positioning the camera