Making arms and head go up and down?

Hi there!

I know that this post already exists, but nobody found a solution. That’s why i make this post. I’m trying to achieve exactly the same as the guy in the post i mentioned. Does anybody know how to do this?

~Regards, TheRealNcMaster

Do you want any limits on the rotation?

I believe I found the solution: Need help with torso and head following mouse - #7 by CleverSource

Hey! I just got the thing for you!

local Rshoulder = character:FindFirstChild("Right Shoulder", true)
local Lshoulder = character:FindFirstChild("Left Shoulder", true)
local playerMouse = game.Players.LocalPlayer:GetMouse()
local CFNew, CFAng = CFrame.new, CFrame.Angles
local asin, pi = math.asin, math.pi

local rightX, rightY, rightZ = Rshoulder.C0:ToEulerAnglesYXZ()
local leftX, leftY, leftZ = Lshoulder.C0:ToEulerAnglesYXZ()
			
Rshoulder.C0 = (Rshoulder.C0 * CFAng(0, 0, -rightZ)) * CFAng(0, 0, asin((playerMouse.Hit.p - playerMouse.Origin.p).unit.y))
Lshoulder.C0 = (Lshoulder.C0 * CFAng(0, 0, -leftZ)) * CFAng(0, 0, asin((-playerMouse.Hit.p - -playerMouse.Origin.p).unit.y))

-- head move thing

local CameraDirection = character:WaitForChild("HumanoidRootPart").CFrame:toObjectSpace(camera.CFrame).lookVector
local neck = character:FindFirstChild("Neck", true)
local YOffset = neck.C0.Y

neck.C0 = CFNew(0, YOffset, 0) * CFAng(3 * math.pi/2, 0, math.pi) * CFAng(0, 0, -asin(CameraDirection.x)) * CFAng(-asin(CameraDirection.y), 0, 0)

Might need some tweaking with the variables. Enjoy!

1 Like

Thank you! I’ll try it out and let you know if it worked.
(Sorry for the late response…)