Forum Discussion

sasquatchua's avatar
sasquatchua
Explorer
8 days ago
Solved

Trying to get Scene working

Hello all, I'm starting an AR Unreal 5.6.1 app with the Meta Quest 3. I'm trying to figure out how to scan my (real) environment and do raycasting against the room mesh. The Scene docs page points me over to the MRUK page. The MRUK page says to call LoadSceneFromDeviceAsync. When I do that my App crashes, and I pulled the .log file off my Android/<project> folder on my device and it had no callstack. So I started reverse engineering the setup done in the "Core" level in MRUtilityKitSample.

The thing is, I can't get scene scans to work in the Sample on the Quest 3 either. On the Quest 2, it forced me to manually draw walls and furniture but then I was able to use the raycast modes, identify the main wall, etc. On the Quest 3, it takes me to the room auto-scanner but then when I return to the MRUKSample app the Room Details widget says there are 0 rooms loaded and none of the core demo modes seem to do anything.

I noticed that Core.umap -> SetupRoom is using a deprecated node, LoadGlobalMeshFromDevice. So I tried replacing it with GenerateProceduralSceneMesh, but that function fails if you don't add a global anchor first. So before I continue to try to mess with this I want to ask if anyone has gone through and gotten scene capture working on v81.

MetaXR plugin is v81.0 / the OculusXR.uplugin file has Version Name "1.113.0"

Headset says software is up to date, is also v81.0 from Nov 20, 2025

This is what I see after I run "launch scene capture" and return.

 

  • Fun fact... scene scanning / loading doesn't work if you don't also check "Anchor Support" in Meta XR plugin properties in your project. Once I fixed that both issues (LoadSceneFromDeviceAsync at start time, and LaunchSceneCapture) were resolved. Hope this thread wasn't a complete waste of time, maybe someone else will run into the same issues at some point?

5 Replies

  • No explanation for what changed today other than I added a bunch of Print Text nodes to WBP_CoreMenuPane.uasset and Core.umap but I'm now getting success back from the OnCaptureComplete event and GenerateProceduralSceneMesh, and I'm seeing my real spaces show up properly in the MRUK Sample project and handle raycasts. So I guess I'm good?

    • chilton's avatar
      chilton
      Protege

      I hate bugs like that. 

      I had an issue that turned out to be a timing problem. I just had to have my headset wait .5 seconds before performing one of its startup tasks, and that did the trick. So I wonder if the extra print text nodes are forcing it to wait or maybe putting it into a different state. 

      Either way, you might've lucked out. Quick, finish your app before the Great Simulation realizes you're back up and running!

       

      • sasquatchua's avatar
        sasquatchua
        Explorer

        I also went through the entire project setup documentation again to see if I missed something, and while doing that I hit the Apply All button to fix 2 or 3 Rules that were flagged with warnings in the Meta XR project setup tool. In hindsight, it seems likely that something about that did it...

  • Still working on getting this running on my own project. I'm attempting to emulate what's in the MRUK Sample project's Core.umap. It's still crashing if I call LoadSceneFromDeviceAsync after getting AndroidPermissionGranted on "USE_SCENE" during or after BeginPlay. From what I can see of the source code on LoadSceneFromDeviceAsync, seems like WorldContext is not valid? Which I'm not sure how that would be possible for the launch level of my project after BeginPlay is called...

    So for the moment I've disabled that and set up a widget button so I can manually call MRUKSubsystem::LaunchSceneCapture, and I cranked up several of the MetaXR log categories to Verbose. Here's what it's giving me:

    [2025.12.08-16.21.46:022][498]LogBlueprintUserMessages: [WBP_TestMenu_C_1] MYLOG: TestMenu Calling CaptureScene
    [2025.12.08-16.21.46:022][498]LogOculusXRScene: Verbose: Launch capture flow -- UOculusXRRoomLayoutManagerComponent
    [2025.12.08-16.21.46:022][498]LogOculusXRScene: Verbose: Launch capture flow -- RequestSceneCapture -- 4
    [2025.12.08-16.21.46:022][498]LogMRUK: Error: Launching capture flow failed!
    [2025.12.08-16.21.46:022][498]LogBlueprintUserMessages: [WBP_TestMenu_C_1] MYLOG: SceneCapture Result:false

    Error 4 could be "InvalidOperation" or "Unavailable"... considering moving the plugin out of Engine/Plugins/Marketplace and into Project/Plugins so I can start adding some logging to it, but it seems likely that there's some additional system initialization or project settings that I've failed to do. I don't see anything relevant in BP_DemoGameState.uasset or BP_VRDemoPawn, and UMRUKSubsystem::Initialize was successfully called.

  • Fun fact... scene scanning / loading doesn't work if you don't also check "Anchor Support" in Meta XR plugin properties in your project. Once I fixed that both issues (LoadSceneFromDeviceAsync at start time, and LaunchSceneCapture) were resolved. Hope this thread wasn't a complete waste of time, maybe someone else will run into the same issues at some point?

→ Find helpful resources to begin your development journey in Getting Started

→ Get the latest information about HorizonOS development in News & Announcements.

→ Access Start program mentor videos and share knowledge, tutorials, and videos in Community Resources.

→ Get support or provide help in Questions & Discussions.

→ Show off your work in What I’m Building to get feedback and find playtesters.

→ Looking for documentation?  Developer Docs

→ Looking for account support?  Support Center

→ Looking for the previous forum?  Forum Archive

→ Looking to join the Start program? Apply here.

 

Recent Discussions