I tried so many times but it is works very bad
My current code:
local camera = game.Workspace.CurrentCamera
local player = game.Players.LocalPlayer
local viewmodel = game.ReplicatedStorage.Viewmodel:Clone() -- Это ссылка на Viewmodel
viewmodel.Parent = workspace
local cf = CFrame.new()
local lastcf = camera.CFrame
-- Настроим позицию и ориентацию viewmodel
local function updateViewModelPosition()
local lobzik = camera.CFrame:ToObjectSpace(lastcf)
local x,y,z = lobzik:ToOrientation()
cf = cf:Lerp(CFrame.Angles(x,y,0), .1)
viewmodel:SetPrimaryPartCFrame(camera.CFrame)
viewmodel.HumanoidRootPart.CFrame = viewmodel.HumanoidRootPart.CFrame * cf
lastcf = camera.CFrame
end
game:GetService("RunService").RenderStepped:Connect(updateViewModelPosition)
and video:
And example: