cancel
Showing results for 
Search instead for 
Did you mean: 

Local Space can not be loaded from Quest to Unity

I am trying to load a Scene / Room from a Quest 3 into unity. The objects are being loaded, but their transform isn't.

This seems to happen since Update 60. @MetaQuestSupport Is this a known error and do you know a workaround?


[OVRPlugin] [XRCMD][failure] [XR_ERROR_HANDLE_INVALID]: xrLocateSpace(*(XrSpace*)space, baseSpace, ToXrTime(GetTimeInSeconds()), &spaceLocation), arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.cpp:11831 (arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.h:302)

OVRSceneAnchor:Initialize (OVRAnchor) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRSceneAnchor.cs:142)
OVRSceneManager:InstantiateSceneAnchor (OVRAnchor,OVRSceneAnchor) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRSceneManager.cs:995)
OVRSceneRoom:OnLocalizationCompleted (bool,OVRAnchor) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRSceneRoom.cs:176)
OVRTask`1/CallbackWithState`1<bool, OVRAnchor>:Invoke (bool) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/Util/Async/OVRTask.cs:469)
OVRTask`1/CallbackWithState`1<bool, OVRAnchor>:Invoke (System.Guid,bool) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/Util/Async/OVRTask.cs:454)
OVRTask`1<bool>:SetResult (bool) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/Util/Async/OVRTask.cs:206)
OVRManager:UpdateHMDEvents () (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRManager.cs:2767)
OVRManager:Update () (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRManager.cs:2723)

And because of that:
[OVRSceneAnchor] [9321a5b7-80ae-b131-9fb5-2ef32da70e08] TryLocateSpace failed. The entity may have the wrong initial transform.
UnityEngine.Debug:LogWarning (object,UnityEngine.Object)
OVRSceneManager/Development:LogWarning (string,string,UnityEngine.GameObject) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRSceneManager.cs:354)
OVRSceneAnchor:Initialize (OVRAnchor) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRSceneAnchor.cs:150)
OVRSceneManager:InstantiateSceneAnchor (OVRAnchor,OVRSceneAnchor) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRSceneManager.cs:995)
OVRSceneRoom:OnLocalizationCompleted (bool,OVRAnchor) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRSceneRoom.cs:176)
OVRTask`1/CallbackWithState`1<bool, OVRAnchor>:Invoke (bool) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/Util/Async/OVRTask.cs:469)
OVRTask`1/CallbackWithState`1<bool, OVRAnchor>:Invoke (System.Guid,bool) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/Util/Async/OVRTask.cs:454)
OVRTask`1<bool>:SetResult (bool) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/Util/Async/OVRTask.cs:206)
OVRManager:UpdateHMDEvents () (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRManager.cs:2767)
OVRManager:Update () (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRManager.cs:2723)

Any ideas?

1 ACCEPTED SOLUTION

Accepted Solutions

And you want to know what? I also found the real problem!

It's the HTC Vive Business Streaming software! No wonder nobody else has this issue, because who would work with HTC and Meta at the same time? But right after installing the "Vive Business Streaming", I get the same issue, so it seems like it interferes with the OVR / OpenXR - version / level / software / sdk / whatever on a fundementally level.

The reason I installed that software a while ago was because I wanted to use the new Ultimate Trackers in my application, but on a different system, without any HTC-Headset. Who would have thought, that this software also interferes with OVR...


Uninstalling THAT software and restarting resolves the issue!

View solution in original post

10 REPLIES 10

JeffNik
MVP
MVP

What do you mean by "the object is being loaded, but the transform isn't"? I'm assuming that you have a OVRSceneManager and loader script in the scene, and you have setup prefabs for your scene objects and THESE are what are getting loaded, correct? Do your prefabs have "OVRSceneAnchor" scripts on them? If not, that might be the reason they aren't keeping position in your room space.

Also - you have enabled "Scene Support" in your OVRManager settings, yes?

Hi Jeff,
yes, I have the OVRSceneManager and Loader in the scene. To be exact, I have the same issue with the Basic Example Scene of the new "Mixed Reality Utility Kit", that was introduced in V.60. And since the Gameobjects are being imported from the Meta Quest directly, all the objects then have an OVRSceneAnchor attached by design. Otherwise, I wouldn't get the warning, triggered by the OVRSceneAnchor:

"[OVRSceneAnchor] [9321a5b7-80ae-b131-9fb5-2ef32da70e08] TryLocateSpace failed."

So, that is not the issue. Have you tried importing this data from the Quest into Unity yourself?

Just to be clear, the Transform works fine as a Build in the Quest, so it seems to fail while transferring that Transform-Data into Unity.

And yes, Scene Support is enabled as well as any other Settings on the Quest 3, the Oculus Application for Oculus Link as well as any other developer mode settings, sharing point cloud data and so on and on.

