Search Unity

Question Switching to multi-platform VR (tips & advise)

Discussion in 'VR' started by jocyf, Oct 4, 2020.

  1. jocyf

    jocyf

    Joined:
    Jan 30, 2007
    Posts:
    288
    Hi folks,

    I have developed applications for Oculus using the "Oculus Integration" asset using Unity 2018 and now I have to make a multi-platform VR application (the idea is to switch to Unity 2019.4 LTS).

    About 6 months ago I tried XR Interaction and the "escape room" demo and I got the feeling that I was not ready to use it yet for serious (paid) projects. There seemed to be a lack of documentation to develop things that were not by default (hand poses, advanced avatars, hand recognition, new interactions not foreseen in the asset, etc...). Things that are well documented in "Oculus Integration"

    On the other hand, I find the VRTK very complicated and unfriendly compared to "Oculus Integration" after seeing all the Unity learn tutorial (it was very long tutorial, several hours).

    I would like to know with which asset you advise me to start this project (XR Interaction, VRTK, etc...).

    Greetings,
    Jocyf
     
  2. FakeByte

    FakeByte

    Joined:
    Dec 8, 2015
    Posts:
    147
    The way I see it there are 3 options, maybe someone else knows some other options and can add them as I am pretty sure there are other options too.

    1. Use SteamVR, that way you don't have to upgrade to a newer unity version, SteamVR supports HTC, Oculus and Windows MR, but you have to use Steam with it.
    2. Use VRTK, but it doesn't have Windows MR support out of the box, you will have to use a user branch with Windows MR support, it also doesn't support SteamVR 2+ versions, so you need to use another user branch that has that supported, then combine those 2 branches, which in the end might end in a mess and you will rely on user branches.
    3. Use Unity XR plugin management, this works great, except with SteamVR, out of the box. SteamVR does work with it, but you need the beta branch from github.

    In the end there is no really great solution sadly, I am the same opinion as many others that unity should support OpenXR, but until then I am using option 3 in my project.
     
  3. jocyf

    jocyf

    Joined:
    Jan 30, 2007
    Posts:
    288
    @FakeByte, thanks for answering.

    Steam is not multi platform because it is for Steam shop, right? If that's the case, it is not an option.

    OpenXR is not supported (which I do not understand seeing as it is supported in Unreal) then it is not an option either. I don't understand what Unity is thinking about not supporting OpenXR; one option is to do the project in Unreal and abandon Unity for VR projects. The problem is that the control that I have of Unity (it's been 10 years using it) I don't have it in Unreal by far (something relatively "easy" to solve -if you have time- getting into the engine in full time for some months).

    VRTK is a valid option based in what you say. When I was looking at it (at the beginning of this year) I got the feeling that it was a library doomed to disappear over time; even the github repo seemed abandoned at some degree. I'll take a look to it again.

    XR Plugin Management you say that in general it works well. I suppose it has matured since I tried it at the beginning of the year. If they have improved the documentation and API to be able to add new features on demand to the project, it would be the winning choice for me. I guess I'll have to try it again, to see how far they've taken it.

    I suppose I'll choose XR Plugin Management too. It was simple to use for basic stuff (teleportation & basic interactions). I only hope Unity will improve it over time (more functionality, better tutorials & docs, easily extensible for programmers)
     
    Last edited: Oct 5, 2020
  4. jocyf

    jocyf

    Joined:
    Jan 30, 2007
    Posts:
    288
    VRTK:
    I've looked at VRTK github page and it seems abandoned. Last serious commit was from almost a year ago (10 months). It's too much time without seeing any king of activity. Nop and option, i'm afraid.

    XR Plugin Management
    I've been testing the XR Plugin Management (XR Interaction Toolkit) demos. There are two valid ones:
    https://forum.unity.com/threads/xr-interaction-toolkit-and-hand-tracking.810243/
    https://assetstore.unity.com/packag...l-projects/vr-beginner-the-escape-room-163264

    Both work fine and there are some basic / advanced tutorials to work with in the youtube valem channel:
    https://www.youtube.com/c/ValemVR/videos
    When I tested it months ago, XR Plugin Management was super friendly to begin with. It was almost a toy to play with it.

    That said, there isn't any hand tracking at all for Oculus Quest. Reading at this threat made me lose all hope for now (there isn't any answer from unity talking about any kind of roadmap or release date or ... i don't know something at all since June): https://forum.unity.com/threads/xr-interaction-toolkit-and-hand-tracking.810243/

    There isn't any avatar example (it's not difficult to make it from scratch but It's strange not having any kind of basic example), basic locomotion sample (to move around NOT using teleportation), any kind of mutiplayer demo (again not difficult to create it from zero using photon or mirror). I don't need that kind of stuff -I can build it by myself- but it doesn't exist and that's strange (at least, it's strange for me; a little red light alarm popup over my head).

    Conclusion:
    I'm afraid about starting this project (it's a long project) using XR Plugin Management knowing absolutly nothing about the Unity plans are about its XR solution in general for the next year (for Unity 2019.4 LTS, for example, as it is the last stable release).

    Any insights and comments about it will be welcome for sure!!!
    Jocyf
     
  5. FakeByte

    FakeByte

    Joined:
    Dec 8, 2015
    Posts:
    147
    SteamVR supports the following VR devices:
    It as well supports the Oculus Quest with a link cable, the only downside is you will have to release and sell your game on steam.
     
  6. rmon222

    rmon222

    Joined:
    Oct 24, 2018
    Posts:
    77
    If you are developing for 2019.4 you can use the combination of Steam VR and either Oculus integration or Unity legacy XR. I use these daily and they work just fine. If you are planning on migrating to 2020.2, I suggest trying Steam VR plus XR plugin management. I haven't tried this yet but I hope to soon.
     
  7. jocyf

    jocyf

    Joined:
    Jan 30, 2007
    Posts:
    288
    Thanks both for your answers, @FakeByte and @rmon222 .
    I was thinking the same as you @rmon222 , just use both Oculus Integration + SteamVR, using some platform dependent compilation: https://exyte.com/blog/porting-basic-unity-steamvr-games-functionality-to-oculus-quest

    I've been looking into all this to make a decision about what way I'll take and -for now- I think that using the "SDK Combo" (Oculus Integration + Steam VR) it's the safest way to go.
    XR Plugin Management it's not mature enought and lack on long term plans and docs; right now, it seems risky to start with it.