How to make the camera bob the opposite way?

So, in this topic: How do i making camera bobbing like this one - #4 by zaydoudou
the solution is pretty great. It’s working perfectly, other than the fact that the camera bobs the opposite way I want it to. When I move to the right, the camera tilts left, and vice versa. How can I make it so that when I move right, the camera tilts right?

The code:

local runService = game:GetService("RunService")

local plr = game.Players.LocalPlayer
local chr = plr.Character
local humrootpart = chr:WaitForChild("HumanoidRootPart")
local hum = chr:WaitForChild("Humanoid")
local cam = workspace.Camera

local tiltSpeedZ = 0.1
local bobbingSpeed = 0.1

local tilt = 0
local sinValue = 0

function lerp(a, b, t)
	return a + (b - a) * t
end

function calculateSine(speed, intensity)
	sinValue += speed 
	if sinValue > (math.pi * 2) then sinValue = 0 end
	local sineY = intensity * math.sin(2 * sinValue)
	local sineX = intensity * math.sin(sinValue)
	local sineCFrame = CFrame.new(sineX, sineY, 0)
	return sineCFrame
end

local previousSineX = 0
local previousSineY = 0
runService.RenderStepped:Connect(function(dt)
	local movementVector = cam.CFrame:vectorToObjectSpace(humrootpart.Velocity / math.max(hum.WalkSpeed, 0.01))
	local speedModifier = (hum.WalkSpeed / 16)
	tilt = math.clamp(lerp(tilt, movementVector.X * tiltSpeedZ, 0.1), -0.25, 0.1) 

	local sineCFrame = calculateSine(bobbingSpeed * speedModifier, movementVector.Z * speedModifier)
	local lerpedSineX = lerp(previousSineX, sineCFrame.X, 0.1)
	local lerpedSineY = lerp(previousSineY, sineCFrame.Y, 0.1)

	cam.CFrame *= CFrame.Angles(0, 0, tilt) * CFrame.new(lerpedSineX, lerpedSineY, 0)
	previousSineX = lerpedSineX
	previousSineY = lerpedSineY
end)
1 Like

Change line 45 to this:cam.CFrame *= CFrame.Angles(0, 0, -tilt) * CFrame.new(lerpedSineX, lerpedSineY, 0)

You just have to add a minus - to the tilt in the CFrame.Angles

Im not really a good scripter but I hope this helped.