How to make arms move more relatively to the camera

I’m trying to make a viewmodel without fake arms. But the arms won’t move relatively to the camera.
How can I possibly calculate positions that are relative to the camera for the player’s arms?

Expected:

Mine:

Code that calculates this movement:

		if leftshoulder and leftarm then
			leftshoulder.C0 = CFrame.new(-1, 0.25, 0.15) * CFrame.Angles(math.rad(55) + math.asin((Mouse.Hit.p - Mouse.Origin.p).unit.y), math.rad(-90), math.rad(52))
		end
		if rightshoulder and rightarm then
			rightshoulder.C0 = CFrame.new(1, 0.25, 0.15) * CFrame.Angles(math.rad(105) + math.asin((Mouse.Hit.p - Mouse.Origin.p).unit.y), math.rad(90), math.rad(-104))
		end

This could or may not be the proper answer but you’d have to know that the Camera is always in the head and moving your head or body doesn’t move the camera from the head at all times, I suggest making a system with a camera rotation using humanoid. camera offset where when you look down the camera moves down but further from the neck and when up the camera moves backwards from the neck but a little bit down still. I managed it so I know you can too.