TheNexusAvenger / Nexus-VR-Character-Model

Maps Roblox characters to the VR inputs of players.
MIT License
67 stars 12 forks source link

Frequent black screens still present and camera freezing #19

Closed B00ie23 closed 1 year ago

B00ie23 commented 1 year ago

My VR hardware is a Meta Quest 2 (Oculus branded,) headset and controllers are stock. This happens anywhere using any version of NVR. I'm not sure how to best describe this, nor whether I'm posting in the right place, but I'll describe the issue in detail.

This is an easy two-step reproduction that involves looking down and either crouching, walking, or jumping. Moving in a specific direction while looking down just low enough that the screen doesn't turn black causes the screen to flicker. (The effect is visually worse had the attachment been rendered in 60 FPS.) When you reset after NVR finishes initializing on the player, the camera will temporarily freeze in place until the player respawns.

https://user-images.githubusercontent.com/45867359/218301545-4b3cedca-ac8f-4a63-b006-0151d8c964f1.mp4

Shown in the attachment above is what all happens in my test baseplate. Other experiences have related and strange issues. Some examples observed are:

I promise this is the last edit for the initial post.

B00ie23 commented 1 year ago

I should've saved this comment for another post, but the NVR menu is impossible to use if the menu is behind a wall that the player cannot reach past.

TheNexusAvenger commented 1 year ago

Black screen issues should be brought up to Roblox instead. As a Roblox developer, I should not be able to make Roblox not render 3D geometry.

I should've saved this comment for another post, but the NVR menu is impossible to use if the menu is behind a wall that the player cannot reach past.

This should also be brought up to Roblox. Custom pointing for the menu is no longer used and this is a limitation of Roblox's pointing.

catnotadog commented 1 year ago

has this been solved yet?

TheNexusAvenger commented 1 year ago

I have no insight into Roblox potentially resolving this and don't have a resolution for this. It is either a problem with Nexus VR Character Model and Roblox or it is only a problem with Roblox.

catnotadog commented 1 year ago

ah, that kinda sucks, wish roblox would for once focus on making roblox vr an actually decent experience without relying on the community to do it for them..

catnotadog commented 1 year ago

I also noticed that this issue doesn't effect third person

noblereign commented 1 year ago

so i've been looking into this (the black screen issue) a little further, and it seems like this might just be a really badly implemented Roblox feature? it seems like it's meant to hide your view when you stick your face through a part to prevent cheating however it seems like they might have implemented this on the engine level, or just somewhere really really hidden, 'cause i couldnt find a way to disable it anywhere.

there is a workaround, however. it seems like the behavior turns off for parts that have a transparency or localparttransparency above 0.5. again, above 0.5. the black screen issue happens so frequently with nexus vr character model because the default character transparency is EQUAL to 0.5. setting it to 0.501 (or anything bigger than 0.5), while not really ideal, fixes the issue.

suggested fixes:

  1. raise the default character transparency, maybe with a little warning in the config about going below 0.5
  2. clamp character transparency to never go below 0.501 (or similar)

it'd also be possible to go the extra mile and set the local transparency of any parts colliding with the head to prevent it from happening at all, but that might be a bit out of scope.

hopefully this mystery is finally solved once and for all.

update 3/13: wow, completely missed the property that allows you to toggle this behavior. you can use VRService.FadeOutViewOnCollision = false if you want to restore the old behavior. thank you SkyleTheFrench from the DevForum for that one.

TheNexusAvenger commented 1 year ago

there is a workaround, however. it seems like the behavior turns off for parts that have a transparency or localparttransparency above 0.5. again, above 0.5. the black screen issue happens so frequently with nexus vr character model because the default character transparency is EQUAL to 0.5. setting it to 0.501 (or anything bigger than 0.5), while not really ideal, fixes the issue.

Good find! V.2.5.2 has started rolling out and will bump the transparency from 0.5 to 0.501 if that is how you have it configured. Lower values will get a warning to the bug report as I don't want to change the behavior for games that changed it.

A bug report has also been filed: https://devforum.roblox.com/t/vr-screen-becomes-black-due-to-non-transparent-character/2215099

I am going to close the issue for now. Please re-open if it is still an issue on V.2.5.2. It will take a few hours to days for all current games with V.2.5.1 to restart and get the new version.