Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums may be revoked at the discretion of Oculus staff.

Handling head clipping

paulleblondpaulleblond Posts: 6
NerveGear
edited April 2014 in Game Design
I've read through the best practices guide, but I don't recall seeing anything regarding handling when someone looks TOO closely at something. This seems like it'll be an even bigger issue with positional tracking.

The only things I've thought of are:

-Allow the head to enter the object, so the player can see inside stuff. Seems like it would break immersion pretty bad.
-Stop the camera from moving too far. This seems like it would work better, but breaks the rule of "head movement always matches camera movement"
-Fade/cut vision to black so nothing can be seen til the player's head leaves the object. This seems like the best answer, but not particularly easy to implement (at least for a newbie like me)

What have you done to handle this problem?

(FYI I don't have a rift. Trying to develop without til CV1, so I don't have experience with demos to see how they've handled this)

Comments

  • raidho36raidho36 Posts: 1,312
    Nobody does nothing about it, unsurprisingly. The matter is just too rare to give two damns about. Also just make near clipping plane something like 1 millimeter, that'll make it pretty much impossible to "dive" into objects without sinking your camera in there. Oh and it's kinda really bad idea to develop Rift-enabled visuals without having the Rift to see what it actually looks like.
  • grodenglaivegrodenglaive Posts: 395
    Brain Burst
    I've read through the best practices guide, but I don't recall seeing anything regarding handling when someone looks TOO closely at something. This seems like it'll be an even bigger issue with positional tracking.

    The only things I've thought of are:

    -Allow the head to enter the object, so the player can see inside stuff. Seems like it would break immersion pretty bad.
    -Stop the camera from moving too far. This seems like it would work better, but breaks the rule of "head movement always matches camera movement"
    -Fade/cut vision to black so nothing can be seen til the player's head leaves the object. This seems like the best answer, but not particularly easy to implement (at least for a newbie like me)

    What have you done to handle this problem?

    (FYI I don't have a rift. Trying to develop without til CV1, so I don't have experience with demos to see how they've handled this)
    Just make sure the player collider is slightly bigger than the near clipping plane (i.e. stop the camera from moving). It may brake that rule, but you learn pretty quickly to not bang your head into the wall if it makes you nauseous. :)
    I think having the screen turn black instead would be more annoying.
    GA-Z97X-gaming gt; i5-4670k; Nvidia780Ti; 16GB PC3-17066; win7-64 bit; DK2
  • LaneLane Posts: 324
    raidho36 wrote:
    Nobody does nothing about it, unsurprisingly. The matter is just too rare to give two damns about. Also just make near clipping plane something like 1 millimeter, that'll make it pretty much impossible to "dive" into objects without sinking your camera in there. Oh and it's kinda really bad idea to develop Rift-enabled visuals without having the Rift to see what it actually looks like.

    The short near clipping is good, but would require some extra solution(s) in regards to body/head models being attached to the character and the clipping plane being inside the avatar's face... Assuming you have a body model in the first place.

    I agree if you're doing any development with the Rift then get the DK immediately.
  • raidho36raidho36 Posts: 1,312
    Well avatar model should only include what should be visible. Since you shouldn't see your own head, the model just shouldn't include it.
  • LaneLane Posts: 324
    Yep, which in turn means detaching the head from all avatars that a player could use. Definitely something you'd want to start implementing earlier than later.

    I don't see much other way to handle it. Is there a way to occlude specific faces or chunks of a model or defined boundaries?
  • raidho36raidho36 Posts: 1,312
    Nope, obviously. Model is a contiguous array of vertex data and it's rendered in one call. You can try scaling the head bones into zero which will result scaling the head polygons into null size point. But you will want different first person model from third person model in the first place, so why bother.
  • paulleblondpaulleblond Posts: 6
    NerveGear
    Thanks for the feedback, I'll make the near clipping plane as close as I can and toy with collision later once I have a rift. I haven't bought the DK1 because I have a bad habit of starting projects and not finishing them, so I don't want to be 300 bucks in and fail to follow through. Thanks again!
  • karrtoonkarrtoon Posts: 120
    Art3mis
    yes I would do the near clipping very low, But also for the collision I would make it so you can't "go through" the object with the positional tracking.. but can still slide up down left right in the other available directions.

    I would not cut out the positional tracking completely if you collide into something as that would be very disorienting. (pretty much like dk1 when moving your body around)

    If done properly this can work quite well. Picture a wall on your right, if you lean into it the tracking in that direction stops.. but you could still lean forward, backward, up, down, just not right any further in the game.

    I think this kind of stuff should really be in the best practices guide for when dk2 comes out.

    Clipping through the wall just doesn't seem like a good idea to me.

    Here is a great blog post about this very subject in more detail: http://doc-ok.org/?p=785
  • GeraldGerald Posts: 1,068
    Nexus 6
    raidho36 wrote:
    Nobody does nothing about it, unsurprisingly.

    This is not true - at least not with the DK2. In many scenarios you will be close to a wall or similar objects and it can easily happen that you move through an object. You can not stop the tracking, that will make people sick.
    So just live with it.

    Keeping the near clipping at a minimum is very important too, because otherwise you do see weird effects like objects suddenly disappearing before your eyes (not in your eye).

    My approach, since I do not try to simulate the real world, is to keep the player away from walls. He can't get close enough to clip through them. Imagine sitting in an UFO where you have the UFO holding you away from walls. The UFO can bump against them and that feels right, but you can't reach them with your head.
    I do have some holographic displays the player will be able to go through, but that is actually rather fun and works well with a hologram.
    A player is able to force clipping - but I think I avoided all accidental clipping. :)
    check out my Mobile VR Jam 2015 title Guns N' Dragons
  • leftbigtoeleftbigtoe Posts: 48 Oculus Start Member
    I'm currently playing around with a improvised positional tracking for development. I can only agree that stopping the tracking is simply not an option. Our approach is to let clipping happen (no chance to avoid it in our use case), however we try to give some proper feedback to the user. We just try to tell the user that he did something weird and leave it up to him to go back into a proper position without clipping.
    A first idea for this kind of feedback is to switch the model the user is clipping into to a wireframe mode. This way users will not be disoriented or see weird parts of the geo they are not supposed to see.
    This is a decent way to go for our demo, but I can already hear you guys scream immersion breaker - and agree that this might be a problem. But imo one that can be solved with clever game design. Maybe you can find an awesome way of providing this feedback that perfectly fits to your game and make this problem a feature, not a bug ;)
  • ganzuulganzuul Posts: 257
    leftbigtoe wrote:
    ...feedback...
    Like a speed-dependent 'clonk'. Blood splatter... ;D

    Cudos for the research data. Most of us don't have positional tracking set up yet so it's good to know that.


    In the movie Ghost the protagonist gets an inside view of things when he 'clips'. When I lucid dream I sometimes 'phase' through walls when I can't find a door, and my brain interprets that with almost identical visuals as those in Ghost. I think audio sounding like you're under water would drive the effect home.
  • SnottyBisonSnottyBison Posts: 39
    Brain Burst
    ganzuul wrote:
    leftbigtoe wrote:
    ...feedback...
    Like a speed-dependent 'clonk'. Blood splatter... ;D
    I like this. Also, what about pushing the player back a bit? Like the head is sliding down against the wall instead of clipping it, thus forcing the player to take a step backwards.
  • baklacibaklaci Posts: 4 Oculus Start Member
    In my situation, my app is a simulation and all of the workarounds (fading the object, darkening the screen, increasing radius of character controller,...), break the immerse feeling of VR. I needed to stop the user from looking through objects. But stopping the positional tracking completely on collision, is causing motion sickness.

    So I ended up using Head Collision VR, which stops the camera from going through the GameObjects. It is using a combination of collision, raycasting and overlapping to sense the collision and stop the camera move in the direction of the collision only. The positional tracking continues in all other directions. And when the collision is over, the camera position in 3D space is restored in sync with the head move.

    This way, shaking and pushback is avoided, so cybersickness is not an issue. I had it tested by several people who had tried VR the first time, and they were mostly effected by locomotion but not head collision.

Sign In or Register to comment.