cancel
Showing results for 
Search instead for 
Did you mean: 

MR Utility Kit 63.0 - Scene Does Not Load From Device

RM1181
Protege

Configuration:

Meta Quest 3
UE5.3.2 (Windows x64)
Mixed Reality Utility Kit Plugin 63.0
MetaXR Plugin 63.0

I just started using the MR Utility Kit and am having some problems with the sample project.  The demo attempts to load the Scene description stored on the headset, and if that fails, it loads a random room from a JSON data table asset.  The headset has a Scene already setup, and I found that while playing VR in the UE Editor, I could get the Scene to load after enabling "Spatial Data over Meta Quest Link" in the Oculus desktop app.  At this point my room would load properly, but would soon start slowly "floating away" uncontrollably.  So I turned off the World Locking feature in the MR Utility Kit plugin, and now the room stays in place (this drifting is probably a separate issue?).  I packaged the project for Windows and played in PCVR, and the Scene loads correctly.  But the main problem is when I package the APK and deploy to the headset, the Scene does not load in the standalone app and falls back to one of the random JSON rooms.  The app has permission to use spatial data, so I don't know what's going on or how to troubleshoot this.  Any thoughts or help would be greatly appreciated!

1 ACCEPTED SOLUTION

Accepted Solutions

RM1181
Protege

Long story short, it is working now!

I have used the MQDH before and looked at the device logs, but didn't know you could filter by app name, so hadn't found these logs very helpful in the past.  So thanks for that!

Using the MQDH device logs and filtering on my app name, I noticed that there was some kind of trust issue with the app, which made me think maybe it was needing to connect to a Meta or Unreal server online.  I develop in an environment where the headset is offline.  So I went down to our lab, connected it to WIFI, and ran the sample project app and my VRTemplate app.  After launching them multiple times, both failed to load the Scene, same as before.  Disappointed, I went back to my desk to continue working offline.  The headset had lost its Boundary, so I had to create a new one.  I launched my test app, and voila, the Scene suddenly loaded.  I reinstalled the app to start over fresh and see if I would need to go back to the lab and get online or recreate the Boundary again, but the Scene loaded fine without having to resort to any tricks.  So not exactly sure which action fixed the problem, but I'm guessing it was launching the app while connected to the internet.  Hopefully my journey here can help some other poor soul out there.  🙂

I appreciate you helping me think through this.  It was very helpful!

View solution in original post

14 REPLIES 14

DreadHeadFred
Protege

When you load the app on the headset does it prompt you to give permission for spatial data? I've had trouble with the default blueprint for this and often times, after giving permission, I have to exit the app then restart it.  I've bandaided the code to add delay before and after "Request Scene Permission".

This is a macro on my Level's blueprint that I call on Begin Play before anything else. Seems to help for the 'first run' on the headset as long as I press the accept button in time.

Untitled.png

 

Here's the Request Scene Permission function if you need it.

Untitled.png

RM1181
Protege

Thanks for the reply.  I've also had apps where I had to exit and restart after giving permission.  Unfortunately, that does not work in this case.  I did go ahead and add some delays like you showed above, just to give the app some time to get settled before trying to load the Scene, but still nothing... 

Sorry I can't be more help but at this point, maybe try deleting your room on the headset and set it up again. That's the next best thing I can suggest.

RM1181
Protege

Yeah, unfortunately I had already tried that as well.  In fact, I had another brand new Quest 3 on hand, so I set it up and it does the same thing: fails to load the Scene.  I've also tried building with JDK 11.0.2 and JDK 17.0.10.  I should also note that my headsets are up-to-date (Runtime v63.0.0.397.363.579007360).  Thanks for your suggestions, though.

Actually, here's an export of my rendering settings. You can import this and try but maybe do an export of your settings first for a backup. You'll need to rename the extension to ".ini". Couldn't attach it with that extension.

RM1181
Protege

FYI, there is a Permissions Granted delegate that allows your app to react to the user's input immediately without having to wait a predetermined amount of time.

RM1181_0-1712754127859.png

 

Now you're helping me?  Hehe..  Thanks for that. I thought there must be something for it but I had yet to come across any examples. Appreciate it.

RM1181
Protege

Do you happen to be using the Oculus fork?  I am using the vanilla install.  The documentation made it sound like the fork was not necessary for the MRUK, but maybe some functionality is missing.

I am, but I also had it working on epics 5.3.2 with the Meta plugin previously. Which sample are you using?  Have you tried any other 'scene' sample?

By the way, I implemented your delegate suggestion and it works a charm. Thanks again for that.