local RunService = game:GetService("RunService")
local character = script.Parent
local rootPart = character:WaitForChild("HumanoidRootPart")
local humanoid = character:WaitForChild("Humanoid")
-- Отключаем стандартный плавный поворот Roblox, чтобы управлять им вручную
humanoid.AutoRotate = false
RunService.RenderStepped:Connect(function()
local moveDir = humanoid.MoveDirection
-- Проверяем, движется ли игрок (чтобы не сбрасывать ротацию в 0,0,0)
if moveDir.Magnitude > 0 then
-- Создаем CFrame, который смотрит в сторону движения
-- Используем позицию RootPart и добавляем вектор направления
local targetCFrame = CFrame.lookAt(rootPart.Position, rootPart.Position + moveDir)
-- Устанавливаем CFrame моментально
rootPart.CFrame = targetCFrame
end
end)