š„ Easy Camera Distortion and Manipulation (GONE WRONG) š„µš„µ **Professional edition**ā”šµļøā”
Want to make epic effects for your game? Want to amplify camera shake? Want to make parents cry after their child has been spotted breakdancing on the floor after playing your game?
Well this is the tutorial for you!
Using CFrame black magic you can create Camera Offsets like a custom shiftlock super ez! You and also uhhh like squish and stretch camera like in this video below! And many many more possibilities!!!
OMGMG SLENDERMAN VIDEO!! << YT link not IP grabber I swear!!
The MAGIC FORMULA
All you have to do is create the MAGIC FORMULA:
CFrame.new(X, Y, Z, R00, R01, R02, R10, R101, R12, R20, R21, R22)
And then simply change each component to the way you desire as listed below
X, Y, Z - Camera Position Offset (SUPER GOOD FOR MAKING CUSTOM SHIFTLOCK!!!)
R00 - Right Side and Left Side squish (For Default Camera = 1)
R01 - Up & down tilt
R02 - Volatile movement? Lmao I donāt know
R10 - Right & Left tilt
R11 - Top side and Back side squish (Default = 1)
R12 - Volatile movement?
R20 - Rotates camera left and right
R21 - Rotates camera up and down
R22 - Offbrand FOV changer (Default = 1. This kinda creates a similar effect to changing the FOV when you lower it closer to 0. Seizure warning for negative values!!)
Warning!!! - R20, R20, and R20 are super goofy and can cause very weird movement and camera effects
(Check the comments of this post for an example where it infects your monitor with the venom symbiote)
Also Note: I am pretty sure R00 to R22 cannot exceed a value of 1 maybe it can with some experimentation but thatās youāre problem
If youāre lazy and just want to apply this to robloxās default camera (which 99% of non sociopaths will)
Then all you have to do is to just multiply the MAGIC FORMULA with your current Cameraās CFrame every renderstep
This code below if put in a local script inside like something like uh StarterCharacter then it would apply the MAGIC FORMULAās power on the Cameraās CFrame
local Run = game:GetService("RunService")
local Cam = game.Workspace.Camera
local MAGIC_FORMULA = CFrame.new(X, Y, Z, R00, R01, R02, R10, R101, R12, R20, R21, R22)
Run.RenderStepped:Connect(function()
Cam.CFrame = Cam.CFrame * MAGICFORMULA
end)
If you want an explanation on why this works, I have no clue
But this very cool person, @BurningEuphoria has a clue and explained (using their 4021321032013021301 IQ brain) how it probably works
Burning also credits a ā3blue1brownā for their knowledge on what Iāll assume is the CFrame Matrix confolujunction idk I donāt speak math
Oh yeah Burning also linked this vid
Too lazy to copy link so youāre gonna have to type it manually on your own
Edit: Some more info from Burning (NO WAY!)
If you want to know where I stole all this info from, I got it from clonetooperās game below yes yes
Also credits to all those othe rdev formumc posisc that like um reditected my research back to this game
ā uwu