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:
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?
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
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