How can I make it so the camera follows the head instead of the humanoid? [[REPOST]]

.CameraSubject doesn’t work since it only tracks the position and not the rotation.

a̶l̶s̶o̶ ̶i̶s̶t̶g̶ ̶i̶f̶ ̶s̶o̶m̶e̶o̶n̶e̶ ̶l̶i̶n̶k̶s̶ ̶m̶e̶ ̶t̶h̶e̶ ̶"̶c̶a̶m̶e̶r̶a̶ ̶m̶a̶n̶i̶p̶u̶l̶a̶t̶i̶o̶n̶"̶ ̶a̶r̶t̶i̶c̶l̶e̶ ̶f̶r̶o̶m̶ ̶t̶h̶e̶ ̶d̶o̶c̶u̶m̶e̶n̶t̶a̶t̶i̶o̶n̶ ̶s̶a̶y̶i̶n̶g̶ ̶"̶t̶h̶e̶r̶e̶ ̶m̶i̶g̶h̶t̶ ̶b̶e̶ ̶s̶o̶m̶e̶t̶h̶i̶n̶g̶ ̶u̶s̶e̶f̶u̶l̶ ̶i̶n̶ ̶t̶h̶e̶r̶e̶"̶ ̶i̶m̶ ̶g̶o̶n̶n̶a̶ ̶p̶u̶n̶c̶h̶ ̶a̶ ̶h̶o̶l̶e̶ ̶i̶n̶ ̶m̶y̶ ̶w̶a̶l̶l

put this inside playercharacterscripts and make it a local script

local plr = game.Players.LocalPlayer
plr.CharacterLoaded:Wait()
while true do
wait(0.01)
game.Workspace.CurrentCamera.CameraSubject = plr.Character.Head
end

that doesn’t give the effect that i want

docs says it does change the rotation. what’s your cameratype and how are you changing the head’s rotation?

game:GetService("RunService").Heartbeat:Connect(function()
workspace.CurrentCamera.CFrame = character.Head.CFrame
end)

try this one

it makes my camera go spin for some reason

my Camera.CameraType is Enum.CameraType.Custom and i’ve tried setting the Camera.CameraSubject to Player.Character.Head but it only tracks the position

this script works but i cant move my camera anymore.

local char = game.Players.LocalPlayer.Character
local head = char:WaitForChild("Head")

local whitelist = {
	"UnionOperation",
	"Part",
	"BasePart",
	"MeshPart"
}

game:GetService("RunService").RenderStepped:Connect(function()
	workspace.CurrentCamera.CameraSubject = head
	workspace.CurrentCamera.CFrame = head.CFrame
	char:WaitForChild("Humanoid").AutoRotate = false
	for i, v in pairs(game.Players.LocalPlayer.Character:GetDescendants()) do
		if v.Name ~= "HumanoidRootPart" and table.find(whitelist, v.ClassName) and not v:FindFirstAncestorOfClass("Tool") then
			v.Transparency = 1
		end	
	end
end)

nvm, after some research i just did this :man_shrugging:

local char = game.Players.LocalPlayer.Character
local head = char:WaitForChild("Head")
local Humanoid = char:WaitForChild("Humanoid")
local root = char:WaitForChild("HumanoidRootPart")

game:GetService("RunService").RenderStepped:Connect(function()
	local currentCFrame = workspace.CurrentCamera.CFrame
	local rollCFrame = CFrame.Angles(0, 0, head.Orientation.Z - root.Orientation.Z)
	workspace.CurrentCamera.CFrame = currentCFrame * rollCFrame
end)

This is good enough.

What exactly are you trying to achieve? I am unsure what you mean exactly by “tracking the rotation of the head”

In this video the camera moves when the animation is played.
I want the same effect. but instead of the camera being animated, it’s the head that is being animated, and the camera is tracking the head automatically. i’ve already made an ok-ish solution, maybe you can come up with something better.

https://gyazo.com/e7564154a1508240d29cc96a04875b67