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 in sommige gevallen zichzelf te positioneren ten opzichte van andere hologrammen. In dit artikel wordt u begeleid bij 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 een code springen, is het belangrijk om te begrijpen hoe Unity ruimte en ankers in een eigen engine verwerkt.

Coördinaatsystemen op wereldschaal

Vandaag de dag, bij het schrijven van games, apps voor gegevensvisualisatie of virtual reality-apps, is de gebruikelijke benadering om één absoluut wereldcoördinaatsysteem tot stand te brengen waarnaar alle andere coördinaten betrouwbaar 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 hebt verplaatst, blijven de relatieve transformaties altijd hetzelfde. Dit soort globale coördinaatsysteem is eenvoudig te bereiken bij het weergeven van een puur virtuele wereld waar u alle geometrie van tevoren kent. Vr-apps op ruimteschaal stellen tegenwoordig meestal dit soort absolute coördinaatsysteem op ruimteschaal vast met de oorsprong ervan op de vloer.

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

De headset kan bijvoorbeeld geloven dat twee locaties in de wereld 4 meter uit elkaar liggen en later dat begrip verfijnen, leren dat de locaties in feite 3,9 meter uit elkaar liggen. Als die hologrammen aanvankelijk 4 meter uit elkaar waren geplaatst in één stijf coördinaatsysteem, zou een van hen altijd 0,1 meter van de echte wereld verschijnen.

U kunt ruimtelijke ankers handmatig 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 in relatie tot elkaar en lopen ook door de wereldwijde coördinaatruimte. In dit scenario worden eenvoudige taken zoals indeling moeilijk. Fysicasimulatie kan ook problematisch zijn.

World Locking Tools (WLT) krijgt u het beste van beide werelden, waarbij één star coördinaatsysteem wordt gestabiliseerd met behulp van een interne levering van ruimtelijke ankers verspreid over de virtuele scène terwijl de gebruiker zich beweegt. 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.

Uw wereldvergrendelingsbenadering kiezen

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

World Locking Tools biedt een stabiel coördinatensysteem waarmee de zichtbare inconsistenties tussen virtuele en echte wereldmarkeringen worden geminimaliseerd. 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 verwerkt automatisch intern maken en beheren van ruimtelijke ankers. U hoeft niet te communiceren met ARAnchorManager of WorldAnchor om uw hologrammen wereldwijd vergrendeld te houden.

  • Gebruik ARAnchorManager voor Unity 2019/2020 met behulp van OpenXR of de Windows XR-invoegtoepassing.
  • 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 het menu Mixed Reality Toolkit 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 kunnen het toevoegen van visuals handig zijn om ervoor te zorgen dat WLT goed werkt 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 ze zijn opgeslagen in de HoloLens-ankeropslag, kunnen ruimtelijke ankers worden gevonden en geladen in verschillende sessies en zijn ze een ideale terugval wanneer er geen internetverbinding is.

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

Contextonderdeel voor het vergrendelen van de wereld 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 Persistent spatial coördinaatsystemen voor meer informatie.

World Locking Tools ondersteunt alleen lokale ankerpersistentie op HoloLens-apparaten.

Volgende stappen

Deel een wereldwijd vergrendelde coördinaatruimte:

Meer informatie over ruimtelijke toewijzing:

Ga terug naar de controlepunten voor Unity-ontwikkeling:

Zie ook