Blueprint How To: Glide Walk instead of Teleport?

I’m trying to find the best method to enable glide walking instead of teleporting and could use some guidance.

Using the VR template I’ve got glide walking on the x,y axis to work fine but getting the z axis difference for stairs etc is more tricky. I’ve tried a line trace difference to the floor before and after the x,y movement but it appears buggy. I was wondering if I should spend any more time on it, or try and re-create the MotionControllerPawn from the DefaultPawn parent class so I could use the AddMovementInput function. Ideally, I’d like to use a NavMeshVolume, walk slope angles etc to determine where the player can walk but I don’t know how to use them for player controllers, or even if they’re accessible to Pawn and/or DefaultPawn siblings.

Thanks for any help.

Can you pipe the location you want to move to through ProjectPointToNavigation? Would the output of that work for navigating stairs etc? ie returning the closest point on the navmesh to the point you provide.

Yes, thanks. That works.

I was using another solution that works for any physical volumes; I attached a SpringArm to the camera, rotated vertically and use the GetSocketLocation to get the length of the spring arm. With an arm longer than the player can jump, the arm length will always hit the floor (if any) and you can work out the difference in floor height independent of the HMD.

Using the Navmesh is the way to go though otherwise the AI won’t be able to reach the player.

If anyone else is interested a more fleshed out solution you could check out mordentral’s VR Expansion Plugin. It’s based on the Character class so has movement and collision built in.