Udostępnij za pośrednictwem


Konfigurowanie i uruchamianie przykładów WLT+ASA

Podsumowanie

Narzędzia World Locking Tools for Unity (WLT) udostępnia stabilny system współrzędnych oparty na lokalnym śledzeniu. W połączeniu z usługą Azure Spatial Anchors (ASA) stabilny system współrzędnych może być utrwalany między sesjami i współużytkowany między urządzeniami.

To wideo może dać ci pomysł, czego można oczekiwać podczas uruchamiania przykładu.

Co znajduje się w tym przykładzie?

Ten przykład udostępnia zasoby i skrypty do:

  1. Skonfiguruj globalny system współrzędnych aparatu Unity w odniesieniu do środowiska fizycznego.
  2. Opublikuj konfigurację systemu współrzędnego na platformie Azure przy użyciu usługi Azure Spatial Anchors.
  3. Pobierz dane z platformy Azure, aby przywrócić system współrzędnych w kolejnych sesjach lub na innych urządzeniach.

Struktura tego dokumentu

  1. Konfiguracja — jak zainstalować i wdrożyć przykładową aplikację.
  2. Uwagi dotyczące uruchamiania aplikacji wraz z sugerowanymi krokami.
  3. Opis architektury skryptów pomocniczych.

Konfigurowanie i przetestowane wersje

Ten przykład został opracowany i przetestowany przy użyciu:

  • Unity 2020.3.8f1
  • Azure Spatial Anchors (ASA) v2.9.0 — wersja 2.10.2.
  • Zestaw narzędzi Mixed Reality Toolkit w wersji 2.7.2
  • Narzędzia do blokowania środowiska Unity w wersji 1.4.1
  • FrozenWorldEngine v1.1.1

Możesz zainstalować środowisko WLT i ten przykład z wersji WLT .unitypackage lub za pomocą narzędzia funkcji rzeczywistości mieszanej. W przypadku instalowania z narzędzia FeatureTool należy nie tylko zainstalować zależność przykłady WLT (automatyczną), ale także zaimportować przykłady do projektu. Aby uzyskać szczegółowe informacje, zobacz Instalowanie WLT z narzędzia funkcji MR.

Instalowanie biblioteki DLL Frozen World Engine w projekcie

Pierwszym krokiem jest zainstalowanie biblioteki DLL Frozen World Engine w wersji 1.1.1. Instrukcje dotyczące używania narzędzia NuGet dla aparatu Unity lub wiersza polecenia nuget.exe.

Instalowanie usługi ASA

Tworzenie zasobów zakotwiczenia przestrzennego

Ten przewodnik Szybki start zawiera instrukcje tworzenia konta platformy Azure i niezbędnych zasobów zakotwiczeń przestrzennych. Aby uruchomić przykład, konieczne będzie uruchomienie identyfikatora konta, domeny konta i klucza konta. Dodasz je do odpowiednich pól w skrypcie "Spatial Anchor Manager" w obiekcie SpacePinBinder w scenie. Obsługiwane są inne metody uwierzytelniania, ale identyfikator konta/domena/klucz jest najłatwiejszy podczas rozpoczynania pracy.

Pola poświadczeń

Instalacja zestawu SDK

Następnie zainstaluj usługę Azure Spatial Anchors w wersji 2.9.0 przy użyciu jednej z metod opisanych w tych instrukcjach. Użyto metody narzędzia funkcji MR.

Dodatkowa konfiguracja relokacji coarse

W przypadku korzystania z relokacji coarse wymagana jest dodatkowa konfiguracja podczas wdrażania w systemie Android lub HoloLens2.

Co to jest kolosyjna relokacja?

Coarse Relocation to technologia, która umożliwia wyszukiwanie wcześniej utworzonych kotwic w chmurze w bieżącym sąsiedztwie. Szczegółowe informacje na temat relokacji kursu można znaleźć w sekcji Relokacja kursu w dokumentacji usługi Azure Spatial Anchors.

W tym przykładzie pokazano znajdowanie kotwic w chmurze przez coarse Relocation (Coarse Relocation) lub jawnie według identyfikatora kotwicy chmury (GUID). Jeśli jest włączona relokacja gruba, wymagane są następujące dodatkowe kroki konfiguracji. Jeśli nie interesuje Cię kolokacja gruba, możesz ją wyłączyć w składniku "Publisher ASA" w obiekcie SpacePinBinder.

Wyłączanie relokacji grubszej

Dodatkowe kroki konfiguracji urządzenia HoloLens2

Aby włączyć coarse Relocation on HoloLens2, musisz dodać uprawnienie do pliku Package.appxmanifest wygenerowanego w usłudze ARM/WorldLockingTools/Package.appxmanifest (przy założeniu, że wybrano folder ARM jako element docelowy kompilacji). Jeśli ten projekt jest twój własny, zastąp odpowiednią nazwę WorldLockingTools w tej ścieżce. Dodaj następujący wiersz do sekcji Możliwości:

    <DeviceCapability Name="wiFiControl"/>

