Światowe blokowanie i kotwice przestrzenne w unity

Obraz bohatera narzędzi blokujących świat

Uzyskanie hologramów, aby pozostać na miejscu, przenieść się z Tobą lub w niektórych przypadkach pozycje względem innych hologramów jest ważną częścią tworzenia aplikacji Mixed Reality. Ten artykuł przeprowadzi Cię przez nasze zalecane rozwiązanie przy użyciu narzędzi world locking Tools, ale omówimy również ręczne konfigurowanie kotwic przestrzennych w projektach aparatu Unity. Zanim przejdziemy do dowolnego kodu, ważne jest, aby zrozumieć, jak aparat Unity obsługuje współrzędną przestrzeń i kotwice we własnym aucie.

Systemy współrzędnych skali światowej

Obecnie podczas pisania gier, aplikacji do wizualizacji danych lub aplikacji rzeczywistości wirtualnej typowe podejście polega na ustanowieniu jednego bezwzględnego systemu współrzędnych świata , do którego wszystkie inne współrzędne mogą niezawodnie mapować. W tym środowisku zawsze można znaleźć stabilną transformację, która definiuje relację między dowolnymi dwoma obiektami na tym świecie. Jeśli te obiekty nie zostaną przeniesione, ich względne przekształcenia zawsze pozostaną takie same. Ten rodzaj globalnego systemu współrzędnych jest łatwy do uzyskania podczas renderowania czysto wirtualnego świata, w którym wiesz z wyprzedzeniem całą geometrię. Aplikacje VR w skali pokoju obecnie zwykle ustanawiają ten rodzaj bezwzględnego systemu współrzędnych w skali pokoju z jego pochodzeniem na podłodze.

Z kolei urządzenie rzeczywistości mieszanej, takie jak HoloLens, ma dynamiczne zrozumienie świata oparte na czujnikach, stale dostosowując swoją wiedzę w czasie otoczenia użytkownika, gdy chodzi wiele metrów po całej podłodze budynku. W środowisku skali światowej, jeśli umieścisz wszystkie hologramy w naiwnym sztywnym układzie współrzędnych, te hologramy w końcu dryfują w czasie, albo na podstawie świata lub względem siebie.

Na przykład zestaw słuchawkowy może obecnie wierzyć, że dwie lokalizacje na świecie mają być od siebie 4 metrów, a następnie uściślić to zrozumienie, ucząc się, że lokalizacje są w rzeczywistości 3,9 metra od siebie. Gdyby te hologramy początkowo zostały umieszczone 4 metrów od siebie w jednym sztywnym układzie współrzędnych, jeden z nich zawsze pojawiałby się 0,1 metra od świata rzeczywistego.

Możesz ręcznie umieścić kotwice przestrzenne w środowisku Unity, aby zachować położenie hologramu w świecie fizycznym, gdy użytkownik jest mobilny. Jednak poświęca to spójność siebie w świecie wirtualnym. Różne kotwice stale poruszają się w stosunku do siebie, a także przechodzą przez globalną przestrzeń współrzędnych. W tym scenariuszu proste zadania, takie jak układ, stają się trudne. Symulacja fizyki może być również problematyczna.

Narzędzia world locking Tools (WLT) zapewnia najlepsze z obu światów, stabilizując jeden sztywny układ współrzędnych przy użyciu wewnętrznego dostarczania kotwic przestrzennych rozłożonych na całej scenie wirtualnej, gdy użytkownik porusza się. WLT analizuje współrzędne aparatu i te zakotwiczenia przestrzenne każdej ramki. Zamiast zmieniać współrzędne wszystkich elementów na świecie, aby zrekompensować poprawki we współrzędnych głowy użytkownika, WLT po prostu naprawia współrzędne głowy.

Wybieranie podejścia do blokowania świata

Jeśli to możliwe, użyj narzędzi World Locking Tools do pozycjonowania hologramu.

Narzędzia world locking tools udostępnia stabilny system współrzędnych, który minimalizuje widoczne niespójności między znacznikami wirtualnymi i rzeczywistymi. Narzędzia world locking tools blokuje całą scenę z udostępnioną pulą kotwic, zamiast blokować każdą grupę obiektów z własną pojedynczą kotwicą grupy.

