Im not sure what to put inside CFrame.lookAt()

im trying to make the player launch forwards but also rotate forwards some (like a football dive), i want them to rotate based off where theyre looking or humRP is looking at.

local player = game.Players.LocalPlayer
local UIS = game:GetService("UserInputService")
local char = player.Character or player.CharacterAdded:Wait()
local HumRP = char:WaitForChild("HumanoidRootPart")
local humanoid = char:WaitForChild("Humanoid")

local diving = false

UIS.InputBegan:Connect(function(input,isTyping)
	if isTyping then
		return end
	
	if not diving then
		if input.KeyCode == Enum.KeyCode.E then
			diving = true
			humanoid.Jump = false
			local front = HumRP.CFrame.LookVector
			local velocity = HumRP.Velocity
			local angleF = (velocity) / (velocity.Magnitude + front.Magnitude)
			
			
			HumRP.AssemblyAngularVelocity = CFrame.lookAt() -- not really sure what to put here
			HumRP.Velocity = Vector3.new(velocity.x,2,velocity.z) * 3.5
			humanoid.PlatformStand = true
			task.wait(0.5)
			diving = false
		    humanoid.PlatformStand = false
		end
	end
end)

what im trying to achieve - YouTube – what im trying to achieve
what i currently have made - YouTube – what i currently have created

Could you show me an example of how it should look like ?

im pretty sure this works Bow and arrow problems - #5 by Kriosynic

this does fix the direction problem but also leaves another problem

state it right away

HELP MEEEE MY WORDSSSSS

well for the first thing im pretty sure i can just make it return end if theres no movement key detected as for the other problem where i get that jittery effect when i hit the ground im not sure what to do

when the player touches the ground, you disconnect the function that makes the character face at where its going so it does not jitter towards directions on where it’s going to eventually lead to next

image

i already am disconnecting the function but if i disconnect it before the first take.wait(.6) then the player doesnt rotate but it doesnt have the jitter

ok then the only solution i think can work is to instead set a function that checks if the humanoid’s floor material is changed to an enum that is not “Air” then in the function you disconnect it