Aby uzyskać więcej informacji, zobacz ten wpis w witrynie github.

Jeśli przegapisz ten krok, program Publisher "Gotowość" nigdy nie osiągnie stanu "Gotowe", szybkość ramki będzie bardzo niska, a UnityPlayer.log (jeśli zostanie wygenerowana) będzie pełna wyjątków formularza:

InvalidOperationException: CoarseReloc: Dostęp do sieci Wi-Fi został odrzucony. Żądanie CV: . Odpowiedź CV: .

Należy dodać tę funkcję do pliku Package.appxmanifest za każdym razem, gdy rozwiązanie jest kompilowane z czystego środowiska. Jednak kolejne kompilacje z aparatu Unity zachowają możliwości.

W obszarze Project Ustawienia/XR Plugin Management (Zarządzanie wtyczkami programu Project Ustawienia/XR) upewnij się, że program Windows Mixed Reality jest wybranym dostawcą wtyczek na karcie UWP (openXR jest również obsługiwany dla biblioteki WLT z usługą ASA).

Profil zestawu narzędzi MRTK w pliku XAmple XRSDK ToolkitConfigurationProfile XAmpleApp/CustomProfiles jest odpowiedni do uruchamiania na urządzeniu HoloLens2.

Dodatkowe kroki konfiguracji dla systemu Android

Aby włączyć kolokacja w systemie Android, postępuj zgodnie z tymi instrukcjami , aby skonfigurować plik Assets/Plugins/Android/mainTemplate.gradle.

Ponadto w obszarze Assets/Plugins/Android/AndroidManifest.xml należy włączyć wiele uprawnień, aby umożliwić dostęp do sieci Wi-Fi w systemie Android. Ponownie, jeśli uwzględnisz elementy tego projektu we własnym projekcie, należy wykonać te kroki, aby użyć kolokowania coarse. Więcej szczegółów na temat wymaganych uprawnień dostępu do sieci Wi-Fi w systemie Android znajduje się w tym wpisie i wpis, do których prowadzi linki.

Przykłady zmodyfikowanego pliku mainTemplate.gradle i AndroidManifest.xml znajdują się w przykładowym projekcie WLT-ASA, który jest skonfigurowany specjalnie do używania WLT i ASA. Można je skopiować bezpośrednio do projektu, po włączeniu opcji "Niestandardowy manifest główny" i "Niestandardowy szablon główny narzędzia Gradle" w Ustawienia publikowania odtwarzacza zgodnie z opisem.

Po naciśnięciu przycisku Kompiluj i uruchom kompilacja zakończy się niepowodzeniem z powodu błędu cieniowania w materiale MRTK_Standard, spróbuj ponownie uruchomić kompilację i uruchom. To działa druga próba dla mnie. Istnieje kilka informacji na ten temat w kwestiach MRTK, ale o ile mogę powiedzieć wszystkie informacje są niepoprawne.

W obszarze Project Ustawienia/XR Plugin Management upewnij się, że arcore jest wybranym dostawcą wtyczek na karcie Android.

Profil XAmple AR ToolkitConfigurationProfile zestawu narzędzi MRTK jest odpowiedni do uruchamiania na urządzeniach przenośnych. Nie zapomnij uruchomić skryptu Mixed Reality/Utilities/UnityAR/Update Scripting Defines po przełączeniu do systemu Android lub iOS.

Co robią przyciski

Gotowy

  • Przełącz pinezki — gdy spacje nie są aktywne, ich uchwyty manipulowania mogą być ukryte.
  • Publikuj — zapisz bieżącą konfigurację, włączając jej pobieranie w późniejszej sesji lub na innych urządzeniach.
  • Załaduj oracle — użyj wcześniej przechowywanych powiązań, aby przywrócić konfigurację przestrzenną.
  • Wyczyść oracle — usuń wszystkie zasoby zapasowe, zwłaszcza zakotwiczenia przestrzenne platformy Azure i wyczyść wyrocznię powiązań.
  • Wyszukiwanie — znajdź wszystkie kotwice przestrzenne platformy Azure w bezpośrednim sąsiedztwie i przywróć konfigurację przestrzenną.
  • Przeczyść — znajdź wszystkie kotwice przestrzenne platformy Azure w bezpośrednim sąsiedztwie i wyczyść je.
  • Resetuj pinezki — cofnij wszelkie manipulacje numerem Pin spacji. Nie usuwa żadnych kotwic przestrzennych platformy Azure.

Menu na urządzeniach przenośnych jest nieco inne w formie, ale pozycje przycisków i znaczenia są takie same.

Przewodnik — publikowanie z urządzenia HoloLens2

Umieść scenę przy użyciu spacji

Po uruchomieniu próbki układ współrzędnych jest ustawiony i zorientowany na podstawie monitora głowy podczas uruchamiania. To znaczy, że jest dość arbitralne. Pierwszą rzeczą, którą należy zrobić, jest dostosowanie układu współrzędnych do żądanego stanu odniesienia.