Like I said, even the basic example fails to load the position / Transform data of the imported Room Model data.
I am not talking about Gameobjects I created myself and added the scripts myself. I import the room from the Quest, that I set there with the room setup option on the Quest. I can see all the imported Gameobjects of that predefined room, they just don't have any transform-data (apart from (0,0,0)).

So if you know any other ideas that might resolve that issue (maybe a deeply hidden setting?) I am open to new ideas.

@MetaQuestSupportYou guys have any more insight into that issue?

Greetings

Florian

@MetaQuestSupportStill looking for a solution. Or should I ask the same question again in "Get Help"?

I can add to the problem that it seems to be unique to my current PC-Setup. The Quest works fine on other PCs and with the same project. I reinstalled Oculus Desktop and Unity, even switched Unity versions. that didn't help.

I can only use one USB-C port, so I can not switch out that.

I am totally at a loss

I now removed everything that had to do something with oculus, Meta, and Unity in Safe Mode (Windows 10), including all files in AppData and also cleaned out the registry. I then reinstalled everything and created a brand new Unity project with only the Meta SDK and MR Utility Toolkit Basic Example. The error persists.

Setup:
Dell Precision 3660
RTX 4090
13th Gen Intel(R) Core(TM) i9-13900K 3.00 GHz
32.0 GB DDR5

Headset connected over USB-C, but it also doesn't work over AirLink.

Any ideas other than totally reinstalling Windows 10?  @MetaQuestSupport 

[OVRPlugin] [XRCMD][failure] [XR_ERROR_HANDLE_INVALID]: xrLocateSpace(*(XrSpace*)space, baseSpace, ToXrTime(GetTimeInSeconds()), &spaceLocation), arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.cpp:11831 (arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.h:302)
UnityEngine.Debug:LogWarning (object)
OVRManager:OVRPluginLogCallback (OVRPlugin/LogLevel,intptr,int) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRManager.cs:1984)
OVRPlugin:TryLocateSpace (ulong,OVRPlugin/TrackingOrigin,OVRPlugin/Posef&,OVRPlugin/SpaceLocationFlags&) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRPlugin.cs:10180)
OVRLocatable:TryGetSceneAnchorPose (OVRLocatable/TrackingSpacePose&) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRAnchor/OVRAnchorComponents/OVRLocatable.cs:170)
Meta.XR.MRUtilityKit.MRUK/<LoadSceneFromDevice>d__31:MoveNext () (at ./Library/PackageCache/com.meta.xr.mrutilitykit@60.0.0/Core/Scripts/MRUK.cs:368)
System.Runtime.CompilerServices.AsyncMethodBuilderCore/MoveNextRunner:Run ()
OVRTask`1<bool>:SetResult (bool) (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/Util/Async/OVRTask.cs:216)
OVRManager:UpdateHMDEvents () (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRManager.cs:2767)
OVRManager:Update () (at ./Library/PackageCache/com.meta.xr.sdk.core@60.0.0/Scripts/OVRManager.cs:2723

FYI: I reinstalled Windows. The bug is gone now, but I did not figure out the reason. My best guess is right now the Meta Quest Developer Hub and some settings there.

Wow - surprising that you had to go to such extremes to get it to work. Glad to hear you finally resolved the issue, though.

And you want to know what? I also found the real problem!

It's the HTC Vive Business Streaming software! No wonder nobody else has this issue, because who would work with HTC and Meta at the same time? But right after installing the "Vive Business Streaming", I get the same issue, so it seems like it interferes with the OVR / OpenXR - version / level / software / sdk / whatever on a fundementally level.

The reason I installed that software a while ago was because I wanted to use the new Ultimate Trackers in my application, but on a different system, without any HTC-Headset. Who would have thought, that this software also interferes with OVR...


Uninstalling THAT software and restarting resolves the issue!

Oh man you saved my life. 😯

Maybe 1 years ago I got problems DllNotFoundException with Unity in VR using Quest Link, every dll from my plugins could not be loaded. My workaround was to use the old Legacy ovr API in the oculus settings, to get rid of it. Then few month ago it Legacy API became obselete, and I had to use Oculus OpenXR runtime. The problem came back, I could not work. My work around was to run the game once without VR, then start the game in VR. And it would work (but sometime crash). (I tried so many things like putting my dll directly in Unity folder, I was desperate...)

It's when I had to implement Shared Anchors, that I ended up having this [XR_ERROR_HANDLE_INVALID] xrLocateSpace issue. And my research led me to your discovery, and it fixed all this anchors and dll problems all at once!

Thank you so much!

Maybe one small addition :
Ensure to close Unity before uninstalling Vive Business Streaming, otherwise some vive dll will survive in
C:/Program Files/VIVE Business Streaming/OpenXR/ViveVR_openxr/