Search Unity

[FREE] VR Tunnelling Pro - Plug-And-Play VR Comfort

Discussion in 'Assets and Asset Store' started by Lyje, Feb 14, 2018.

  1. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169


    Trailer
    Asset Store
    Github
    Website


    Instantly make your Unity VR game more comfortable! VR Tunnelling Pro (VRTP) reduces sim-sickness during intense motion by reducing peripheral vision and/or replacing it with static "cage" imagery. Tunnelling has been used to great effect in VR games such as Ubisoft's Eagle Flight and in our own zero-g 6DoF shooter Sublevel Zero Redux.

    Free and Open Source
    With Oculus' support, we've now made VRTP free on the Asset Store and on Github here! We're working on a range of new features and improvements, and are pleased to announce that VRTP will support Oculus Quest alongside all other major platforms from all vendors.

    The Github repo includes a dev branch with the latest techniques in beta, plus improvements to the editor GUI and more. Please feel free to submit issues and pull requests on the github, or discuss further here.



    Fully Customisable
    Use the default settings or delve into the huge range of options and modes, including colour, cubemap, 3D cage and blur. Mask objects from the effect or create static windows and portals. Use the debug tools to fine-tune motion sensitivity. Use Force Vignette mode to take full manual control of tunnelling.

    Supports ALL Major VR Platforms
    VRTP runs seamlessly on Rift, Vive, PSVR, Go, GearVR, Cardboard, Daydream and now Oculus Quest out of the box, including a lightning-fast mobile version which can also be used on non-mobile when performance is tight. Single-pass stereo is supported on non-mobile platforms, with beta support on mobile.



    Powerful Preset System
    Create full or partial presets in-editor and apply at runtime with one line of code. Let your players choose the settings that work for them.

    Full Source Code, In-Depth Documentation
    Get up and running in minutes with the quickstart guide, then drill down with tutorials and the comprehensive manual. Tweak anything you want with full source code and API documentation!

    Why VRTP?
    Comfort is one of the biggest and most common challenges VR developers face. Sim-sickness can be the difference between a great experience and an unplayable mess, in everything from indie projects to huge budget AAA titles. Tunnelling is a powerful tool for increasing comfort in almost any VR project.

    Whether first-person, third-person, vehicular or anything else, we think VR games should put a premium on comprehensive, player-customisable comfort solutions. We've developed VR Tunnelling Pro to expand and improve upon the acclaimed comfort options in Sublevel Zero Redux, and make it easy for anyone to reduce sim-sickness in their own projects.

    Unreal Engine 4
    VRTP is now also available for UE4 - see the Oculus blog post for more details.
     
    Last edited: Jul 7, 2020
    punk likes this.
  2. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Update: VRTP has just launched on the Asset Store!
     
  3. HakJak

    HakJak

    Joined:
    Dec 2, 2014
    Posts:
    192
  4. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Hi! While that's a cool effect, we really want VRTP to have a laser-focus on comfort, and that's more towards immersion in my mind. That said, I see no reason that effect would have any conflicts with VRTP, so they should work well together.
     
    HakJak likes this.
  5. HakJak

    HakJak

    Joined:
    Dec 2, 2014
    Posts:
    192
    Cool thanks! I bought them both :)
     
  6. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Great :) Let me know if you have any troubles using them together so I can help out.
     
    HakJak likes this.
  7. emilyvanbelleghem

    emilyvanbelleghem

    Joined:
    Feb 27, 2018
    Posts:
    1
    I've purchased this plugin for testing and noticed the radius of the tunneling vignette is coupled to the value of the Unity camera's far clipping plane.

    Is there a reason for this, or a workaround? For the application I'm testing on I need the clipping plane to be at at least 2000, but with that value the vignette appears to be always in view even without turning.
     
  8. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Oops, sorry! I'll try to get you a workaround ASAP and then update the plugin.
     
  9. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Ok, here's a workaround. You'll have to go into VrTunnellingPro/Scripts/TunnellingBase.cs, find line 501 and insert a couple of lines afterwards.

    This is the code you're looking for:


    #if !UNITY_ANDROID && !UNITY_STANDALONE_OSX
    // Reverse y for D3D, PS4, XB1, Metal
    var api = SystemInfo.graphicsDeviceType;
    if (
    api != UnityEngine.Rendering.GraphicsDeviceType.OpenGLES3 &&
    api != UnityEngine.Rendering.GraphicsDeviceType.OpenGLES2 &&
    api != UnityEngine.Rendering.GraphicsDeviceType.OpenGLCore &&
    api != UnityEngine.Rendering.GraphicsDeviceType.Vulkan
    ){
    _eyeProjection[0][1, 1] *= -1f;
    _eyeProjection[1][1, 1] *= -1f;
    }
    #endif


    After that, insert the following two lines:

    _eyeProjection[0][3, 3] = 0.002f;
    _eyeProjection[1][3, 3] = 0.002f;


    That should fix the issue. I'll patch this into the Asset Store package ASAP. Thanks for the catch!
     
  10. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
    Does it contain a locomotion controll for vr?
     
  11. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    No - it's designed to work well with almost any locomotion method so it doesn't include one itself.
     
  12. pushingpandas

    pushingpandas

    Joined:
    Jan 12, 2013
    Posts:
    1,419
    ah pity, I need a locomotion solution for vr... thanks
     
  13. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    The patch is now live in the Asset Store package, so you can just update rather than use the workaround.
     
    HakJak likes this.
  14. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Version 1.1 out! Changelog:
    • Beta support for Single Pass Stereo on Mobile
    • Fixed a skybox regression bug on Android
     
  15. Shane_Michael

    Shane_Michael

    Joined:
    Jul 8, 2013
    Posts:
    158
    Can you provide any details on how the mobile version works? The documentation says "without post-processing" which is fine, but I'm wondering about what it is. Are you rendering a piece of custom geometry that only covers the area where the effect is active? I assume you would render the opaque area before the geometry to write out the z-depth, and then do the feathered area as a final blended pass?

    Does the mobile version support a stereo cubemap?

    Is there any plans to support single pass stereo rendering on mobile? Can you elaborate on what issues you are having with it now? Unity's new lightweight rendering pipeline should support mobile VR shortly and I'm expecting the efficiency improvements will be very useful, but the scriptable render pipelines require single-pass stereo.

    Thanks.
     
  16. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Really sorry for the huge delay - for some reason I didn't receive any notification about your post.

    The mobile version works exactly as you guessed. An iris mesh gets drawn before anything else to zero depth, then a secondary feathered inner iris mesh at the end of the frame.

    Stereo cubemap is not yet supported but I'm looking into it at the moment.

    Single pass on mobile is currently in beta - it should work in pretty much all cases. The docs are a bit behind on that, sorry!

    The asset is not currently tested with LWRP, but that's another thing I'm currently looking into.

    Hope that helps, and apologies again for the huge delay.
     
  17. lightwaterjohn

    lightwaterjohn

    Joined:
    Nov 29, 2017
    Posts:
    13
    The asset is now free, will you no longer be supporting it?
     
  18. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Don't worry - it's actually the complete opposite! I'm about to update the OP, but the gist is - we're now working with Oculus to open source the plugin, add a raft of new features, support even more platforms and even port it to Unreal Engine 4! As the first step, the asset is now free on the store, and it'll be on our github in about a week's time :)
     
    Last edited: Sep 29, 2018
  19. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Here's a sneak peek at the improvements we're making to look-and-feel, and some of the new features!

    VRTP's UI is getting a whole new look, with lots of quality-of-life tweaks to make it even easier to use in the editor.


    We're adding a whole new section of effects, based on modifying motion.


    All the new settings will of course be exposed both in the API and in Presets, which are also getting some UI improvements.


    We'll have more updates for you shortly, including a date for when VRTP will be open-sourced on our Github!
     
  20. Eiseno

    Eiseno

    Joined:
    Nov 1, 2015
    Posts:
    86
    How can we use this with VRTK ?
     
  21. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    I'll try to put together some best practices on that front.
     
  22. Eiseno

    Eiseno

    Joined:
    Nov 1, 2015
    Posts:
    86
    When u plan to put ? are there any estimated time ?
     
  23. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Quick announcement - the plugin will be open sourced on our Github this Monday, 8th October!

    Hopefully a few days - after we've open sourced on Monday I'll try to look at VRTK best practices.
     
  24. Eiseno

    Eiseno

    Joined:
    Nov 1, 2015
    Posts:
    86
    thank you
     
  25. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    VRTP is now available open-source on our github!
    https://github.com/sigtrapgames/VrTunnellingPro-Unity

    This includes a dev branch with the latest techniques in beta, plus improvements to the editor GUI and more.

    Please feel free to submit issues and pull requests on the github, or discuss further here.
     
  26. Drezus

    Drezus

    Joined:
    Oct 14, 2013
    Posts:
    13
    I'm facing some oddities probably related to your plugin.

    After days attempting to get a UWP build to work, I was finally able to create a Mixed Reality app via IL2CPP (I won't even try .NET anymore, Microsoft is making it impossible on purpose and it's not worth the hassle).

    When I got to test the app, it shows this weird shader issue in front of the player camera. This never appears when testing the game directly on Unity.

    That being said, the plugin still works fine and shows the correct tunneling materials when the camera motion goes beyond my defined threshold (and these tunneling materials are alright too). What leads me to believe that this is a VRTunnelling problem is that this halo only appears inversely to the camera motion (aka when your plugin isn't detecting any motion, the halo slowly appears from behind the camera).

    Other things that might be screwing up with this could be a HoloKit-specific material that is applied to the camera's Fade in/out plane, or something about the Post-Processing stack that I'm also using. I'll try debugging those tomorrow.

    For now, do you have any leads? oddity.png
     
  27. Drezus

    Drezus

    Joined:
    Oct 14, 2013
    Posts:
    13
    Got it. For some reason, Iris Z Rejection is causing this issue. Disabling it resolves this issue, but I dunno what difference that makes in the long run.
     
  28. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Yes, that's definitely the z-reject iris. Not sure why it's doing that however. Are you on the master branch or dev? Disabling it is fine, but you don't get the fillrate benefit you otherwise would.
     
  29. FranknSon

    FranknSon

    Joined:
    May 27, 2017
    Posts:
    19
    I see this also and I am trying this on the Oculus Go. I am using mobile version - Not sure if z-reject iris is same issue (look the same) or where I need to go to disable it. Thanks
     
  30. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    For mobile I recommend grabbing the latest version on the dev branch on GitHub - it should work fine on Go (does for me at least!).

    EDIT: Note that there should be an update to the master branch within a month as well.
     
  31. FranknSon

    FranknSon

    Joined:
    May 27, 2017
    Posts:
    19
    Will try - Thanks
     
  32. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Hi guys,

    I've just updated the dev branch and this issue should be fixed.

    The issue was, the iris mesh uses vertex colors in the vertex shader to shrink the iris, and for some reason under some versions of Unity 2018 the vertex colors were not being passed to the shader. I've moved to using UV coords instead and it should work fine now! Apologies for that taking a while, it was a really weird bug.
     
  33. Milan-Sadariya

    Milan-Sadariya

    Joined:
    Jan 12, 2016
    Posts:
    13
    Not working same issue...
     
  34. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Have you tried the dev branch from the github?
     
  35. StevenPicard

    StevenPicard

    Joined:
    Mar 7, 2016
    Posts:
    859
    Will you be adding support for Windows MR?
     
  36. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Looking in to it. As yet we've not tested at all on WMR and it may be that it already works, whether that be the image effect script or the mobile-ready script.
     
    StevenPicard likes this.
  37. Jun-Kiat-Tan

    Jun-Kiat-Tan

    Joined:
    Jul 10, 2017
    Posts:
    1
    Hey Lyje!

    I tried the dev branch from Github, but am unable to any color/blurring effects for Oculus Go.

    From the Quickstart guide, I have tried adding both the Tunneling / TunnelingMobile script to the CenterEyeAnchor of the TrackingSpace of OVRCameraRig. However, no matter the settings I put for the script, I am unable to get any desired effect on the Oculus Go.

    For Blur, nothing happens. For Color mode, I get some shader problem similar to a picture shown previously. Would you mind helping me with the Oculus Go integration?;)

    PS: For both Color/Blur, I am able to get the effect when I play from the Unity Editor. However once I build onto Oculus Go, there is no longer any effect.
     
  38. OP3NGL

    OP3NGL

    Joined:
    Dec 10, 2013
    Posts:
    267
    Possible to create color saturation in the plugin?

    EDIT: i see that the iris is using a fbx file, am i able to modify the shape & re export?
     
    Last edited: Mar 1, 2019
  39. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Hi! You must use the TunnellingMobile component on Go - the non-mobile version will not work. This means blur is not available on Go I'm afraid. When you're having issues with Color mode, is that with the mobile or non-mobile version?
     
  40. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    It would be possible to add a saturation mode to the non-mobile version, yes, however doubt it will be effective as our peripheral vision has less colour acuity anyway.

    It's possible to edit the iris if you'd like, but it's configured very specifically for the effect. Have a look at VertexUtils.cginc IIRC to see how the mesh is used.
     
  41. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Last edited: Mar 13, 2019
  42. xinuxano

    xinuxano

    Joined:
    Feb 28, 2018
    Posts:
    33
    Is the last update compatible with LWRP? Thanks
     
    ROBYER1 likes this.
  43. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Not explicitly. The mobile version should work fine, however the non-mobile version does not yet. SRP support is the next thing we'll be looking at adding, although I would stress we don't have a timeline on that.

    EDIT: To clarify, it's perfectly possible to use the mobile version on non-mobile platforms regardless!
     
    xinuxano likes this.
  44. xinuxano

    xinuxano

    Joined:
    Feb 28, 2018
    Posts:
    33
    Thanks, I will test it.
     
    Lyje likes this.
  45. unity_dev3194

    unity_dev3194

    Joined:
    Apr 17, 2017
    Posts:
    79
    Hey, would it be possible to add single pass instanced (multi-view) support?
     
  46. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    It should work ok with instanced - are you experiencing issues?
     
    ROBYER1 and unity_dev3194 like this.
  47. unity_dev3194

    unity_dev3194

    Joined:
    Apr 17, 2017
    Posts:
    79
    Hm, can't seem to get it to work with Single Pass Instanced stereo mode. I get an all white screen.

    Edit: Using Unity version 2018.2.17f1, if it matters
     
  48. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    I'll give it a look, thanks for reporting :)
     
    tejas_kornhaberbrown likes this.
  49. Jackm1993

    Jackm1993

    Joined:
    Jun 24, 2016
    Posts:
    2
    I am not sure if I am totally missing something but everything works fine when not in VR. Once I enable VR the tunneling does not work, using the vive, but mobile tunneling does seem to work. Not sure what is going on.
     
  50. Lyje

    Lyje

    Joined:
    Mar 24, 2013
    Posts:
    169
    Are you using LWRP or HDRP? What version of Unity are you on?