Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

The VR input problem and our studio's solution

Discussion in 'AR/VR (XR) Discussion' started by vvander, Jan 9, 2015.

  1. vvander

    vvander

    Joined:
    Jan 18, 2011
    Posts:
    72
    Our studio has been working on a VR project for a while, and we've been working to find a good input solution that's intuitive for our players. We settled on a World Space Cursor (demo here). It seems to work pretty well, so I thought we should share it with other VR devs in case it helps others who are struggling to find a good interface solution for VR.

    Here's the thread in the Asset Store forum. Check it out and let us know what you think! Personally, I think it's much better than the look-to-select model that many devs use. I also wrote a blog post here on the subject of VR input (and why World Space Cursor is helpful) that might be interesting.

    I'm also working on a World Space Crosshair that should be pretty helpful for VR.

    Anyone have any other good input ideas that we haven't thought of? I came across this Sword Art Online-style interface the other day. It seems pretty cool but obviously not everyone has the gear to do something like that yet. It's possible that eventually Oculus will release a motion sensor for one of their headsets in the future.
     
    Thomas-Pasieka likes this.
  2. that-steve-guy

    that-steve-guy

    Joined:
    Apr 21, 2013
    Posts:
    15
    Hi Vvander,

    One quick comment - change (or recommend) going full screen on your demo page.
    The disconnection (slowness) of the cursor movement - in relationship to the mouse movement in the small view is bothersome. Full screen is much nicer :)

    As an idea - years ago I did something similar - only the cursor was tied to a 2D surface that only covered the interface area. My feeling was that if nothing was interactive in empty 3D space - why bother to have the cursor present.
    If more than one surface had choices - I'd just clone and add a 2D surface to that.

    Lastly just a note of caution on motion sensing.
    If anyone's ideas are premised on being more "realistic" you are likely on the wrong path.
    Technology in the physical world reshapes interactivity all the time.
    Copying the past, without understanding the future potential is just silly.
     
  3. vvander

    vvander

    Joined:
    Jan 18, 2011
    Posts:
    72
    Agreed, we're going to make a new version of the demo soon with adjustable sensitivity (it's in the plugin now, just not the demo). Hopefully that will help, along with making the default sensitivity higher.

    I'm not quite sure what you mean here, can you elaborate? We're still experimenting with VR input so more perspectives are always helpful.

    I definitely agree. If nothing else, the Wii/360/PS3 generation proved that blindly including novel control methods is usually a bad idea. I think it worked for the Wii because of the novelty factor, but there are loads of examples of shovelware titles shoehorning motion controls in where they did not need to be.

    I think this might be why Oculus is taking their time with an input method and aren't committing to anything solid yet. It might not even be part of the initial consumer version when its released.
     
  4. that-steve-guy

    that-steve-guy

    Joined:
    Apr 21, 2013
    Posts:
    15
    Ok ... sadly my work is old (VRML old) and not readily viewable - so lets start with yours :)

    Your current work seems to have a single cursor (as an object) in the world and slides ONLY on a 2D axis.
    Assume you are pondering how to make that 3D...

    maybe 3D is of value...

    but my thinking is that for the type of menu you show - you don't need 3D manipulation.
    in fact - you don't need to have the cursor float about in empty 3D space in your example.
    ... doesn't the ability to overshoot the menu make this harder to use?
    ... does overshooting the menu serve a purpose (one that is really needed?)

    so then maybe the cursor is tied to the 2D plane of the men menu. - ie - its movement is restricted to the boundaries of the 2D menu (the visually displayed 2D image of the particular menu.) ... It you have multiple menus in a scene - maybe just have the cursor appear on the menu most centered in the field of view.

    Some issues could arise, depending on the complexity of the behavior/menu ... but for the simple menu you have, this should be fine.

    My own application for this in Unity (and maybe there's a commission in it for your team) - is to have a shared cursor for a presentation screen (space). I teach game design online in a virtual world (for a big for-profit institution) - and need to critique and manipulate 2D images of student work. In context for my work - the pointer, much like the pointer in a real world powerpoint presentation - only needs to control things specific on (and to) the 2D screen, not the surrounding environment.

    (Yes I do 3D critiques too - but Unity's embarrassingly sad Asset Bundles - as well as issues with my vendor - make development 3D here a dead end. Have high hopes for Unity 5 and WebGL)
     
  5. vvander

    vvander

    Joined:
    Jan 18, 2011
    Posts:
    72
    Sure, the cursor doesn't necessarily NEED to be in 3D space (though it has to be rendered in the world for any VR apps due to focus issues), but you can easily just make a canvas that's parallel to the screen to simulate a 2D UI. You're right that overshooting the bounds of the canvas is annoying, and it's one of the features we'd like to put into World Space Cursor if there's enough support for it.

    Of course, if you want to manipulate stuff on a different plane/depth/z-level than the canvas itself, that's a separate solution involving raycasting. Less efficient than this one (which is optimized for UI), but it's the only way to do it. It's funny you mention this, because we were hoping to make something like this and call it World Space Crosshair. This would work for multiple menus in the same scene, too, since it would be raycasting to determine what it's selecting instead of using collision data. I actually had never thought about this application of a World Space Crosshair until you mentioned it, but it is certainly a great idea.

    If this is what you're looking for, I'm sure we can help you get it integrated into your app specifically after we finish. Might take some serious customization rather than just using the basic plugin, but it's certainly possible now that our team has experience with the UI source. You can sign up for dev updates on our website if you want to know when we release updates to World Space Cursor or release the Crosshair version.

    P.S. I haven't seen anyone mention VRML in a while! Fun stuff... :confused: