Jump to content
 
Sign in to follow this  
csg_fruiz

How to properly set scale to life-size scale

Recommended Posts

I am using the Focus Plus for my VR experience.

Is there a rule or equation (guide) as to how to properly set the scaling for a more true to life feel?

Right now, my model looks gigantic. 

Is it better to scale the objects down, will this affect my lightinig or other components?

Should i scale the camera? FOV?

 

Every time i importa model and the camera rig, i feel like i have to do a lot of tweaking in order to get a close to life scale, and i was wondering if there was a rule that i should follow to make this easier.

 

Share this post


Link to post
Share on other sites

Do you mind sharing your sample project?

You can try to import Vive Input Utility from Unity Asset store.

There are some examples you can refer to.

Share this post


Link to post
Share on other sites

I'm currently using VIU.

 

Looking at example "controller manager sample scene", with nothing modified, The camera looks like it's floating higher than it should. 

 

You can replicate the issue by creating a new project (see my unity version above). Import VIU, import WaveSDK, switch platform to android, accept recommended project settings changes from wavesdk, open the above example scene and build project to device. (i am using Vive Focus Plus)

 

is there documentation for this plugin? I tried searching online for the documents to see what the "Device height" script does but i couldn't find anything. I keep changing the setting but it doesn't seem to do anything.

 

EDIT:

https://github.com/ViveSoftware/ViveInputUtility-Unity/blob/gh-pages/assets/doc/guide.pdf

 

just found some documentation. still no reference to device height.

 

EDIT2:

I moved the VROrigin gameobject down (in the editor preview, the camera is not in he same position as in the HDM, in the editor it shows below the floor, in the HDM it shows above the floor). Now it shows correct in the HDM, HOWEVER, when teleporting, the height resets to some predetermined height, and now it the camera is above everything else like it was before, i can't seem to find this set number in the editor, i again tried to play with the device height number, but it doesn't seem to do anything for me.

Share this post


Link to post
Share on other sites

I found the root cause to your issue.

 

By modified below file, you will have correct height for your Focus Plus.

In Assets\HTC.UnityPlugin\ViveInputUtility\Scripts\Editor\VRPlatformSettings\WaveVRSettings.cs,

line 91,

//if (virtualRealitySupported) { return false; }

line 102,

//virtualRealitySupported = false;

By commenting out or deleting above 2 lines, you will enable WaveVR_SINGLEPASS_ENABLED.

Remember to click "Use recommended", and make sure in Edit>Preferences>VIU Settings, VIVE Focus is checked too.

 

There is another known issue (You will not be able to teleport in ControllerManagerSample scene.), please make adjustment to your scene.

 

CustomDeviceHeight.cs will only work for Daydream device for now.

 

You mentioned without any modification, you felt that camera looks like it's floating higher than it should. Does teleporting work?

Because in EDIT2, you said after adjusting VROrigin gameobject, you felt many stuff is not working correctly.

BTW, please do not adjust VROrigin gameobject in the scene.

Share this post


Link to post
Share on other sites

I move the VROrigin because the camera starts high. So i need to move it down to compensate for that, however, when teleporting the height gets reset and shows high again. If i make one of the cubes teleprotable and teleport to the top of the cube, the height seems to increase, when i teleport to the floor the height changes. There's gotta be some fixed height relative to the teleport location that seems to be causing a problem.

I did the changes you suggested, but it didn't help with the issue. See video below. In this demo, i did not touch the VROrigin position, it's left with the default transform values.

 


EDIT: Not sure if this matters, but i am using unity 2018.2.2 WVR SDK 3.0.2 and Vive Input utility 1.10.4.0

 (tag added by moderator)

 

Edit2: i just tried the the same scene with the VIVE PRO and it works fine with the VIVE PRO (no height issues). 

Share this post


Link to post
Share on other sites

If you make adjustment to the VROrigin, that might cause issue after teleporting. This is why I suggest not to make any adjustment.

 

Could you check whether your Virtual Reality Supported(File>Build Settings>Player Settings>XR Settings in Android settings tab) is checked?

Could you try my apk and provide your result?  Thanks!

Share this post


Link to post
Share on other sites

 

 

APK feedback: Same results, camera is still too high. (see video of your APK recording)


 

Suggsted change: VR Settng was not checked. I checked it but it had no improvement, camera still too high. VROrigin position was not modified.

Share this post


Link to post
Share on other sites

I got feedback from Wave SDK team,

They said correct way of using VIVE Focus/Focus Plus will be as follows,

1. Device in suspend mode

2. Put your HMD on while standing

3. Launch app while standing

 

This way, the height(default value is 175cm, cannot calibrate) in VR world will be correct.

 

Could you try the methods above?

Share this post


Link to post
Share on other sites

 

 

I always follow those steps, but it doesn't help. I am not able to reach the buttons or even the interactable cube that floats in the middle. It's still too high. I was expecting a similar experience in the focus like i do in the vive pro, in the vive pro, the height position is perfect, in the focus it is too high.

 

Can we change this in the teleportable script? to teleport the camera to the raycast collision point, and just do y - value (a value that will correct the height)? If its not in the teleportable script, what script can i use to implement this?

Share this post


Link to post
Share on other sites

The last thing I suggest is to use CustomDeviceHeight.cs is much better approach.

In Assets\HTC.UnityPlugin\ViveInputUtility\Examples\Shared\Scripts\CustomDeviceHeight.cs,

public void UpdateHeight()
{
    var pos = transform.localPosition;

    switch (VRModule.activeModule)
    {

        ...
        case VRModuleActiveEnum.WaveVR:
            transform.localPosition = new Vector3(pos.x, m_height, pos.y);
            break;
    }
}

 

Add above code and in Unity scene, adjust the height to negative value(-0.55 or lower).

 

Could you help me capture some log value of Y axis for investigation?

1. Install provided apk

2. Open command prompt and type below commands

adb shell setprop log.tag.Unity DEBUG
adb logcat -s Unity ActivityManager PackageManager dalvikvm DEBUG

3. Try below two scenarios

a.  - Standing up and launch apk

     - Sit down on chair

b. - Sit down on chair and launch apk

     - Standing up

 

Observe 3a and 3b how the Y value changes.

My result will be

3a - (0.0, 1.7 or 1.8, 0.0)

      - (0.0, ~1.4, 0.0)

3b - (0.0, 1.7 or 1.8, 0.0)

      - (0.0, ~2.1, 0.0)

 

NOTE: Focus' Suspend mode requires HMD taken off from head for >3 secs

Share this post


Link to post
Share on other sites

Please sign in to comment

You need to be a member in order to leave a comment

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...