Delen via


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 op hun plaats te houden, met u mee te bewegen of zich in sommige gevallen te positioneren ten opzichte van andere hologrammen. In dit artikel leest 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 in code gaan, is het belangrijk om te begrijpen hoe Unity omgaat met ruimte coördineren en ankers in de eigen engine.

Coördinatensystemen op wereldschaal

Tegenwoordig is bij het schrijven van games, gegevensvisualisatie-apps of virtual reality-apps de gebruikelijke aanpak om één absoluut wereldcoördinaatsysteem 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 definieert tussen twee objecten in die wereld. Als u deze objecten niet verplaatst, blijven hun relatieve transformaties altijd hetzelfde. Dit soort globale coördinatensysteem is eenvoudig te krijgen wanneer u een puur virtuele wereld weergeeft waarin u alle geometrie vooraf kent. VR-apps op kamertemperatuur vormen tegenwoordig meestal dit soort absolute coördinaatsysteem op ruimteschaal met zijn oorsprong op de vloer.

Een niet-gekoppeld mixed reality-apparaat, zoals HoloLens, heeft daarentegen een dynamisch sensorgestuurd inzicht in de wereld, waarbij de kennis van de omgeving van de gebruiker voortdurend wordt aangepast wanneer deze vele meters over een hele verdieping van een gebouw loopt. Als u al uw hologrammen in een naïef, star coördinaatsysteem zou plaatsen, zouden die hologrammen in de loop van de tijd drijven, hetzij op basis van de wereld of ten opzichte van elkaar.

De headset kan bijvoorbeeld geloven dat twee locaties in de wereld zich op 4 meter afstand bevinden en dat begrip later verfijnen en leren dat de locaties in feite 3,9 meter uit elkaar liggen. Als die hologrammen in eerste instantie 4 meter uit elkaar waren geplaatst in een enkel star coördinaatsysteem, zou een van hen altijd 0,1 meter verwijderd zijn van de echte wereld.

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 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.

Met World Locking Tools (WLT) krijgt u het beste van beide werelden, waarbij een enkel star coördinatensysteem wordt gestabiliseerd met behulp van een interne toevoer 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 de correcties in de coördinaten van het hoofd van de gebruiker te compenseren, corrigeert WLT alleen de coördinaten van het hoofd.

Kies uw wereldvergrendelingsbenadering

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

World Locking Tools biedt een stabiel coördinatensysteem dat de zichtbare inconsistenties tussen virtuele en echte markeringen 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 Mixed Reality Feature Tool om aan de slag te gaan met de World Locking Tools. Zie de belangrijkste documentatiepagina 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 toolkit-menu 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 in XR SDK. Als de scène al correct is geconfigureerd, heeft het uitvoeren van het hulpprogramma geen effect.

Visualisaties

Tijdens de vroege ontwikkeling kan het toevoegen van visualisaties nuttig zijn om ervoor te zorgen dat WLT correct wordt 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 visualisaties vindt u in de documentatie over hulpprogramma's.

Permanente wereldvergrendeling

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

Standaard herstellen World Locking Tools het coördinaatsysteem van Unity ten opzichte van de fysieke wereld in sessies op apparaten die persistentie van lokale ruimtelijke ankers ondersteunen. Als u wilt dat een hologram op dezelfde plaats in de fysieke wereld wordt weergegeven 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.

Volgende stappen

Deel een wereld vergrendelde coördinaatruimte:

Meer informatie over ruimtelijke toewijzing:

Terug naar de Unity-ontwikkelcontrolepunten:

Zie ook