First, change the Camera’s CameraType to Scriptable as follows:
local camera = game.Workspace.CurrentCamera
camera.CameraType = Enum.CameraType.Scriptable
Now it’s all up to you. Do you have experience with Tween Service? If so, you can easily tween the camera’s CFrame property as you would with any part to create unique cutscenes.
You can get the position of the camera by “camera.CFrame.Position”
If you mean changing the way the viewport works, not the actual position of the camera, then I supposed you could manually change and tween the FOV and DFOV.
I cant have a video example, but i can try record some from The Rake Thunder Remake, where is this used, or you can just go check it out, skew and stretch will happen when rake is chasing you.
So are you trying to make sort of a Camera bobbing like in the rake?
It seems it’s not a hard deal what they’re doing.
Their camera system always do sine waves;
What you can do, it’s either create a new camera system, or use default in Camera.CameraType = Enum.CameraType.Custom
So you can do in a loop;
Camera.CFrame = Camera.CFrame * CFrame.Angles(math.sin(tick()),0,0)
You can also use Camera.Focus, but right now on mobile so can’t help much
Stretching would definitely be done with Field of View.
You could create a bobbing or shaking effect by rapidly moving the camera up and down a short distance. This is accomplished by tweening the camera’s CFrame property.
Also, as outlined in this article, do not approach this if you’re making your game VR-compatible.
you can do a camera shake effect by changing a humanoids CameraOffset randomly
for i = 1, NumberOfMovements do
local x = math.random(-Intensity,Intensity)/100
local y = math.random(-Intensity,Intensity)/100
local Property = {CameraOffset = Vector3.new(x,y,0)}
local TweenInf = TweenInfo.new(TimeBetweenMovement, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local Tween = tweenservice:Create(CamSubject, TweenInf, Property)
Tween:Play()
wait(TimeBetweenMovement)
end