Wereldvergrendeling en ruimtelijke ankers in Unity

Hero-afbeelding van wereldvergrendelingshulpprogramma's

Het is een belangrijk onderdeel van het maken van Mixed Reality toepassingen om uw hologrammen te behouden, mee te bewegen of zich in sommige gevallen ten opzichte van andere hologrammen te positioneren. In dit artikel vindt u onze aanbevolen oplossing met behulp van World Locking Tools, maar we behandelen ook het handmatig instellen van ruimtelijke ankers in uw Unity-projecten. Voordat we aan de slag gaan met code, is het belangrijk om te begrijpen hoe Unity omgaat met het coördineren van ruimte en ankers in de eigen engine.

Coördinatensystemen op wereldschaal

Wanneer u tegenwoordig games, apps voor gegevensvisualisatie of virtual reality-apps schrijft, is de gebruikelijke benadering om één absoluut wereldcoördinatensysteem op te zetten waaraan alle andere coördinaten op betrouwbare wijze kunnen worden toegewezen. In die omgeving kunt u altijd een stabiele transformatie vinden die een relatie tussen twee objecten in die wereld definieert. Als u deze objecten niet verplaatst, blijven de relatieve transformaties altijd hetzelfde. Dit soort globaal coördinatensysteem is gemakkelijk te krijgen bij het weergeven van een puur virtuele wereld waarin u alle geometrie van tevoren kent. VR-apps op ruimteschaal vormen tegenwoordig meestal dit soort absolute coördinaatsystemen op ruimteschaal met zijn oorsprong op de vloer.

Een niet-gekoppeld mixed reality-apparaat zoals HoloLens heeft daarentegen een dynamisch sensorgestuurd begrip van de wereld, waarbij de kennis van de omgeving van de gebruiker voortdurend wordt aangepast wanneer ze vele meters over een hele verdieping van een gebouw lopen. In een wereldwijde ervaring, als u al uw hologrammen in een naïef star coördinaatsysteem plaatst, zouden die hologrammen in de loop van de tijd afdrijven, hetzij gebaseerd op de wereld of ten opzichte van elkaar.

De headset kan bijvoorbeeld geloven dat twee locaties in de wereld op dit moment 4 meter uit elkaar liggen en dat begrip later verfijnen en leren dat de locaties in feite 3,9 meter uit elkaar liggen. Als deze hologrammen in eerste instantie 4 meter uit elkaar waren geplaatst in één stijf coördinatensysteem, zou een van hen altijd 0,1 meter van de echte wereld lijken.

U kunt handmatig ruimtelijke ankers in Unity plaatsen om de positie van een hologram in de fysieke wereld te behouden wanneer de gebruiker mobiel is. Dit offert echter de zelfconsistentie binnen de virtuele wereld op. Verschillende ankers bewegen zich voortdurend ten opzichte van elkaar en bewegen zich ook door de globale coördinaatruimte. In dit scenario worden eenvoudige taken, zoals de indeling, moeilijk. Fysicasimulatie kan ook problematisch zijn.

World Locking Tools (WLT) biedt u het beste van beide werelden, waarbij een enkel star coördinatensysteem wordt gestabiliseerd met behulp van een interne levering van ruimtelijke ankers verspreid over de virtuele scène terwijl de gebruiker zich verplaatst. WLT analyseert de coördinaten van de camera en die ruimtelijke ankers elk frame. In plaats van de coördinaten van alles ter wereld te wijzigen om te compenseren voor de correcties in de coördinaten van het hoofd van de gebruiker, corrigeert WLT alleen de coördinaten van het hoofd.

Kies uw wereldvergrendelingsbenadering

Gebruik indien mogelijk World Locking Tools voor het plaatsen van hologrammen.

World Locking Tools biedt een stabiel coördinatensysteem dat de zichtbare inconsistenties tussen virtuele en echte wereldmarkeringen minimaliseert. World Locking Tools vergrendelt de hele scène met een gedeelde groep ankers, in plaats van elke groep objecten te vergrendelen met het eigen afzonderlijke anker van de groep.

