Forum Discussion
Ananas
13 years agoExplorer
Incorrect player height
I have two questions about the player height:
1. I have set my height (190cm) from the Oculus Configuration Utility and usually in Unity demos it shows a height of 1.797. That is the eye height? So 190cm minus ~10cm? Is the height from OCU being used in anywhere else?
2. Even though the height value is right, the scale doesn't feel right. Floor/ground seems to always be little too close. After setting the height manually to little over 200cm it starts to feel like a right scale.
Can this be fixed somehow so that both short and tall could enjoy the same experience? Although I feel like as a tall person, walking little lower below ground level doesn't feel as bad as a small person hovering too high above ground. :)
1. I have set my height (190cm) from the Oculus Configuration Utility and usually in Unity demos it shows a height of 1.797. That is the eye height? So 190cm minus ~10cm? Is the height from OCU being used in anywhere else?
2. Even though the height value is right, the scale doesn't feel right. Floor/ground seems to always be little too close. After setting the height manually to little over 200cm it starts to feel like a right scale.
Can this be fixed somehow so that both short and tall could enjoy the same experience? Although I feel like as a tall person, walking little lower below ground level doesn't feel as bad as a small person hovering too high above ground. :)
13 Replies
Replies have been turned off for this discussion
- virrorExplorerI guess this is a lot up to the game developer as well, if i remember correctly the "use player height" option is diabled as default so probably many are not using that. Also it might be problematic to use that if you intend on using a character model, then you need to scale that somewhat without making it look strange.
- AnanasExplorerBy adding ~1.2 to the OVRCameraController's Y-position I get the proper height. Might it have something to do with IPD?
- bdeschryverExplorerI don't understand how the IPD would relate to the eyes height.. Aren't they 2 differents settings (and unlinked) ?
- cheerioboyExplorerI just did some experimenting and found this:
- (working in 3dsmax) FBX export, convert to centimeters
- need to check 'user player eye height' from the OVRCameraController
- adjust Unity3d scale factor: .01075
- make sure the person viewing has their profile checked off as default in the Oculus Configuration Utility
So far this is the most accurate view I can get - I'm working with a to scale 3d model of the actual room I'm working in. These steps get me to where the scale is pretty darn spot on, when lifting the rift on and off. Now I just need a way to have that scale factor be default for all imported models... - drashHeroic ExplorerYou can create an editor script that overrides model import settings to apply the desired scale factor for all FBX models you import. Not at home so I can't share an example at the moment, but it is possible to do.
I'd like to figure out why you ended up at the 0.01075 scale factor though. Is it possible that your configured IPD is 7.5% off from where it should be? Also if you are using the OVRPlayerController and depending on that to implement the player height, the character collider has a "skin thickness" that adds a few centimeters to your actual height so what you specified in the OculusConfigUtil may not result in your actual height. Maybe a combination of the two, or maybe something is slightly off with the SDK."bdeschryver" wrote:
I don't understand how the IPD would relate to the eyes height.. Aren't they 2 differents settings (and unlinked) ?
They are different settings, but perceptually they are linked and is the main reason that physically standing up to match your standing virtual avatar is more immersive. - owenwpExpert ProtegeThe projection matrix Oculus generates doesnt seem to be quite right. In particular, centering the projection on the lens doesnt make much sense because the light is collimated and the lens position only really affects distortion, and it doesnt take differences in eye relief into account. And the IPD calibration should provide enough information to compute eye relief.
Still, you should not apply a scale bias to objects in the world to compensate. Even if that ends up looking right to you, it will be ONLY for you. For others it could just make it much worse, and if they get the math perfect in a future SDK, your scale will be wrong for everyone.
The only way to solve a complicated problem like this is to make sure the numbers are right at every step in the equation.
On, and Unity physics is not very precise. Often your avatar is actually floating above the floor a bit, especially with mesh colliders for the floor. - cheerioboyExplorerinteresting comments.
Since I'm a visual artist and have very little programming knowledge, I can only work with the tools I have at hand. So here's how I came about my scale factor:
- had a physically accurate model of my apartment & office area. I import this into Unity and it feels small to me. Trying other unit conversions takes the model to too small/large extremes
- place a plane collider on the floor.
- rely on the OculusConfigUtil since it's supplied by OculusVR, I assume they want us using it? So I plug in my height and assume the height in game is the height to match visually, between real world and game world. Even if it's 'off', then there's a need to compensate with the game space scale.
- adjust the import scale to match, since that's the only thing that seems wrong. I believe the IPD is less of the issue here, and it's all about the player height. I'll need to look into this script that drash mentioned, although I agree it doesn't feel right to have to make such a tweak to the import scale. But for the time being....
I agree there's probably something in the OVRPlayerController that should be adjusted to compensate for the height. It's much easier to stand next to a 3d object that matches your real space, to help size up the proper scale, but much harder to determine if the distance feels correct.
I put a little blog post together, trying to document my process. Feel free to critique it and suggest the best way to go around this issue of player height vs sense of space with the Rift. http://www.quitenice.co/blog/2014/4/6/weekend-prototyping - grodenglaiveHonored GuestAn easy thing you can do to check the scale of your imported objects is to create a reference object using unity, like a cube or metre stick, as Thomas Pasieka suggested here https://developer.oculusvr.com/forums/viewtopic.php?f=37&t=5739#p78589. If your imported items match to that, then you know the problem is your IPD or eyeheight.
Also keep in mind that sitting or standing can alter your perception of what you see. - AnanasExplorerNice discussion. My initial problem was just the height of the camera from the ground, which seemed to be too low with regular OVRController settings. Might be a thing with Unity it seems.
- cheerioboyExplorergrodenglaive, the cube test proves that nothing is wrong with my scale when left at .01 on import - it matches the external 3d application. Which leaves the issue as something that's lost in translation between the OculusConfigUtil and OVRController.
Here's another test - plug in your OculusConfigUtil player height settings - run a demo scene - press space bar to get the readout on your player eye height (mine was 1.776m). Make a cube that matches this height. When I did this I could still see the top of the cube... only when I tilted my head downward did the neck model bring my vision in line with the top of the cube.
using that cube as reference, I scaled the scene - which felt most accurate at around 0.0105
current solution is either scaling all the objects on import - or parenting all objects to a null object that you scale by 1.05 (easier to scale back to 1 when and if there is a fix for the player character)
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 3 years ago
- 8 months ago
- 6 months ago