For the Vive, is there a way to stop the user from being able to walk around the scene while preserving the ability to move up and down…
Let me explain…
I have an interior where the user can use a xbox controller to walk around. The user collides with walls etc. However, on the vive, this is fine until the user takes a step in any direction in the real world. When this happens, the user does through the wall they’re colliding with. If they take a step back, they’d walk up some stairs later than they should be.
To cut a long story short, it’s all messed up.
I’d like the user to be able to control their movement in game with the controller but tell Unreal and/or the Vive to not let them move in the real world…
However, I’d still like them to move in Z (up and down).
I would make a custom Chaperone like system, but much smaller. If the player moves the head through it, fade out the view to force a move back.
This way the player still gets the comfort advantages of positional tracking. You can also have an option to always show your “Chaperone” during stick movements as this tends to reduce motion sickness.
In “The Bellows” (free demo on Steam, youtube) they have blocked movement when the VR pawn hits walls (in room-scale as well as sliding).
It makes for a pretty uncomfortable experience (you are walking in the world but your VR pawn is jittering against a wall). The discomfort factor actually works quite well because after doing it once you avoid bumping into walls and acknowledge them as ‘solid’
When I saw that demo I assumed they were just pushing the VR pawn back on collisions, but I’m new at Unreal Engine so forgive me if that isn’t as simple as it sounds!
I did some experiments by moving the player pawn location in the opposite direction to the hmd movement, so the hmd remains at the same location in the world. This works reasonably well, but it was somewhat uncomfortable to look around since when you look around the hmd isn’t exactly rotating around 0,0,0, there are small translations too. It might be possible to have a deadzone and/or not shift the pawn if the hmd is only making small moves, but I got distracted with something else and didn’t look into this further.
I’m doing full world collision with a character capsule using two seperate methods in my plugin, its open source so it can be used for a reference / ideas.