Mixed Reality Utility Kit: Build spatially-aware apps with Meta XR SDK
Vložit
- čas přidán 7. 07. 2024
- Welcome back XR developers! In today’s video we will look at yet another recently released development tool by Meta, namely the Meta MR Utility Kit, or MRUK for short!
MRUK now provides us with Scene Queries such as ray casts, valid spawn points and bounding boxes, with graphical helpers such as rendering walls, replacing physical objects with virtual ones and providing room boundaries, and also provide us with development tools such as the scene debugger, which we will look at in detail, as well as a selection of 30 prefab rooms for testing our application to make sure our app works in a variety of spaces different to our own physical one!
Resources:
🔗 Mixed Reality Utility Kit Documentation: developer.oculus.com/document...
🔗 Mixed Reality Utility Kit Download: developer.oculus.com/download...
🔗 MRUK Methods: developer.oculus.com/document...
Other Videos:
📹 Meta’s Building Blocks | Develop Mixed Reality Apps lightning fast: • Meta’s Building Blocks...
📹 Create Believable Haptic Feedback with Meta’s Haptics Studio & Haptics SDK: • Create Believable Hapt...
📹 Get Started with Meta Quest Development in Unity: • Get Started with Meta ...
📹 Meta Hand Tracking Pointer & Pinch: • Meta OVR Hands | Point...
Join the Discord!
👾 / discord
Support the Channel:
🫂 Patreon: / blackwhalestudio
🐦 Twitter: / xrdevrob
Need professional XR & Multiplayer development for your project?
👨💻 Get in touch with us: bento.me/blackwhale
Chapters:
0:00 Intro
0:56 MRUK Requirements
1:35 Meta XR SDK & MRUK Installation
2:25 Project Setup
2:57 MRUK component (!)
6:52 EffectMesh component
7:38 RoomGuardian component
8:34 Scene Debugger component
9:28 Code examples & available methods
10:59 FindSpawnPositions component
12:24 AnchorPrefabSpawner component (turn your room into a virtual room!)
13:25 Outro
Great stuff... Very nice video...👍
Thanks Harald, glad you enjoyed it!
Hi Robi, thanks for your tutorials, are very useful. Excuse me, I am having issues when I overload 3D models using MRUK, it looks like the 3D models are moving slowly to the left and the front compare to the position of the blocks of the physical space (Passthrough), did you have similar issue?
Hi! Great stuff, but I wonder can you help me out - I've set up oculus quest 3 and it works with regular vr app in unity (some random projects and templates) it cannot run with merge reality based project. All I'm getting while pressing play on unity is that oculus flickers to black for a second and goes back to unity editor view, but with game triggered on playmode. Do you know what can coused this error? I've tried everything; resetting, updating dependencies, enabling options etc but problem still persists like passthrough just couldnt start. Any help much apprieciated!
Great video, thanks for posting this! Btw, does this work over Link, or only on Quest builds?
It does work over link as shown in the video
Hi, I can only see the black shadow of the prefab room model when I hit play in the unity. I cannot find out why
Great video! Do you think it's possible to use this with open xr since you mentioned ovr manager is not needed?
That's a really good question, but I would have to test that to give you a clear answer. In the editor that could work but to deploy and play the app on your device you need to support anchors, scene support and passthrough on your OVR Manager, so at least the OVR Manager is still needed. Would be curious to know the exact answer if you ever get to test it out!
I get the following error: The type or namespace name 'InvSqrt2' does not exist in the namespace 'Utilities' (are you missing an assembly reference?), any solution?
does it appear after importing the Virtual Room sample? unfortunately that's an error from the package! i recommend to just double click on the error which opens the script. then just comment out these few lines of code. your scene will still work!
Thank you very much, I will do that and I hope the scene works correctly.
You can also replace that Utilities.InvSqrt2 with "1 / Mathf.Sqrt(2)"
Thank you for the detailed video and for mentioning it in another post of me. I am currently trying to figure out a problem I have, when I try to load a premade room of my quest 3 in Unity at runtime. All the objects are loaded correctly (walls, table etc.) and they have the right size, but they are all placed at (0,0,0). Do you have any idea how to fix that or which box I have to check for that? As a build and run in works fine.
I am also getting this warning, which might have something to do with it:
[OVRPlugin] [XRCMD][failure] [XR_ERROR_HANDLE_INVALID]: xrLocateSpace(*(XrSpace*)space, baseSpace, ToXrTime(GetTimeInSeconds()), &spaceLocation), arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.cpp:11831
I found the solution: Uninstall the Vive Business Streaming software. If you have that error, I bet you have that installed.
Have a nice day!
Great Video ! Can I use this with Depth API?. I just wanted to find the floor and place an object with Depth API enabled.
Yes, that should still work!
Hi, does this work in quest 2 as well?
When I run the MRUKBase the scene is just jerky and unusable on the Quest 3 when run in Editor. If i compile and deploy to device it works fine. Anyone know how to get it working in the Editor. Passthrough via link is enabled and i can see the app working it just doesn't run correctly.
Reboot unity
In other tutorials they state to use a Navmesh to determine where to spawn items. The example scene doesn't seem to use them. In an Quest 3, with Unity MR Application do I require a navmesh?
You do not require navmesh for spawning items at all!
Thanks a lot. Great tutorial!
Any reasoon why I get my room scene on PC but when I build the project I get a random room or none at all? (the physical room is already setup on my Quest)
Did you make sure that on your MRUK component under "Scene Settings" for "Data Source" you selected either "Device" or "Device with Prefab Fallback"? Try both and please let me know if that worked!
@@blackwhalestudio Thanks. Found the issue. In the OVRCameraRig Scene Support is disabled by default
Is it possible to test the scene captured by the headset through the editor? I get this error, although I have a scene captured:
MRUKLoader couldn't load any scene data. Ensure that Scene Capture has been run and that the runtime permission for Scene Data has been granted.
yes, make sure spatial data over meta link is enabled in your Oculus Link PC app
Thanks for the video. I got this error message: " There is no scene model available, and scene capture cannot be invoked over Link. Please capture a scene with the HMD in standalone mode, then access the scene model over Link. If a scene model has already been captured, make sure the HMD is connected via Link and that it is donned. "
However, I have created a room scan already, any idea?
Thank you!
Hi! Make sure you have captured a scene model with your device before. Also make sure to enable "scene support" on your OVR Manager component on the OVR Camera Rig and lastly, in your Oculus Link App (on your Windows PC) make sure to enable the Spatial Data over Quest Link toggle under the Beta features.
@@blackwhalestudio It works! It was the "Spatial Data over Quest Link" I didn't enable. Thank you very much
when i import the virtual home sample i have this error
Assets\Samples\Meta MR Utility Kit\60.0.0\Virtual Home\scripts\Resizer\FurnitureResizer.cs(52,61): error CS0234: The type or namespace name 'InvSqrt2' does not exist in the namespace 'Utilities'
any suggestions?
Yes, unfortunately they have an error. You can just comment this section in the script. As far as I can tell it is not really impacting the scene.
@@blackwhalestudio thanks for the answer, yes i just commented that variable and replaced it with the value from the utilities script
Hey do you know why in my MRUK component there isn't an enable world lock checkbox? i have the Meta MR Utility Kit v60.0
it should definitely be there, are you sure you are on the correct component?
@@blackwhalestudio Yes, the MRUK script in my MRUK prefab is identical without the enable world lock checkbox, searching online i don't find anyone else with this strage problem
@@Syertim@blackwhalestudio did you find a solution? The checkbox also doesn´t show up in my project...
I wonder if this is a bug. I'm on a Mac in Unity 2022.3.5f1 using MRTK v62, and also don't see the "enable world lock checkbox", however when I check the script I see "public bool EnableWorldLock", but there is no visible checkbox in my Unity project like we see in your video @blackwhalestudio. That said, it seems EnableWorldLock is enabled by default in the code. [edit] Confirmed Windows Unity build 2022.3.21f1 also does not show the "enable world lock checkbox" at the time of this comment.
@@dagmarschurrer4466 i think in the version v62 the checkbox is not visibile in the inspector, i don't know why, hope it works anyway
Does this work with Mac?
Yes