Using animations and viewmodel in framework?

Hello! I have been working on an FPS recently and have made good progress, although I have been having some trouble replacing my current arms with a viewmodel, or Rigged arms. I want to have animation for it and can seem to find any tutorials on how to implement it. My animation system currently consists of CFrames but it won’t work for more advanced animations reloading, etc. Please can I get some advice about this from a skilled scripter? I dont want to stop this now.

Part I think is what matters.

	--setup weapon data module
	WeaponData = require(GunModules:WaitForChild(weapon))

	maincf = WeaponData.MainCFrame
	larmcf = WeaponData.LArmCFrame
	rarmcf = WeaponData.RArmCFrame

	--setup arms to camera
	LArm = RS:WaitForChild("Left Arm"):Clone()
	LArm.PrimaryPart = LArm:WaitForChild("Main")
	LArm.Parent = cam
	for i, part in pairs(LArm:GetChildren()) do
		if part:IsA("BasePart") then
			part.Anchored = true --Make all the parts anchored so it won't fall off
			part.CanCollide = false --make all the parts can't collide so the character won't fly
		end
	end

	RArm = RS:WaitForChild("Right Arm"):Clone()
	RArm.PrimaryPart = RArm:WaitForChild("Main")
	RArm.Parent = cam
	for i, part in pairs(RArm:GetChildren()) do
		if part:IsA("BasePart") then
			part.Anchored = true --Make all the parts anchored so it won't fall off
			part.CanCollide = false --make all the parts can't collide so the character won't fly
		end
	end

	--setup weapon to camera
	WeaponInHand = GunModels:WaitForChild(weapon):Clone()
	WeaponInHand.PrimaryPart = WeaponInHand:WaitForChild("Handle")
	WeaponInHand:WaitForChild("Muzzle").Fire.SoundId = WeaponData.ShootId
	WeaponInHand.Parent = cam
	for i, part in pairs(WeaponInHand:GetChildren()) do
		if part:IsA("BasePart") then
			part.Anchored = true --make all the parts anchored so it won't fall off
			part.CanCollide = false --make all the parts can't collide so the charcter won't fly       
		end
	end
end