Roblox VR System Update

Do you have an example of the proximity prompt issue or a place to test it?
Swimming underwater should work in First Person, the default Third Person Camera is all about not getting you sick by following the player movement. We are thinking about adding more options, but you can also overwrite the default behavior in the player camera module.

3 Likes

I tried to swim underwater with my vr headset and it did not work. As for the proximity prompt thing, I can make a test place but all you have to do really is put 1 part and put 2 proximity prompts in it.

Also:

The only problem I have with the third person camera is that if I move a car a player is in, the camera stays still forever.

Edit: the proximity prompt thing isnt a bug, its my fault as I just realized I have forgotten to set different key codes for gamepad for my proximity prompts

2 Likes

Use airlink, not USB link. (character limit)

1 Like

It will teleport eventually when the car leaves the view area.
You can change that in VRVehicleCamera.lua or as mentioned we might add more gameplay-focused options down the line.

1 Like

does this work if they are just in a seat and not a drivers seat?

1 Like

Will the big ui update include better ui rendering? Will this fix steam vr recentering issues? fix the ui from rendering relative to camera origin and not the hmd? will we have an api to better control how the pointers work?

1 Like

That’s true, what I meant is VR supported game. If there was an option to enable something like “VR Supported”, it would be pretty interesting but you know


2 Likes

I wonder if it’s possible to have the UI bypass the 10-foot interface and cover the whole screen.

2 Likes

UI interaction/compatibility VR update is live on production with 545!

3 Likes

Good update! I still have some issues/suggestions though.

Suggestions

  • VR Keyboard for TextBoxes/Chat
  • Chat, Leaderboard, Emotes and Backpack GUIs intergrated with bottombar
  • Support for Adorneeing the VR 2D gui to a frame
  • Support gamepad navigation on menus if pointing is not possible
  • Voice chat buttons on bottombar (mute, deafen etc)

Issues

  • Gamepad controls are shown when selecting on controls, and it clips out of its frame too
  • ClipsDescendants still appears to be on for the VR 2D gui frame. Maybe a toggle in VRService?
  • When using SteamVR with an Oculus Quest headset, Roblox uses Vive binds instead of Touch binds. This makes it impossible to play some games (No ABXY)
  • Changing HeadScale can break the bottombar
  • bottombar is not AlwaysOnTop, therefore the menu can be blocked by parts, therefore not allowing the VR player to see menu items.
  • Emotes menu button should be hidden in R6 only games as they do not support Emotes
  • BubbleChat only chat frame does not appear
  • No home screen support (The universal app is forced out now, this should be a no-brainer at this point)

This will be updated if i discover some more issues, or I have more ideas.

Also, a good resource of current Roblox VR bugs and issues can be found at roblox-vr-tracker’s issues on github.

3 Likes

Very good suggestions! I would also like to add a couple things.
I would like for there to be a way to toggle the menu’s visibility and interactivity. That way I can have it only shown in a game’s custom pause menu.

Also a kind of complex and nitpicky feature, I would like for VR UI to have an Always on top feature for loading screens, but also be able to choose, for example, a collision group that would show above the UI. This could prove useful in pause menus where you want physics buttons to press but fade out the game world.

Two really big issues right ow have no solution. One issue being that you can’t detect what controllers or headset the user is using. This forced game devs to have a prompt everytime a player joins, which can get annoying for both sides. Also, as PoptartNoahh has said in the past, giving the player’s IPD for games would be extremely helpful with laser sights and whatnot. This could be as simple as doing VRService.VRDevice/Controller and VRService:GetUserIPD() respectively (simple for game developers, not roblox staff, sorry)

Finally, don’t have something very specific in mind, but just giving more control to developers for VR games. For example: since the voicechat system was broken for a very long time for VR, giving devs the option to turn on a player’s voicechat (yes I know how horrible of an idea that is, maybe have a confirmation message) as to intergrate it more into their own UI, or having the voice come from whatever part the developer chooses, such as a VR character model.

I also feel like there is not enough official documentation on how to do extremely important things such as putting in game hands to where the player’s controllers are. I am much more experienced now, but before I would find myself having to ask other developers who already figured it out for themselves, instead of going to the devforum or documentation site.

4 Likes

I noticed that the last time I was briefly in VR in Roblox Studio, I had the VR update! Though I kinda prefer how the Roblox menu button was previously only visible after pressing the “menu button” on the controller, I really like one of the buttons on the new bottom bar.

(Could there be an option to make the new bar act like that again, so I could have absolutely no GUI onscreen until I need the Roblox menu? I doubt any changes will be made, sadly.)

No, it isn’t the “leave experience” button, which is still useful. It’s the button in the middle, the one that hides the in-game GUI! This will let me see Koala CafĂ© in a more immersive way, without the GUI always in my face.

I wonder if this update fixes Royale High’s main menu bug, where the whole menu would disappear when trying to interact with it. That experience has some well-designed locations that would be nice to look at in virtual reality.

1 Like

Thanks for the suggestions and feedback!
We are keeping track of these issues and many of them will be addressed in future updates.

What I can give away right now is that AlwaysOnTop will follow with the next build, it just didn’t make the cut this week.

3 Likes

Awesome, can’t wait to see these updates in
the future!

1 Like

Thanks so much for this UI update! Interacting with the roblox menu definitely feels more intuitive to use. :slight_smile: I have a few recommendations after reviewing the update for a while, those being, when you seem to press B (Oculus touch controllers) to close the game menu if you switch items that are you currently holding from your backpack you cannot visibly see which item your currently holding/item you just switched to. I did briefly notice upon testing roblox vr that you can use the right thumb stick to quickly switch to any item that you are currently holding, and I wanted to ask was that feature in particular built into roblox vr from this build or no? Just out of curiousity since it’s very useful to have :slight_smile: The other recommendation that I wanted to provide is regarding the oculus touch controls within roblox vr. Running the quest 2 via steam vr to launch a roblox game, the A button does still not seem seem to function properly, and upon speaking with support for the Virtual Desktop software, it seems to be a binding issue with the touch controllers within steam vr. The other controls seem to be working properly , except the a button to jump. That should be it! I’m pretty excited for future changes regarding roblox vr in the future, thank you! :slight_smile:

1 Like

I would love to work with the VR team to improve the experience! I would love to report on VR bugs as I come across a decent amount, but without the regular role I can’t really report them easily. My main issue rn is that there is A LOT of support that is either missing or not functioning properly.

Here are the main issues that I have come across,

  1. (THE MAIN ISSUE) All controllers that have a capacitive touch features for the buttons, joystick, or even grip, do not work. This is a huge issue that limits the ability to make immersive hands for games that use hand models. For the index Grips just use the same system as the triggers and set each one to a finger, I believe steamVR automatically does the rest. And for capacitive touch, it would just be 1 or 0.

  2. Several headsets that use SteamVR with plugins do NOT work properly without modification for Roblox. Specifically the Pimax lineup. Their wide FOV works but the view is not stitched together properly. While this can be solved by changing the software to “Fixed with Parallel Projections”.

  3. The UI for most Roblox is not the most intuitive thing in the world. I would like the ability to completely disable the VR UI for roblox and have the ability to create our own “Esc” menu as a replacement.

The main issue that I see as a VR developer are the keybindings, or the lack of. However, any progress is good progress.

2 Likes

Swimming underwater still doesn’t work in vr for me.

3 Likes

Loving the updates coming so far! Exciting stuff. I was trying to stay ahead by scrutinizing the player scripts updates expecting some camera issues when UserFlagEnableVRUpdate3 came on, and didn’t realize how much was going on in coregui updates until I noticed on-screen controllers displayed for my quest 2 a couple days ago.

The issue that lead me here is that since the update, for Quest 2, coregui now displays a controller that doesn’t quite match the actual position or orientation.
image
I calibrated the white controller last month when all I could do to detect controller was see if coregui added an index controller model parented to workspace.CurrentCamera

yes.

Can anyone explain why VRService.VRDeviceName is only accessible in CoreScripts? I tried to circumvent that restriction on a whim today using GetPropertyChangedSignal. ha. no
image
when that code ran, it instantly crashed and closed both of my open studio windows! I guess I earned that XD
On my second try, I did get the expected result:

I’m happy the roblox team is making VR UI changes that will make some more traditional games work a little better in VR with minimal effort by creators. Those of us making games with targeted VR support in mind are able to provide a better experience if we have the ability to customize the experience and a better idea where these updates are heading.

We need to know what form of controller the player is using, and we need to be able to override it’s representation.

Last month, VRControllerModel just had one option (index, I think) with no oculus model, so I added my own. I had a feeling there were issues with the sizing and alignment of the physics hands I was testing at the time, so I uploaded some low poly oculus touch controller meshes and painstakingly aligned them by touching the sides together and noting the point of contact.

I was surprised to see in-game controllers show up yesterday in a game I played, so I pulled up my test project and found the coregui black rift controller models floating in my quest controllers, but not properly aligned. Maybe this is a difference in how the rift and quest controllers are centered, or maybe they are both off.


Sorry if that’s hard to read, but the white quest controllers are touching in real life and in game. The black rift controllers are not really aligned and there is gap between them.

The bottoms of the controller aren’t as far off, but the rings are pretty far off
image

I did figured out a way to disable coregui controller models by reading the coregui VR scripts looking for a RegisterSetCore call. this works:

local StarterGui = game:GetService("StarterGui")
StarterGui:SetCore("VREnableControllerModels", false)

So, I realized I can detect the controller type by disabling the controller, watching workspace for changes, then re-enabling the controller and seeing what spawns. Not ideal, lol

As other people have pointed out, many little things like this aren’t documented anywhere and we’re left to figure it out. I’ve been diffing CameraModule and PlayerModule scripts for changes daily to try to stay on top, but now I see I need to diff coregui as well.

-Capacitive Touch-
I see a lot of people have already pointed this out. Please can we get input service events for touch. I kind of simulated some hand gesture support by gradually bending the fingers with trigger inputs, but it’s very hard as a user to maintain a very light squeeze on the trigger. Not ideal. Also doesn’t tell you if the thumb is on a button.

-Floor Level-
With no way to detect this, you end up making people feel like they don’t touch the ground or, worse, are party clipped into it.

-BillboardGui Orientation-
Billboards align with the workspace.CurrentCamera, not with the rendered viewpoint of the headset display.

I project a scaled down version of distant objects on a ViewportFrame on a Billboard. On PC, console, and mobile, this billboard fills the entire screen without issue, and I generally put it 2000 to 4000 studs away and it works. I had to bring it a little closer for VR to make sure it would consistently display, but when you roll your head, the billboard does not roll with it. It’s like having your skybox on crooked letterbox mode.

I worked around it for VR by putting the ViewportFrame on a SurfaceGui, with ClipsDescendants==false because the block face width needed at that distance is often many times the maximum block size. It
 works

I can rotate the SurfaceGui block to match the head CFrame perfectly and fill that 90 degree vertical FOV, but the surface only renders reliably if I crank graphics quality up to 10. At lower/automatic settings, a SurfaceGui on a block at that distance is a lot less likely to display than a BillboardGui set to infinite distance adorned to the same block.

Can we have billboards align to the user’s viewpoint as they do outside of VR? It’s not really a billboard if it’s not orthogonal to the player’s viewport.

7 Likes

Will you be able to download this from the Oculus store on the headset?

3 Likes

A feature suggestion:
As Roblox is an all ages platform, it’s hard to see support for finger tracking for various controllers such as oculus and the valve index controllers because of people using obscene finger gestures. Though what if there was some sort of support for it via pre-registered poses. Could be an Enum like HandPose
Enum.HandPose.Fist
Enum.HandPose.Splayed
Enum.HandPose.Pointing
Enum.HandPose.Peace
Enum.HandPose.Pinch
etc

Could allow for more interactive VR experiences while keeping everybody safe.

2 Likes