Here is a script that rotates the player's head depending on where their camera is facing however I would only like it to rotate on the x axis rather than the x and y axis?
How would I do this?
local CFNew, CFAng, CFtoObjectSpace = CFrame.new, CFrame.Angles, CFrame.new( ).toObjectSpace
local asin, pi, hpi = math.asin, math.pi, math.pi / 2
local Plr= game.Players.LocalPlayer
game:GetService("RunService").RenderStepped:Connect(function()
if Plr.Character then
local Root, Neck, Humanoid, Camera = Plr.Character:FindFirstChild("HumanoidRootPart"), Plr.Character:FindFirstChild("Neck", true), Plr.Character:FindFirstChild("Humanoid"), workspace.CurrentCamera
if Root and Neck and Humanoid and Camera.CameraSubject then
local R6 = Humanoid.RigType == Enum.HumanoidRigType.R6
if Camera.CameraSubject.Parent == Plr.Character then
local CameraDirection = CFtoObjectSpace(Root.CFrame, Camera.CFrame).lookVector.unit
Neck.C0 = CFNew(Neck.C0.p) * CFAng(0, -asin(CameraDirection.x), 0) * (R6 and CFAng(-hpi + asin(CameraDirection.y), 0, pi) or CFAng(asin(CameraDirection.y), 0, 0))
else
Neck.C0 = R6 and CFNew(Neck.C0.p) * CFAng(-hpi, 0, pi) or CFNew(Neck.C0.p)
end
end
end
end)

1 comment
Replace the
asin(CameraDirection.x)term with 0. Also, are you aware this will not replicate? You will see your own character look up and down, but no one else will see your character's head moving.