Character tilting(with weapon) issue

I can’t explain but please look at this


image
I want to player tilt vertically, not curvy.
I think it’s because the animation rotates torso, and my script only changes a motor6d value

my code:

RunService.Heartbeat:Connect(function(dt)
	if not character then
		return
	end
	if not (character:FindFirstChildOfClass("Humanoid") and character.Humanoid.Health > 0 and character:FindFirstChild("Head")) then
		return
	end
	local neck = character.Head.Neck
	local waist = character.UpperTorso.Waist
	local rShoulder = character.RightUpperArm.RightShoulder
	local lShoulder = character.LeftUpperArm.LeftShoulder

	waist.C0 = waistC0 * CFrame.Angles(Theta*0.333, 0, 0)
	neck.C0 = neckC0 * CFrame.Angles(Theta*0.333, 0, 0)
	lShoulder.C0 = lShoulderC0 * CFrame.Angles(Theta*0.667, 0, 0)
	rShoulder.C0 = rShoulderC0 * CFrame.Angles(Theta*0.667, 0, 0)
end)

Thank you for reading this!