VR Camera motion - how to enable more than pivoting?

I built a level which is intended to be used in VR, but which doesn’t use the instantVR slice.

I
notice that in the VR Project levels, you’re able to walk around and move your head from side to side. This isn’t possible in our level - the
vr camera will only pivot. I guess this has something to do with room scale vs. seated play area, but I can’t confirm this by looking at the sample project - I don’t see anything that would enable that behavior.

I
also don’t know in general what in the LY code is translating HMD movement into camera movement, and I’d appreciate some information about
that as well as figuring out what it takes to enable full motion.

I discovered that the restriction was due to the use of tracking level “kfixed/2”. By default, the VR camera position always moves when the headset moves.

We set this tracking level to fix discrepancies in the height level between Oculus and Vive for our project. It certainly fixes the height, but it also prevents the camera from ever moving at all, except pivoting. Though our project does expect a seated play area, the total lack of movement is strange and can be disorienting.

We’ll have to copy the “teleport” behavior from the VR Sample Project to set the initial position of the camera correctly, since by default the camera location is set to the center of the play area. If you’re sitting at the edge of the play area, LY will see the offset and the headset camera will be moved accordingly. Our level setup expects the user’s HMD camera to be positioned where the camera entity is placed.