Smooth transition from camera type Scriptable to Custom

As the title suggests, I’m trying to make this camera transition look smooth and seamless. Going from Custom to Scriptable is fine, since there’s no jarring movement, but the opposite is looking a lot less smooth than I would like. Here’s a clip for reference:

External Media

Currently, the way I’m doing the transition is just tweening to a position relative to the player and then doing
camera.CameraType = Enum.CameraType.Custom

If there isn’t a way to do this normally, would I just experiment with the tweened position until I find the sweet spot?

Ur simply tweening it to the wrong position it seems to me

ye this was the last part of my post, was wondering if there’s a different way to do it

Maybe try saving the CFrame of the camera before setting it to custom and after the tween service is complete then set it to custom then set the CFrame to the one you saved

1 Like

This is a super simple script I made. Yes, it has its flaws, but it has the right idea for anyone wondering.

local TweenService = game:GetService("TweenService")
local Camera = workspace.Camera
local CameraObjects = workspace.CameraObjects

wait(5) -- waiting for char to load in fully

repeat wait() until Camera.CameraSubject ~= nil

local SavedCFrame = Camera.CFrame -- grab pos of camera while CameraType = Custom
Camera.CameraType = Enum.CameraType.Scriptable 

Camera.CFrame = CameraObjects.Scene1.Part1.CFrame -- we see what the front side of part1 sees
TweenService:Create(Camera, TweenInfo.new(1), {CFrame = CameraObjects.Scene1.Part2.CFrame}):Play() -- tween part1 to part2

wait(1.5) -- wait for tween to finish, with a .5s for a buffer

TweenService:Create(Camera, TweenInfo.new(1.2), {CFrame = SavedCFrame}):Play() -- tween part2 to the original pos of camera
wait(1.2)
Camera.CameraType = Enum.CameraType.Custom