Help with a sliding/drifting mechanic

I’m currently trying to make the starterplayer a car and i need the car to slide like drifting but i dont want to use customphysicalproperties as i need the player to do ramps and jumps, if i use that the sliding in air is not affected, this is my startercharacter, its r15
image
i have tried to use vectors and align position and nothing is working, heres one of my attempts

local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")

local alignPosition = Instance.new("AlignPosition")
alignPosition.Parent = humanoidRootPart
alignPosition.Attachment0 = humanoidRootPart:FindFirstChild("RootAttachment") or Instance.new("Attachment", humanoidRootPart)
alignPosition.Attachment1 = Instance.new("Attachment", humanoidRootPart)

alignPosition.RigidityEnabled = true
alignPosition.ReactionForceEnabled = false
alignPosition.Responsiveness = 200
alignPosition.MaxForce = 1000000
alignPosition.MaxVelocity = 1000000

local function updateAlignPosition()
	alignPosition.Attachment1.CFrame = humanoidRootPart.CFrame
end


updateAlignPosition()

game:GetService("RunService").Heartbeat:Connect(updateAlignPosition)

character.AncestryChanged:Connect(function(_, parent)
	if not parent then
		if alignPosition.Attachment1 then alignPosition.Attachment1:Destroy() end
		if alignPosition then alignPosition:Destroy() end
	end
end)

its a local script in starterplayerscripts, this is what im trying to achieve

bump, because i need to fix this issue fast

maybe you could use ControllerManager: