Hey, so once again I’m coming to you guys, the intellectuals of ROBLOX for help.

If you guys have ever played Batman Arkham Knight, you’d know about their gliding mechanic as seen here:

and I had an idea, to implementing it, I decided that I would have a BodyVelocity relative to the HumanoidRootPart and have a set Magnitude that multiplies the LookVector for Velocity. (Done)

then I decided I’d rotate the HumanoidRootPart based on the Camera’s LookDirection (Done)

and now all I had to do was make the gliding realistic…

I wanted to decrease the magnitude over time, to simulate drag and then I wanted to have the magnitude also be edited based on the Angle of direction, so like when the Camera looks up the Magnitude is decreased, but when looking down it increases… that kind of thing to get that whole stalling and diving effect…

My problem is I don’t know the math behind this, I have the logic and idea for it down ( I think ) but the math behind it is kind of beyond me, can someone explain how this would be accomplished in mathematical terms?