Silly me. It was an easy problem!
1 Like
I suppose this has something to do with the ordering of CFrame angles. Try fromEulerAnglesYXZ
instead of Angles
.
At line 15, I found that multiplying X by 2 was causing the issue but for me multiplying X by 0 and clamping Y of minimum -50 fixed the issue for me. but I’m not sure if this is the way you want the camera to behave.
local LookCF = HeadCF*CFrame.Angles(-math.rad(CamAngle.Y),-math.rad(CamAngle.X),0):Inverse()*CFrame.new(2,3,5)
fixed code
local Camera = workspace.CurrentCamera
local Player = game.Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Head = Character:WaitForChild("Head")
local UIS = game:GetService("UserInputService")
local RS = game:GetService("RunService")
local CamAngle = Vector2.new(0,0)
Camera.CameraType = Enum.CameraType.Scriptable
local function Update(dt)
UIS.MouseBehavior = Enum.MouseBehavior.LockCenter
local HeadCF = CFrame.new(Head.Position)
local LookCF = HeadCF*CFrame.Angles(-math.rad(CamAngle.Y),-math.rad(CamAngle.X),0):Inverse()*CFrame.new(0,3,5)
Camera.CFrame = CFrame.new(LookCF.Position,HeadCF.Position)
end
RS.RenderStepped:Connect(Update)
UIS.InputChanged:Connect(function(Input, GPE)
if Input.UserInputType == Enum.UserInputType.MouseMovement then
local Delta = UIS:GetMouseDelta()
local X = CamAngle.X - Delta.X
local Y = CamAngle.Y - Delta.Y
Y = math.clamp(Y, -50, 89)
CamAngle = Vector2.new(X,Y) * UIS.MouseDeltaSensitivity
end
end)
Definitely not the solution because i previously did that.
To @Y_VRN.
Ill test it tomorrow i got an idea.
1 Like
Fixed it. I just used this persons Cool FPS camera script for horror, fps, adventure games that is my alt accounts code that I previously made and forgot. Thanks for the help!