Smooth camera movement with offset

create a part, then set the camerasubject to this part
in a function bound to render step with camera.priority + 1:
lerp the part to rootPart.Position + rootPart.CFrame.LookVector * offset (adjust offset as needed)

or you can also look into camera spring modules i think ive seen before

--untested pseudocode

local RunService = game:GetService("RunService")

local cameraPart = Instance.new("Part", workspace)
cameraPart.Size = Vector3.new(1,1,1)

RunService:BindToRenderStep(Enum.RenderPriorty.Camera.Value + 1, function()
  local targetPosition = rootPart.Position + rootPart.CFrame.LookVector * 2 -- adjust the 2 as needed
  local newPosition = cameraPart.Position:Lerp(targetPosition, 0.5) -- adjust the 0.5 as needed
  cameraPart.Position = newPosition
end)
3 Likes