Światowe blokowanie i zakotwiczenia przestrzenne w akiecie Unity

Obraz bohatera narzędzi blokujących świat

Pobieranie hologramów, aby pozostać na miejscu, przenieść się z Tobą lub w niektórych przypadkach pozycjonować się względem innych hologramów jest dużą częścią tworzenia aplikacji rzeczywistości mieszanej. Ten artykuł przeprowadzi Cię przez nasze zalecane rozwiązanie przy użyciu narzędzi do blokowania świata, ale omówimy również ręczne konfigurowanie kotwic przestrzennych w projektach aparatu Unity. Zanim przejdziemy do dowolnego kodu, ważne jest, aby zrozumieć, w jaki sposób aparat Unity obsługuje współrzędną przestrzeń i kotwice.

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 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 zwykle ustanawiają tego rodzaju bezwzględny system współrzędnych skali pokoju z jego pochodzeniem na podłodze.

Natomiast niezamierzone 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 o wiele metrów po całym piętrze budynku. W środowisku skali światowej, jeśli umieścisz wszystkie hologramy w naiwnym sztywnym układzie współrzędnych, te hologramy będą dryfować 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ć 4 metrów od siebie, a następnie udoskonalić 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 wydaje 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 odniesieniu 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 system współrzędnych przy użyciu wewnętrznego zaopatrzenia kotwic przestrzennych rozmieszczonych w całej scenie wirtualnej, gdy użytkownik porusza się wokół. Funkcja WLT analizuje współrzędne kamery i tych kotwic przestrzennych 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 do blokowania świata udostępnia stabilny system współrzędnych, który minimalizuje widoczne niespójności między znacznikami wirtualnych i rzeczywistych. Narzędzia world locking tools world-locks całej sceny 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 korzystać z programu ARAnchorManager ani 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 funkcji rzeczywistości mieszanej. 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 użycia, uruchom narzędzie do konfigurowania sceny z poziomu narzędzi Mixed Reality > World Locking Tools:

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

Ważne

Narzędzie Konfiguruj scenę można ponownie uruchomić 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 efektu.

Wizualizatory

Podczas wczesnego programowania dodanie wizualizatorów może być przydatne, 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 informacji 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 urządzenia HoloLens kotwice przestrzenne można znaleźć i załadować w różnych sesjach i są idealnym rezerwowym, gdy nie ma łączności z Internetem.

Ważne

Lokalne kotwice są przechowywane na urządzeniu, podczas gdy usługa Azure Spatial Anchors jest przechowywana w chmurze. Możesz mieć kotwice lokalne i 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 na świecie w inspektorze aparatu Unity

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

Narzędzia World Locking Tools obsługują trwałość zakotwiczenia lokalnego tylko na urządzeniach HoloLens. W przypadku urządzeń z systemami Android, iOS i HoloLens integracja z usługą Azure Spatial Anchors w celu zapewnienia trwałości i udostępniania 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 (WLT) 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:

Wróć do punktów kontrolnych programowania aparatu Unity:

Zobacz też