Mixed Reality Utility Kit: Build spatially-aware apps with Meta XR SDK

Sdílet
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

Komentáře • 43

  • @haraldgundersen7303
    @haraldgundersen7303 Před 6 měsíci +1

    Great stuff... Very nice video...👍

  • @eBautistaBau
    @eBautistaBau Před 4 měsíci

    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?

  • @dominikstarzyk6678
    @dominikstarzyk6678 Před 5 měsíci

    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!

  • @ArtBySabin
    @ArtBySabin Před 5 měsíci +1

    Great video, thanks for posting this! Btw, does this work over Link, or only on Quest builds?

  • @kankan3555
    @kankan3555 Před 2 měsíci

    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

  • @JoseLuisGutierrezHerrera
    @JoseLuisGutierrezHerrera Před 6 měsíci +2

    Great video! Do you think it's possible to use this with open xr since you mentioned ovr manager is not needed?

    • @blackwhalestudio
      @blackwhalestudio  Před 6 měsíci +1

      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!

  • @antonolivaresjuanjose2992
    @antonolivaresjuanjose2992 Před 6 měsíci +4

    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?

    • @blackwhalestudio
      @blackwhalestudio  Před 6 měsíci +3

      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!

    • @antonolivaresjuanjose2992
      @antonolivaresjuanjose2992 Před 6 měsíci +2

      Thank you very much, I will do that and I hope the scene works correctly.

    • @neurogoblin
      @neurogoblin Před 4 měsíci

      You can also replace that Utilities.InvSqrt2 with "1 / Mathf.Sqrt(2)"

  • @FlorianBuchholz1
    @FlorianBuchholz1 Před 5 měsíci +1

    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

    • @FlorianBuchholz1
      @FlorianBuchholz1 Před 5 měsíci

      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!

  • @vikneshkamal
    @vikneshkamal Před 6 měsíci +1

    Great Video ! Can I use this with Depth API?. I just wanted to find the floor and place an object with Depth API enabled.

  • @looo000
    @looo000 Před 2 měsíci

    Hi, does this work in quest 2 as well?

  • @qualar
    @qualar Před 5 měsíci +1

    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.

  • @IlanPerez
    @IlanPerez Před 3 měsíci

    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?

    • @blackwhalestudio
      @blackwhalestudio  Před 3 měsíci

      You do not require navmesh for spawning items at all!

  • @AvivXR
    @AvivXR Před 5 měsíci

    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)

    • @blackwhalestudio
      @blackwhalestudio  Před 5 měsíci

      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!

    • @AvivXR
      @AvivXR Před 5 měsíci

      @@blackwhalestudio Thanks. Found the issue. In the OVRCameraRig Scene Support is disabled by default

  • @aureliopuertamartin3631
    @aureliopuertamartin3631 Před 4 měsíci

    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.

    • @blackwhalestudio
      @blackwhalestudio  Před 4 měsíci

      yes, make sure spatial data over meta link is enabled in your Oculus Link PC app

  • @kachichan
    @kachichan Před 4 měsíci

    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!

    • @blackwhalestudio
      @blackwhalestudio  Před 4 měsíci +2

      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.

    • @kachichan
      @kachichan Před 4 měsíci +1

      @@blackwhalestudio It works! It was the "Spatial Data over Quest Link" I didn't enable. Thank you very much

  • @Syertim
    @Syertim Před 5 měsíci

    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?

    • @blackwhalestudio
      @blackwhalestudio  Před 5 měsíci

      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.

    • @Syertim
      @Syertim Před 5 měsíci

      @@blackwhalestudio thanks for the answer, yes i just commented that variable and replaced it with the value from the utilities script

  • @Syertim
    @Syertim Před 4 měsíci

    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

    • @blackwhalestudio
      @blackwhalestudio  Před 4 měsíci

      it should definitely be there, are you sure you are on the correct component?

    • @Syertim
      @Syertim Před 4 měsíci

      @@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

    • @dagmarschurrer4466
      @dagmarschurrer4466 Před 4 měsíci

      @@Syertim@blackwhalestudio did you find a solution? The checkbox also doesn´t show up in my project...

    • @Blast_XR
      @Blast_XR Před 3 měsíci +2

      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.

    • @Syertim
      @Syertim Před 3 měsíci +1

      @@dagmarschurrer4466 i think in the version v62 the checkbox is not visibile in the inspector, i don't know why, hope it works anyway

  • @Filmblanc
    @Filmblanc Před 2 měsíci

    Does this work with Mac?