azureunity-game-engineuwpwindows-mixed-realityazure-spatial-anchors

Not getting access to Windows SpatialPerception for Immersive VR


I am developing in Unity for the new HP Reverb building on UWP. I would like to use Azure Spatial Anchors to share those anchors between computers.

Since the HP Reverb is an InsideOut tracked Headset, the Spatial Anchors are working fine, but I am not getting access to the SpatialAnchorExporter. Using the Azure Example Project for connecting to the cloud from Unity gives me an Access denied to spatial anchor exporter. error.

In "Capabilities" I have SpatialPerception ENABLED, I checked it in Unity AND in VS2019.

Specifically the following lines which tell me that I have no access:

Windows.Perception.Spatial.SpatialPerceptionAccessStatus accessStatus = 
await Windows.Perception.Spatial.SpatialAnchorExporter.RequestAccessAsync();

Trying to do the same thing without Azure gives me more or less the same error, UnityEngine.XR.WSA.Sharing.WorldAnchorTransferBatch.ExportAsync() returns:

SpatialAnchorTransferManager denied access to WorldAnchor serialization 
UnityEngine.XR.WSA.Sharing.WorldAnchorTransferBatch:ExportAsync_Internal(WorldAnchorTransferBatch, 
SerializationDataAvailableDelegate, SerializationCompleteDelegate) 
UnityEngine.XR.WSA.Sharing.WorldAnchorTransferBatch:ExportAsync(WorldAnchorTransferBatch, 
SerializationDataAvailableDelegate, SerializationCompleteDelegate)

Solution

  • For the HP Reverb usage scenario raised on saving spatial anchors, this is not available. This WorldAnchorTransferBatch API is exposed for HoloLens at this point solely.

    That said, Microsoft has provided specific support and guidance for LBE(Location based entertainment) usage. Specifically, we have documented the ability to importing and exporting of the map. Microsoft has also provided tools to export the configurations to multiple immersive headset devices. See LBE-MULTI-PLAYER SETUP