Sofa na scenie PinTestSofa ma 2,18 metra długości, 0,78 m wysokości i 1,0 m głębokości. Uchwyty SpacePin na każdym końcu górnej części kanapy są więc 2,18 m od siebie, i 0,78 m od ziemi. Polecam pomiar i umieszczanie tymczasowych markerów 2,18 m od siebie, na pewnej wygodnej wysokości. Alternatywnie możesz dostosować scenę tak, aby pasowała do przestrzeni fizycznej.

Po skompilowania i wdrożeniu aplikacji na urządzeniu HoloLens2 poczekaj, aż stan w przestawnym menu będzie wyświetlany jako Gotowy (wskazówka — wiersz stanu zmieni się z czerwonego na biały, gdy wszystko będzie gotowe).

Nie wszystko gotowe

Jeden naraz, chwyć każdy uchwyt SpacePin (białe sfere szkieletowe) i przeciągnij go do pozycji względem znaczników odniesienia.

Po zwolnieniu każdego ze markerów w pozycji scena powinna zostać przesunięta, aby przywrócić tył sofy względem SpacePin. Obiekty w scenie nie są przenoszone, cała przestrzeń współrzędna jest dostosowywana tak, aby oryginalne współrzędne Spacji były w lokalizacji w świecie fizycznym, do którego zostały przeciągnięte.

Publikowanie przestrzeni współrzędnych

Po ustanowieniu żądanego miejsca możesz teraz opublikować to miejsce, aby udostępnić je w kolejnych sesjach i na innych urządzeniach.

Jeśli korzystasz z kolokowania coarse, dobrym pomysłem jest wyczyszczenie wcześniej utworzonych kotwic w chmurze w tym momencie. Naciśnij przycisk "Przeczyść z wyszukiwania" i poczekaj na zakończenie.

Teraz w menu przestawnym naciśnij przycisk "Publikuj" i poczekaj na jego ukończenie.

Gotowy

Przewodnik — korzystanie z urządzenia HoloLens2 przy użyciu relokacji coarse

Uruchom ponownie aplikację na innym urządzeniu HoloLens2 lub na tym samym urządzeniu po zamknięciu poprzedniej sesji. Gdy stan będzie wyświetlany jako Gotowy, naciśnij przycisk "Załaduj z wyszukiwania". Po zakończeniu operacji globalny system współrzędnych aparatu Unity będzie miał wyrównany do środowiska fizycznego, tak jak w poprzedniej sesji (opublikowanej).

Przewodnik — korzystanie z urządzenia HoloLens2 przy użyciu interfejsu IBindingOracle (SpacePinBinderFile)

Po opublikowaniu powiązań na urządzeniu lub przywróceniu ich z wyszukiwania są rejestrowane w obiekcie IBindingOracle. Ten przykład zawiera najbardziej podstawową aplikację Oracle, która po prostu zapisuje powiązania w pliku tekstowym.

Uruchom ponownie aplikację do nowej sesji. Jeśli jest to to samo urządzenie HoloLens2, z którego wykonano publikowanie, istnieje plik powiązania pozostawiony z publikowania. Jeśli jest to inne urządzenie HoloLens2, ale wyszukiwanie zostało pomyślnie wykonane w poprzedniej sesji, plik powiązania pozostanie z tego.

Naciśnij przycisk "Załaduj z pliku", aby załadować wcześniej zarejestrowane powiązania i przywrócić przestrzeń współrzędnych.

Przewodnik — korzystanie z systemu Android przy użyciu relokacji coarse

Interfejs użytkownika wygląda nieco inaczej w systemie Android, ale działa dokładnie tak samo. Główną różnicą jest to, że wymagane jest nieco więcej skanowania środowiska podczas uruchamiania względem urządzenia HoloLens2, zanim usługa ASA będzie gotowa do kontynuowania.

Gdy system jest wyświetlany jako Gotowy, możesz nacisnąć niebieski przycisk (trzeci od prawej), aby wyszukać wcześniej opublikowane powiązania i przywrócić układ współrzędnych.

Przewodnik — korzystanie z systemu Android przy użyciu interfejsu IBindingOracle (SpacePinBinderFile)

Po pomyślnym zakończeniu ładowania z funkcji wyszukiwania plik powiązań został pozostawiony na urządzeniu. W kolejnych sesjach można po prostu nacisnąć pozycję Załaduj z pliku, aby przywrócić układ współrzędnych.

Alternatywnie można skopiować plik tekstowy powiązań z urządzenia do publikowania na urządzenie zużywające. Domyślną lokalizacją pliku tekstowego powiązań jest:

HoloLens2: Foldery użytkowników/LocalAppData/WLT-ASA/LocalState/BinderFile.txt

Android: wewnętrzny magazyn udostępniony/Android/data/com. WorldLockingTools.WLTASA/files/BinderFile.txt

Zobacz też