Has anyone tried to get their in-game floor to match up right with their real-world floor? Like properly lined up, so you could theoretically get down and crawl on it? (I’ve got my tracking area setup perfectly for this, and it works in other games/apps and Oculus Home, but not in UE4.)
Nothing I’ve done seems to get things to line up correctly… Either the floor is in my standing-level chest, or it’s 1-2ft below my feet…
If I create a “Set Tracking Origin” node, and change it to Floor Level, that’s the best I’ve found so far, but it puts the floor seemingly 1-2 feet below where the real-world floor is… And that’s not good, it feels like you’re floating.
Altering where the camera component is located has no effect, and neither does altering the player-height settings for the character.
Why is this so complicated? The Oculus drivers/runtime supposedly has the floor/player height data stored and easily accessible, once you’ve done the Reset Default View in VR setup in Oculus Home. The floor lines up perfectly with my floor, so well I can even get down and crawl on it. This should be trivial, but it’s preventing me from getting any farther on my VR projects.
We’ve had endless problems with this - fudging it with the ‘Set Base Position and Rotation Offset’ node works, but only temporarily. We also found that after playing several times the HMD camera would change it’s offset for reasons we were unable to determine, usually only location (both floor height and translation in X or Y), and more rarely it would also flip 180 degrees.
The packaged game would also have a different offset to the editor
When working with the Vive in UE4 I noticed a similar problem. The camera would always be above where I wanted it. I think the source/base of the camera is in the middle of the capsule. Moving it down by half of the height will make it line up with the floor properly. I hooked up an Oculus in 4.11 and it looks like the floor level works running the same project. I attached a pic from my character blueprint:
Interesting, I’ll try doing that, when are you running that blueprint? Also what is that Scene component you’re also setting? just curious. lol
Anyway, I just updated to 4.12, and this still seems to be an issue. I’ve recreated my entire project from scratch in the new version, and still the floor is about 1ft too low…
This issue could be easily addressed/worked-around, if one of the UE4 developers in charge of VR support would chime in on this… maybe they’d know a better way for us to fix it, or could tell us when it will be fixed, so we can ignore it and move on.
EDIT: I’ve setup a blueprint the way you have it, but it doesn’t seem to have any effect, so I might be doing it wrong. lol
ah ok, that’s what I did, for the Camera component, dono if I need whatever that other “scene” component is, but it seems to have no effect on the player height in VR, the floor is still in the same place, below the IRL floor.
I’m not sure why other people are seeing these fixes work for them… But nothing seems to have any impact on this issue, for me… Everything else seems to be working fine… But this issue is starting to seem more and more like the player’s height in VR is currently hard-coded into the engine, as a set value, for like average 6ft tall people. lol
OK! So, based on pfranz and dansuciu’s way of describing their fixes, I’ve made a quick/simple image for myself and others, to remember how to fix this problem… At least until the UE4 dev’s fix it in-engine. lol
I hope this helps others, and is easy to understand:
Oh, um if you still need an answer, I think that function is automatically derived from the type of CapsuleComponent that was originally in the actor class I used.
What it does is finds the middle-height of the player, inverts it, and sets the relative location’s new Z to it. I’m not exactly sure why this fixes it, as this fix came from a couple other people, but I think you can also set this new Z to other things, and it will still fix the problem. Basically this allows you to control the camera’s position a bit better. If you set the Origin point to floor, I think the camera has to start on the floor, maybe.
For one of my projects, I don’t even have a Capsule Component, so I just manually set the position of the HeightBugFix component, and that works perfectly fine too, for cockpit games for example.