How to access and use Oculus Home stored forward direction?

Hi,

I would like to have my game doing the same as when you start up Oculus Home.
‘Forward’ in Home seems to always be in the same direction, as defined during the setup.

But when I launch a game in Unreal ‘Forward’ seems to be set to the direction the HMD is pointing at the time of start.
A reset does not help as that also just puts forward in front of where you are looking, understandably.

But I want to achieve the effect of starting Oculus Home, orient my HMD/World so that it lines up with the orientation stored during Oculus setup.

Does anyone know how I can do that?

Cheers

I don’t think there is anything like a calibration direction defined during the setup. At least, and to my knowledge, there is nothing in the Oculus API’s hinting to that (like a struct to maintain that information or a method to retrieve it).

It is more likely that the Oculus Home uses an eye-level tracking origin, which defaults to 1 meter in front of the sensor, and detects when the HMD is worn to re-center the player on the fly.

Someone has partially reversed engineered the Oculus Home, which is built with Unity btw, and found that there is some code detecting whether the user is standing, sitting or even crouching. Not sure however how this code looks like and even if it is currently in use. They may have implemented some advanced auto-orientation method which uses the sensor location for example. Have you tried to start the Oculus Home but face in a completely different direction (e.g. away from the sensors)?

You may achieve something similar in your experiences by offering a VR re-center function. This can be done semi-automatically or on demand. A trick is to start the experience by placing the user inside a sphere (or cube) parented to the VR camera and displaying some titles or disclaimer in it. By asking the player the place themselves comfortably, face forward and press a key to continue/accept the disclaimer, you can assume that position as their new preferred orientation and call a Reset Orientation and Position to set it.

Hi Marco and thanks for your suggestions!
I have posted the same question on Oculus’ forums and bumped it but no Oculus staff seem interested to answer it.
They’re generally pretty slow at answering anything there.

The ‘Eye Tracking Origin’ thing sounds interesting. At least that would be better than nothing and maybe possible for me to use.
I’ll take a look and see if I can get it through Blueprints. If not maybe it’s not too hard to make a node to return it.

Yeah I already have the manual user orientation setup going but I really want the user experience to be as friction less as possible and was hoping to be able to avoid an annoying step.
If Oculus can do it then it must be possible somehow.

Cheers

Happy to have helped. You can definitely get the position of the sensor cameras in World Space and try do something with that information.

I remember having made a concept some time ago where I could display the sensor cameras in their world position like during the Oculus setup. It is pretty impressive that you can extend your arm in VR, reach for the virtual sensor and have your finger touch exactly the real sensor at the same as the one in VR. Gives an idea of how precise the whole stereo rendering pipeline and movement tracking are. Anyways, I am digressing…

Keep us posted on your progresses!

I started building something but then suddenly I had a reply at the Oculus forums where they said that should now have been fixed.
I am using UE4.17 but just installed 4.18 to test what he said.

And yes it does seem to work now in 4.18. At least for my setup! :slight_smile:

That’s great as it would have been a bit of work to try to cover as many Sensor configurations as possible with the sensor position approach.
It was fun having a go though.

Don’t think it is fully correct in 4.18, 4.19 master has this recent addition, that is unless it was corrected in 4.18.1 and 4.19 simultaneously which is possible.

Regardless it was a known issue.



 Removing Oculus call to reset tracking origin on initialization (so we respect the play space that was calibrated in oculus setup) - ensuring parity w/ Vive (fixing regression).