Магией делай. Камеру можно передвигать с помощью локального скрипта.
workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable --перевод камеры в режим скриптования.
Предоставленной выше строчкой, я указал способ переведния камеры в режим способности к скриптованию. Это должно быть первой строчкой локального скрипта камеры.
workspace.CurrentCamera.CFrame = xxx
Команда выше отвечает за установку положения камеры. сам объект камер может быть использован при плавном перемещении камеры через TweenService.
workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
Команда выше позовляет перевести камеру в исходное состояние после катсцены. В основном является последней строчкой локального скрипта на камеру.
Сам локальный скрипт на камеру должен быть перемещён серверным в модель персонажа. Ниже оставлю пример, как это делается.
local char = humanoid.Parent
local camScript = script.LocalScript --или иной путь к локальному скрипту
camScript:Clone().Parent = char
В начале локального скрипта можно поставить строчку
wait(0.1)
так как часто скрипты могут не запускаться без конкретного ожидания, указанного изначально в коде скрипта.
В основном дальше ты можешь разобраться сам, максимум, что могу дать, это отрывки кода для вопроизведения анимаций. но если ты и таких простых вещей не знаешь - то до создания популярных игр тебе далеко.