Narzędzia world locking tools automatycznie obsługują tworzenie wewnętrzne i zarządzanie kotwicami przestrzennymi. Nie musisz wchodzić w interakcje z arAnchorManager lub WorldAnchor, aby zachować światowe blokady hologramów.

  • W przypadku aparatu Unity 2019/2020 przy użyciu biblioteki OpenXR lub wtyczki XR systemu Windows użyj narzędzia ARAnchorManager.
  • W przypadku starszych wersji aparatu Unity lub projektów WSA użyj narzędzia WorldAnchor.

Konfigurowanie blokady świata

Aby rozpocząć korzystanie z narzędzi world locking Tools, pobierz narzędzie Mixed Reality Feature Tool. Aby dowiedzieć się więcej na temat podstaw, zobacz stronę dokumentacji narzędzia do blokowania świata, aby uzyskać linki do tematu Przegląd, Szybki start i inne przydatne tematy.

Automatyczna konfiguracja

Gdy projekt jest gotowy do pracy, uruchom narzędzie konfiguruj scenę z poziomu narzędzi Mixed Reality > World Locking Tools:

Edytor aparatu Unity z wybranym menu zestawu narzędzi Mixed Reality

Ważne

Narzędzie Konfiguruj scenę można uruchomić ponownie w dowolnym momencie. Na przykład należy ponownie uruchomić element docelowy AR, jeśli element docelowy AR został zmieniony z starszej wersji na zestaw XR SDK. Jeśli scena jest już prawidłowo skonfigurowana, uruchomienie narzędzia nie ma wpływu.

Wizualizatory

Podczas wczesnego programowania dodanie wizualizatorów może być pomocne, aby upewnić się, że środowisko WLT jest skonfigurowane i działa prawidłowo. Można je usunąć z wydajności produkcyjnej lub jeśli z jakiegokolwiek powodu nie są już potrzebne, za pomocą narzędzia Usuń wizualizatory. Więcej szczegółów na temat wizualizatorów można znaleźć w dokumentacji narzędzia.

Trwałe blokowanie świata

Zakotwiczenia przestrzenne zapisują hologramy w przestrzeni rzeczywistej między sesjami aplikacji. Po zapisaniu w magazynie kotwicy holoLens można znaleźć i załadować kotwice przestrzenne w różnych sesjach i być idealnym rezerwowym, gdy nie ma łączności z Internetem.

Ważne

Lokalne kotwice są przechowywane na urządzeniu, podczas gdy usługi Azure Spatial Anchors są przechowywane w chmurze. Możesz mieć lokalne i zakotwiczenia platformy Azure w tym samym projekcie bez konfliktu. Aby uzyskać więcej informacji na temat integrowania usług w chmurze platformy Azure do przechowywania kotwic, zobacz Azure Spatial Anchors.

Domyślnie narzędzia World Locking Tools przywracają system współrzędnych aparatu Unity względem świata fizycznego między sesjami na urządzeniach, które obsługują trwałość lokalnych kotwic przestrzennych. Aby hologram pojawił się w tym samym miejscu w świecie fizycznym po zakończeniu i ponownym uruchomieniu aplikacji, aplikacja musi przywrócić tę samą pozę do hologramu.

Składnik kontekstu blokady świata w inspektorze aparatu Unity

Jeśli aplikacja potrzebuje bardziej precyzyjnej kontroli, możesz wyłączyć automatyczne zapisywanie i automatyczne ładowanie w inspektorze oraz zarządzać trwałością skryptu. Aby uzyskać więcej informacji, zobacz Utrwalanie układów współrzędnych przestrzennych.

Narzędzia world locking Tools obsługują trwałość kotwicy lokalnej tylko na urządzeniach HoloLens. W przypadku urządzeń z systemami Android, iOS i HoloLens należy zintegrować się z usługą Azure Spatial Anchors, aby obsługiwać trwałość i udostępnianie współrzędnych przestrzeni między sesjami i urządzeniami. Aby uzyskać więcej informacji i przykładów przy użyciu narzędzi world locking Tools with Azure Spatial Anchors, zobacz World Locking Tools (WLT) combined with Azure Spatial Anchors (ASA) (Narzędzia do blokowania świata w połączeniu z usługą Azure Spatial Anchors (ASA).

Następne kroki

Udostępnij zablokowaną przestrzeń współrzędną świata:

Dowiedz się więcej o mapowaniu przestrzennym:

Wstecz do punktów kontrolnych tworzenia aparatu Unity:

Zobacz też