Skip to main content
Up and Coming
July 26, 2014

Getting rid of health and safety warning

What is the proper way to get rid of the health and safety warning in Unity?
In OVRDevice.cs, I tired commenting out this:

if (HMD != null && Input.anyKeyDown && HMD.GetHSWDisplayState().Displayed)
HMD.DismissHSWDisplay();

and adding this to the end of Awake():

HMD.DismissHSWDisplay();


But that only works in the Editor but in the standalone version the head tracking stops working and the warning is not removed.

    261 replies

    Inspiring
    August 20, 2014
    "n00854180t" wrote:
    Yes, because we all know that the SDK is impossible to get a hold of on Github and that OculusVR will be 100% successful, as are all other companies, at policing the entire internet for certain files.


    You just don't get it, do you? I'm not trying to defend the HSW, or the terms of the license. I'm just trying to explain to you how the world works.

    Using the SDK off Github doesn't magically free you from the constraints of the license. Any version on Github can only be made available under the same terms as the original license. I maintain the only Github copy (that I'm aware of) that keeps up with the up-to-date versions of the official SDK, and I know my readme makes it clear that it's still only available under under the OVR license.

    Willfully ignoring the terms of the license essentially ensures that, at best, your application will never be of note, because as soon as it becomes popular enough to be noticed by OVR, you'll probably get a polite letter asking for compliance, followed by a cease and desist letter, followed by a lawsuit. You certainly won't ever be able to make significant money or notoriety off any creation that violates the license.

    Furthermore, the more you unwisely post about ignoring or attempting to subvert the requirements of the license on the official Oculus forums, the more you're asking to be made an example of.
    Brad Davis - Developer for High Fidelity Co-author of Oculus Rift in Action
    Up and Coming
    August 20, 2014
    I think *you* don't get it.

    It's perfectly possible to release something without caring about either notoriety or money, and at that point, there's no one to send such a notice to.

    Further, like I said, there's going to be a "Remove Warnings Patch Tool" as soon as the Rift becomes popular enough that that message is pissing off more people.

    This sort of thing happens with everything - and what you don't seem to get is that Oculus is intentionally positioning themselves in a losing battle.

    People will circumvent the warning. It's a matter of time, and there's basically nothing effective they'll be able to do about it (and no, sending letters is not effective against pseudonymously released patch tools).

    ---------

    Personally, I'll put the warning in. But I'm also putting the big fat bold message that the warning is Oculus' fault, not mine, and that if users want to get rid of it, they should email XYZ address at Oculus to complain about it.
    Twitter IndieDB
    Up and Coming
    August 20, 2014
    Brad,

    As you know, I'm trying to comply with the rules. Now, you state that it's really quite simple to understand the way it should work. I say that it's really not explained in the document.

    I've asked several times and explained in detail what is unclear. But, and I genuinely find this really baffling, the Oculus staff can't spend a few minutes to explain how it should work. I'm trying to comply with their rules, all they can say is we must follow their rules, but they refuse to tell us the rules!

    How about, if it really is that simple - and I think you have a good understanding of how it works, how these time limits work and what the user can do to dismiss the message - you write a little pseudocode / detailed explanation for the way to handle the health and safety warning in non-SDK rendered mode?

    I mean, on its own thread, not deep in this heated discussion. I mean somewhere that non-SDK rendered programmers can access it and just translate your pseudocode into their program. As I said before, I realise Oculus aren't going to help with this, for reasons known only to themselves, so the only thing I can do is run Ocean Rift several times, changing users, clicking keys and so on, to 'reverse engineer' the behaviour. I just think that's kind of silly, so that's why I suggest a step by step guide / pseudocode.

    Thanks.
    Live for Speed - www.lfs.net
    Inspiring
    August 20, 2014
    Yes, I agree that there could be better documentation around this. Currently we are assuming most developers would be using our engine integration packages (i.e. Unity, Unreal) or using an SDK-rendered approach in their own engine.

    If you are using another engine and not the SDK-rendered method, then you would need to do the implementation yourself.

    While there is some brief coverage of the health and safety warning in the integration doc, I will speak with the team about improving and elaborating on this process. Thanks.
    AMD Ryzen 7 1800X | MSI X370 Titanium | G.Skill 16GB DDR4 3200 | EVGA SuperNOVA 1000 | Corsair Hydro H110i Gigabyte RX Vega 64 x2 | Samsung 960 Evo M.2 500GB | Seagate FireCuda SSHD 2TB | Phanteks ENTHOO EVOLV
    Up and Coming
    August 20, 2014
    Thanks Cyber.. the message is really annoying :(

    Sometimes it also hurts my eyes :P

    It would be better if there were no animation in the background.. And with the rift on my head i dont see the xxxx keyboard and have to hit sometimes 4x the enter or spacebar key to get rid of it..
    Up and Coming
    August 20, 2014
    Thanks for the reply, Cybereality.

    If you could let us know the progress of your investigation, it would be appreciated.

    I am working many hours a day to get our test version completed to a reasonable state, so we can upload a full DK2 supporting version to http://www.lfs.net hopefully this weekend or very soon after. I want it to comply with the rules so it will continue to be represented on Oculus Share. There is more to be done, but I just want reasonable DK2 support instead of the DK1 support we have now in our full version.

    So that is why it is really quite urgent now. I need to code the H&S warning tomorrow and get it out for testing, so that's why I will appreciate your help.

    I can show that text, I can show it for x seconds when they start in Rift mode, I can allow the user to dismiss it with a keypress or a mouse click on an OK button... I just need to know if there must be a countdown during which time the user is not allowed to dismiss the message, or can they dismiss the message immediately? Should it vanish automatically if they don't click anything... Personally I'd prefer if they could always dismiss it as soon as they like. But I'll comply with the rules. Just please make sure they aren't too tough. :)
    Live for Speed - www.lfs.net
    Up and Coming
    August 20, 2014
    How about this for a suggestion:

    Live for Speed could show that text, in a suitable dialog when you start it in Rift mode, with an OK button below.

    User can press any key or click OK and the message will go. Forget about minimum times to display, changed users and all that.

    Simple. New users will read that the first time. Well I would anyway, the message is short enough.
    Live for Speed - www.lfs.net
    Inspiring
    August 21, 2014
    "scawen" wrote:
    How about, if it really is that simple - and I think you have a good understanding of how it works, how these time limits work and what the user can do to dismiss the message - you write a little pseudocode / detailed explanation for the way to handle the health and safety warning in non-SDK rendered mode?


    The health and safety warning should be overlaid over any VR scene so that it's legible. The SDK renders the image in an orthographic rendering plane at a distance of 1.5 meters.

    The SDK distinguishes between the first time the HSW is displayed for a given profile and subsequent times. For the first time it is displayed, it can be dismissed no sooner than 15 second after the start of rendering to the device. On subsequent launches it can be dismissed no sooner than 6 seconds.

    In debug builds the times change to 4 seconds and 2 seconds, but I suspect that this is for the benefit of developers working on the HSW itself. I disable the warning completely in my own debug builds, but those are never seen by anyone but me. Even then I might be wary about creating debug code that disables the display and then distributing that code and suggesting that others build it, which is something I have to face since I'm writing example demos for the book.
    Brad Davis - Developer for High Fidelity Co-author of Oculus Rift in Action
    Participant
    August 21, 2014
    I'm trying Couch Knights and the warning won't disappear no matter what. It's incredibly frustrating.
    Up and Coming
    August 21, 2014
    Thanks for your reply, Brad.

    "jherico" wrote:
    The health and safety warning should be overlaid over any VR scene so that it's legible. The SDK renders the image in an orthographic rendering plane at a distance of 1.5 meters.

    As LFS is a full simulator rather than a demo, it starts in an entry screen, that is in effect a VR scene (a virtual monitor). The message will have to be shown on the entry screen, or in a dialog that occludes or replaces the entry screen.

    "jherico" wrote:
    The SDK distinguishes between the first time the HSW is displayed for a given profile and subsequent times. For the first time it is displayed, it can be dismissed no sooner than 15 second after the start of rendering to the device. On subsequent launches it can be dismissed no sooner than 6 seconds.

    Well this makes it pretty obvious why people don't like it (including you, as you said). LFS load times are so much faster than that with all the optimisations it has for quick loading. I hope Oculus come to their senses on this one. Six seconds every time you start up a program... the best solution can't be one that annoys people.

    As mentioned before, if it can't just be in the box on a piece of paper, as it is for every other product in the world, then it should be simply dismissable by the user without time limits. However I will try to comply.

    I don't know how to detect if there is a new user. Reluctantly, I'll try calling one of those functions that says how much time is left, and see if they work in non-SDK rendered mode.
    Live for Speed - www.lfs.net