Help with camera manipulation difficult script [video + script]

  1. What do you want to achieve? I put a video of what I would like my character to do and a video of what my character does on my game. Please watch them they explain the situation better than words. I put the most important parts of the script just below with prints to understand better. Thank you all sorry for the long post i would like to fix this…

  2. What is the issue?

Print('HERE IS THE CAMERA TWEEN WHEN PLAYER JOIN, CAMERA IS SCRIPTABLE')
local ok
ok = RunService.RenderStepped:Connect(function(step)
	Timer += step
	if Timer >= TimerMax then
		Timer = 0
		local goal = {CFrame = root.CFrame * CFrame.Angles(math.rad(-40),0,0) + Vector3.new(0,10,7)}
		local tweeninfo = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.In, 0)
		local tween = tweenservice:Create(camera, tweeninfo, goal)
		tween:Play()
	end
end)

Print('PLAYER TOUCH THE LEFT GUI SO GO TO THE LEFT')
plr.PlayerGui.ScreenGui.Deplacement.gauche.MouseEnter:Connect(function()
	plr.PlayerGui.ScreenGui.Deplacement.gauche.BackgroundColor3 = Color3.new(0.231373, 1, 0)
	if NoBug.Value == 2 then
		game.ReplicatedStorage.gauche:FireServer(plr)
	end
	if NoBug.Value == 1 then
		NoBug.Value = 2
	end
	if ok.Connected == true then
		ok:Disconnect()  
    Print('HERE THE FIRST RENDERSTEP IS DISCONNECTED FOR THE NEW ONE')
	end
	wait(0.1)
	plr.PlayerGui.ScreenGui.Deplacement.gauche.Visible = false
	plr.PlayerGui.ScreenGui.Deplacement.Visible = false
	local goal = {CFrame = root.CFrame * CFrame.Angles(0,math.rad(90),0) + Vector3.new(0,0,0)}
    Print('HERE THIS IS THE NEW ORIENTATION')
	local tweeninfo = TweenInfo.new(0.2, Enum.EasingStyle.Linear, Enum.EasingDirection.In, 0)
	local tween = tweenservice:Create(camera, tweeninfo, goal)
	tween:Play()
	wait(0.2)
	local Gauche 
	Gauche = RunService.Heartbeat:Connect(function(step)
		Timer += step
		if Timer >= TimerMax then
			Timer = 0
			local goal2 = {CFrame = root.CFrame * CFrame.Angles(math.rad(-40),0,0) + Vector3.new(0,10,7)}
			local tweeninfo2 = TweenInfo.new(0.5, Enum.EasingStyle.Linear, Enum.EasingDirection.In, 0)
			local tween2 = tweenservice:Create(camera, tweeninfo2, goal2)
			tween2:Play()
            Print('HERE THIS IS THE NEW PLAYER CAMERA FOLLOWING')
		end
	end)
	plr.PlayerGui.ScreenGui.Deplacement.gauche.BackgroundColor3 = Color3.new(1, 1, 1)
	plr.PlayerGui.ScreenGui.Deplacement.gauche.Visible = true
end)

Here is my game :

Here is what i want my character do :

Hello, I am still concerned by this problem, thank you