World Locking Tools zorgt automatisch voor interne creatie en beheer van ruimtelijke ankers. U hoeft niet te communiceren met ARAnchorManager of WorldAnchor om uw hologrammen vergrendeld te houden.

  • Voor Unity 2019/2020 met OpenXR of de Windows XR-invoegtoepassing gebruikt u ARAnchorManager.
  • Gebruik WorldAnchor voor oudere Unity-versies of WSA-projecten.

Wereldvergrendeling instellen

Download het hulpprogramma voor Mixed Reality functie om aan de slag te gaan met de World Locking Tools. Zie de hoofddocumentatiepagina van World Locking Tools voor koppelingen naar Overzicht, Quickstart en andere nuttige onderwerpen voor meer informatie over de basisbeginselen.

Geautomatiseerde installatie

Wanneer uw project klaar is, voert u het hulpprogramma scène configureren uit vanuit Mixed Reality > World Locking Tools:

Unity-editor met Mixed Reality toolkitmenu geselecteerd

Belangrijk

Het hulpprogramma Scène configureren kan op elk gewenst moment opnieuw worden uitgevoerd. Het moet bijvoorbeeld opnieuw worden uitgevoerd als het AR-doel is gewijzigd van verouderd naar XR SDK. Als de scène al correct is geconfigureerd, heeft het uitvoeren van het hulpprogramma geen effect.

Visualizers

Tijdens de vroege ontwikkeling kan het toevoegen van visualizers handig zijn om ervoor te zorgen dat WLT is ingesteld en goed werkt. Ze kunnen worden verwijderd voor productieprestaties of, als ze om welke reden dan ook niet meer nodig zijn, met behulp van het hulpprogramma Visualizers verwijderen. Meer informatie over de visualizers vindt u in de documentatie over hulpprogramma's.

Permanente wereldvergrendeling

Ruimtelijke ankers besparen hologrammen in de echte ruimte tussen toepassingssessies. Nadat ze zijn opgeslagen in het HoloLens-ankerarchief, kunnen ruimtelijke ankers in verschillende sessies worden gevonden en geladen. Dit is een ideale terugval wanneer er geen internetverbinding is.

Belangrijk

Lokale ankers worden opgeslagen op het apparaat, terwijl Azure Spatial Anchors worden opgeslagen in de cloud. U kunt lokale en Azure-ankers in hetzelfde project hebben zonder conflict. Zie Azure Spatial Anchors voor meer informatie over het integreren van Azure-cloudservices om uw ankers op te slaan.

Standaard herstelt World Locking Tools het coördinatensysteem van Unity ten opzichte van de fysieke wereld in sessies op apparaten die ondersteuning bieden voor persistentie van lokale ruimtelijke ankers. Als u een hologram wilt weergeven op dezelfde plaats in de fysieke wereld nadat u de toepassing hebt afgesloten en opnieuw hebt uitgevoerd, hoeft de toepassing alleen dezelfde houding in het hologram te herstellen.

Contextonderdeel Wereldvergrendeling in Unity Inspector

Als de toepassing meer controle nodig heeft, kunt u Automatisch opslaan en Automatisch laden uitschakelen in de inspector en persistentie beheren vanuit een script. Zie Systemen voor ruimtelijke coördinaten behouden voor meer informatie.

World Locking Tools ondersteunt alleen lokale ankerpersistentie op HoloLens-apparaten. Voor Android-, iOS- en HoloLens-apparaten kunt u integreren met Azure Spatial Anchors om persistentie en het delen van coördinaatruimten tussen sessies en apparaten te ondersteunen. Zie World Locking Tools (WLT) in combinatie met Azure Spatial Anchors (Azure Spatial Anchors) voor meer informatie en voorbeelden met Behulp van World Locking Tools met Azure Spatial Anchors.

Volgende stappen

Deel een wereld vergrendelde coördinaatruimte:

Meer informatie over ruimtelijke toewijzing:

Terug naar de Unity-ontwikkelcontrolepunten:

Zie ook