Eye height with Vive Pre

Perhaps this is a duplicate of this other thread:

Using 4.10 and following this document [1] I can’t seem to get the height correct. I set “Base Eye Height” to 0.

Here’s a video I took to show the problem:

I start off in the SteamVR demo room. The headset is on the floor (and it shows up on the floor in VR), then I put it on. I’m just over 6ft tall. Then I start the UE project. This is the tutorial except I added text and 6 1ft x 1ft cubes for reference. The cubes should be about my eye level. I did not change any settings that weren’t mentioned in the tutorial for this example.

I’ve tried this setup quite a few times, tried playing with a bunch of options, and tested this in 4.11 betas with the new setups and options. Any ideas?

[1] unrelated, step 7 in that document should read, “set the Player Camera Manager Class to the VR_PlayerCameraManager that was created previously by clicking on the white box that says None and selecting VR_PlayerCameraManager”

So… the problem is that your eye height in VR doesn’t match your eye height in reality? Can you grab the HMD position and output it to screen? Can you verify that the Z value is 0 when its on the ground, and at 6 feet (~180cm)? Can you verify that moving the HMD up by 1cm in real world units translates to 1cm in UE4? If that is the problem, you should look at your world unit scales and verify they’re 1:1.

Thanks! Those steps helped me play with things a bit more and figure this one out.

Following that tutorial you spawn from PlayerStart and the pawn doesn’t have an explicit camera. My floor (in the real world) was set at the center of that PlayerStart, 92 units up (the Capsule Half Height of PlayerStart). If I move the PlayerStart down, so the middle is on the floor (and it says BADsize) the height is correct in scene.

This explains some of the cases I had where the controllers were offset from the HMD.

Thankfully the scale was fine.

Yeah, I’m supporting both the Vive and Rift. They behave a little differently.

Rift: Wherever you put the camera on the character, that’s where you put the HMD. I place it on my characters shoulders, so if the center of the character is [0,0,0], then his eye position is at [0,0,70]. I store this value in an “HMD Type Offset” vector.

Vive: This is based off of the very bottom of the characters feet, on the floor. So when the player picks up the vive HMD and puts it on their head, they move the camera to their own eye height, which should match up with the characters eye height. If the Vive is being used, I set my “HMD Type Offset” value to [0,0,-90], and then calibrate to the players height.

Slayemin, how can you find out whether the Vive or the Rift is being used, from within Blueprint?