I've recently learned how you can achieve a camera distortion like effect, but I'm having trouble with the CFrame rotation matrix

I want to achieve a distortion effect like the one used in @Maximum_ADHD’s un-copylocked place . Place download/link here: camera distortion.rbxl (266.8 KB), https://www.roblox.com/games/1347593653/Super-Camera-Skewer-64

Obviously, I’d tween it via script, but I hope you get the idea.

Playing around with the values in that place made me jot down some ranges for camera distortion.

-- ranges I should use (using approximate values shown in video.)
-- R0 (0.8, 1)
-- R1 (-0.2, 0.2)
-- R10 (-0.6, 0.6)

So I thought it’d be as simple as plugging in the values into a tween and playing it, but it looks like this. I created a function that returns a random number.

local function getRandomMatrix()
	local matrix = {
		R00 = random(0.8, 1), -- random is a custom function defined at the top of the script (returns a random value between two numbers.)
		R01 = random(-0.2, 0.2),
		R10 = random(-0.6, 0.6)
	}
	
	return matrix
end

Then the tween part looks like this.

for i = 0, random(8, 12) do
	local matrix = getRandomMatrix()
	local tween = TweenService:Create(camera, info, {
		CFrame = camera.CFrame * CFrame.new(0,0,0, matrix.R0, matrix.R01, 0, matrix.R10)
	})
	tween:Play()
end

But the result looks like this.

How do I properly use the manipulate the camera’s rotation matrix?

10 Likes

have you found a solution yet? I still had no luck finding one.