Informacje o wersji Mixed Reality Microsoft Mixed Reality Toolkit 2.5

Ważne

Istnieje znany problem kompilatora, który ma wpływ na aplikacje sbudowaną dla Microsoft HoloLens 2 przy użyciu arm64. Ten problem został rozwiązany przez zaktualizowanie programu Visual Studio 2019 do wersji 16.8 lub nowszej. Jeśli nie możesz zaktualizować Visual Studio, zaimportuj com.microsoft.mixedreality.toolkit.tools pakiet, aby zastosować obejście tego problemu.

Co nowego w programie 2.5.4

Usunięto usterkę w integracji Oculus podczas korzystania z rozwiązania UPM

Podczas korzystania z usługi UPM plik OculusXRSDKDeviceManagerProfile zawsze będzie miał prefabrykatyustawione na wartość Brak podczas uruchamiania. W tej wersji Menedżer urządzeń wskazać zestaw roboczy prefabryktów podczas uruchamiania.

Rozwiązano problem z openXR za pośrednictwem rozwiązania UPM

Rozwiązano problem, który powodował, że dostawcy OpenXR nie zostali domyślnie dodani do usługi link.xml, co powodowało niepowodzenie uruchamiania nowych projektów na urządzeniu podczas korzystania z rozwiązań OpenXR i MRTK za pośrednictwem interfejsu Menedżer pakietów. Istniejące projekty, które są uaktualniane, będą nadal wymagały ręcznego dodania tej wartości.

Co nowego w programie 2.5.3

Naprawiono regresję w przypadku rozwiązania Oculus wprowadzonego w programie 2.5.2

W programie 2.5.2 wprowadzono problem z kompilacją podczas integrowania zestawu Oculus SDK. W tej wersji ten problem jest przywracany.

Co nowego w programie 2.5.2

Dodawania obsługi openXR

Dodano wstępną obsługę pakietu OpenXR w wersji zapoznawczej aparatu Unity Mixed Reality pakietu OpenXR firmy Microsoft. Aby uzyskać więcej informacji, zobacz stronę wprowadzenie mrTK/XRSDK,wpis na forum aparatu Unitylub dokumentację firmy Microsoft.

Ważne

OpenXR w a unity jest obsługiwany tylko na Unity 2020.3 i wyższych. Obsługuje również tylko kompilacje x64, ARM i ARM64.

Naprawiono błędy wizualizacji granic

Wizualizacje granic, takie jak podłoga lub ściany, będą teraz prawidłowo skonfigurowane i widoczne w czasie wykonywania zgodnie z profilem granicy.

MSBuild obsługi aparatu Unity

Obsługa MSBuild dla aparatu Unity została usunięta w wersji 2.5.2 w celu dostosowania do nowych wskazówek dotyczących pakietów aparatu Unity.

Co nowego w programie 2.5.1

Usunięto błędy zależności pakietu

W tej wersji naprawiono nieprawidłowe zależności plików między pakietami (np. pliki w standardowych zasobami nie odwołują się już niepoprawnie do plików w programie Foundation). Wersja 2.5.1 dodaje również jawną zależność od siatki Pro.

Cieniowanie pakietu Zasobów standardowych skopiowane do plików Assets/MRTK/Shaders

Po zainstalowaniu pakietu Zasobów standardowych za pośrednictwem programu UPM cieniowania zostaną skopiowane do folderu Assets/MRTK/Shaders, dzięki czemu nie będą już niezmienne. Rozwiązuje to problem z modułami cieniowania zaktualizowanymi dla uniwersalnego potoku renderowania (URP) przywracających starsze zachowanie przy następnym załadowaniu projektu.

Naprawiono kursor kursora kursora cursor przywierający do rąk

W tej wersji rozwiązano problem, który dotyczył sytuacji, w której kursor docelowy teleportacji może zostać przyłoowany do wizualizacji ręcznej.

Co nowego w programie 2.5.0

Obsługa Menedżer pakietów (UPM) aparatu Unity

Zestawem Mixed Reality Toolkit można teraz zarządzać przy użyciu narzędzia Unity Menedżer pakietów.

Pakiet MRTK Foundation UPM

Uwaga

W celu zaimportowania pakietów MRTK UPM należy wykonać pewne czynności ręczne. Aby uzyskać więcej Mixed Reality, zapoznaj się z tematem Zestaw narzędzi Menedżer pakietów Unity.

Obsługa zestawu SDK XR Oculus Quest

Zestaw MRTK obsługuje teraz uruchamianie zestawów nagłownych i kontrolerów Oculus Sdk przy użyciu natywnego potoku zestawu XR SDK. Śledzenie rąk jest również obsługiwane za pomocą pakietu Oculus Integration Unity dzięki pracy Erica Provenchera nad zestawem mrTK-Proc!

Aby uzyskać instrukcje dotyczące wdrażania urządzenia w aplikacji Oculus Quest przy użyciu nowego potoku, zobacz Przewodnik konfiguracji zadania Oculus

Przewijanie kolekcji obiektów

Składnik środowiska użytkownika zestawu mrTK został uaktualniony z funkcji eksperymentalnej i oferuje większą swobodę układu zawartości 3D o różnych rozmiarach z dodatkową obsługą obiektów, które nie mają dołączonych kolidatorów. Dodano również nową opcję wyłączania maskowania zawartości, co ułatwia tworzenie prototypów.

Aby uzyskać więcej informacji, zobacz Scrolling Object Collection (Przewijanie kolekcji obiektów).

Przewijanie kolekcji obiektów

Ulepszenia animacji, obsługi i dźwięku wskaźnika po zrzucie kursora

Wskaźnik teleportacji ma teraz ulepszone animacje i opinie dźwiękowe. Ulepszyliśmy również obsługę wskaźnika kursora krokowego, dzięki czemu działa on sprawniej podczas przechodzenia od punktu na pobliskich powierzchniach na bardziej odchodzące powierzchnie.

Ściągawka symulacji danych wejściowych

Scena HandInteractionExamples ma teraz konfigurowalny skrót do pokazywania strony pomocy dla symulacji danych wejściowych

Ściągawka symulacji danych wejściowych

Spojrzenie oka symulacji danych wejściowych za pomocą myszy

Użytkownicy mogą teraz używać myszy do symulowania śledzenia oczu. Wyświetl pole Eye Simulation Mode w profilu symulacji danych wejściowych i ustaw je na wartość Mysz. Zastępuje to poprzednie Simulate Eye Position pole.

Mysz z spojrzeniem na oko

Kontroler ruchu symulacji danych wejściowych w trybie odtwarzania edytora

Użytkownicy mogą teraz symulować kontroler ruchu tak samo jak ręce w trybie odtwarzania edytora. Przyciski wyzwalacza, chwytują i menu są obecnie obsługiwane.

Sprzęczny wskaźnik chwytowy

Teraz można skonfigurować wskaźniki do wykonywania zapytań o obiekty w pobliżu przy użyciu rębka z punktu chwytnego, a nie sfery. Jest to bardziej podobne do zachowania z domyślnego interfejsu HoloLens 2, który wykonuje zapytanie o obiekty w pobliżu przy użyciu cone. Dostosliśmy również wartość Default Dostęp dolens2InputSystemProfile w celu używania ConicalGrabPointer nowego .

Conical Grab Pointer

Pakiet TestUtilities

Jest teraz dostępny pakiet (Microsoft.MixedReality.Toolkit.Unity.TestUtilities.2.5.0.unitypackage) zawierający infrastrukturę testową PlayMode i TestMode, których zestaw narzędzi MRTK używa do tworzenia testów end-to-end. Ta infrastruktura jest niezwykle przydatna dla samego zespołu MRTK i z przyjemnością informujemy, że użytkownicy mogą jej używać do dodawania pokrycia testów do własnych projektów.

Poniższy kod przedstawia sposób tworzenia ręki testowej, pokazywania jej w określonej lokalizacji, przesuwania jej, a następnie uszczyppowienia i otwarcia.

TestHand leftHand = new TestHand(Handedness.Left);
yield return leftHand.Show(new Vector3(-0.1f, -0.1f, 0.5f));
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Pinch);
yield return leftHand.Move(new Vector3(0.2f, 0.2f, 0));
yield return leftHand.SetGesture(ArticulatedHandPose.GestureId.Open);

Aby uzyskać instrukcje dotyczące pisania testu przy użyciu tych testów, zobacz tę sekcję na temat pisania testów.

Aby uzyskać przykłady istniejących testów, które korzystają z tej infrastruktury, zobacz PlayModeTestsdla mrTK.

Obsługa modułów aparatu Unity Przestępny ruch 4.5.1

Dodano obsługę modułów przestępnych ruchu Unity w wersji 4.5.1 i usunięto obsługę zasobów 4.4.0. Obecnie obsługiwane wersje modułów przestępnych ruchu Unity to 4.5.0 i 4.5.1.

Istnieje również dodatkowy krok dla początkowej integracji ruchu przestępnym. Aby uzyskać więcej informacji, zobacz How to Configure the Przestępny śledzenie ruchu w mrTK.

Obserwator usługi Spatial Awareness Mesh lepiej obsługuje dostosowywanie materiałów

W tej wersji składniki i mają Windows Mixed Reality Spatial Mesh Observer Generic XR SDK Spatial Mesh Observer ulepszoną obsługę materiałów wizualnych. Materiały są teraz zachowywane, gdy siatka została zaktualizowana przez obserwatora, gdzie wcześniej były resetowane do domyślnej wartości VisibleMaterial skonfigurowanej w profilu.

Dzięki temu deweloperzy mogą zmieniać materiał siatki i nie mają nieoczekiwanie nadpisanych zmian.

Link.xml utworzone w folderze MixedRealityToolkit.Generated

Wraz z wprowadzeniem zestawu mrTK programu Unity Package Manger zestaw MRTK zapisuje teraz plik w folderze , jeśli link.xml Assets/MixedRealityToolkit.Generated żaden nie istnieje. Zaleca się dodanie tego pliku (i link.xml.meta ) do kontroli źródła. Link.xml służy do wywierania wpływu na funkcję usuwania kodu zarządzanego przez linker aparatu Unity.

Więcej informacji na temat pliku link.xml MRTK można znaleźć w artykule MRTK and managed code stripping (Zarządzanie plikiem mrTK i usuwania kodu zarządzanego).

Unity 2019.3+: okno dialogowe konfiguracji MRTK nie próbuje już włączyć obsługi starszej wersji XR

Aby uniknąć potencjalnych konfliktów podczas korzystania z platformy XR platformy Unity, opcja włączenia obsługi starszych wersji XR została usunięta z okna dialogowego konfiguracji MRTK. W razie potrzeby można włączyć obsługę starszego środowiska XR w środowisku Unity 2019 przy użyciu funkcji > Edytowania Project Ustawienia > Player > XR Ustawienia Virtual Reality > Supported.

Zmniejszenie obciążenia InitializeOnLoad

Pracujemy nad zmniejszeniem ilości pracy uruchamianej w programach obsługi InitializeOnLoad, co powinno prowadzić do poprawy szybkości tworzenia pętli wewnętrznej. Programy obsługi InitializeOnLoad są uruchamiane za każdym razem, gdy skrypt jest kompilowany, przed wprowadzeniem trybu odtwarzania, a także podczas uruchamiania edytora. Te programy obsługi są teraz uruchamiane w znacznie mniejszej liczbie przypadków, co prowadzi do ogólnej poprawy czasu odpowiedzi aparatu Unity.

W niektórych przypadkach trzeba było poniesieć kompromis:

  • Aby uzyskać dodatkowy krok integracji, zobacz Przestępna konfiguracja śledzenia ruchu ręcznego.
  • W przypadku osób korzystających z funkcji ARFoundation istnieje teraz dodatkowy krok ręczny w krokach rozpoczynania pracy. Zobacz ARFoundation, aby uzyskać informacje o nowych krokach.
  • W przypadku osób, które będą używać komunikacji zdalnej holograficznej ze starszym potokiem XR w wersji HoloLens 2, należy wykonać krok ręczny.

Stopniowa kontrola granic

Kontrolka granic

Kontrola granic nie jest eksperymentalna i zawiera wiele nowych funkcji oraz mnóstwo poprawek błędów. Oto lista najważniejszych elementów tej aktualizacji:

  • właściwości są podzielone na konfiguracje, co ułatwia konfigurowanie kontroli granic
  • Konfiguracje mogą być udostępniane za pośrednictwem obiektów skryptowych
  • Każda właściwość/właściwość skryptowa może być konfigurowalna w czasie wykonywania
  • Zestaw sterowania bounds nie jest już odtwarzany po zmianie właściwości
  • obsługa dojść do tłumaczenia
  • pełna obsługa ograniczeń za pośrednictwem menedżera ograniczeń
  • integracja systemu elastycznego (eksperymentalna)

Stare pole granicy jest teraz przestarzałe, a istniejące obiekty gry korzystające z pola granicznego można uaktualnić przy użyciu narzędzia migracji lub inspektora pola granicznego.

Składnik menedżera ograniczeń

Ograniczenia mogą być teraz używane zarówno przez kontrolkę granic, jak i manipulator obiektów za pośrednictwem nowego składnika menedżera ograniczeń. Oba składniki domyślnie tworzą menedżera ograniczeń i automatycznie przetwarzają wszelkie dołączone ograniczenia.

Ponadto menedżer ograniczeń zachowania automatycznego zawiera również tryb ręczny, który umożliwia użytkownikom decydowanie o tym, które ograniczenie ma zostać przetworzone. Z tego powodu sposób wyświetlania ograniczeń w inspektorze właściwości nieco się zmienił.

Inspector view showing manual constraint manager selection

Ograniczenia, które są stosowane do składnika, są teraz wyświetlane jako lista w składniku menedżera ograniczeń, natomiast składnik używający menedżera ograniczeń (kontrolka ograniczenia lub manipulatorobiektu ) będzie teraz pokazywać wybrany menedżer ograniczeń i tryb (automatyczny lub ręczny). Aby uzyskać więcej informacji, zapoznaj się z sekcją Menedżera ograniczeń w naszej dokumentów.

HoloLens aktualizacji materiału przycisku 2

Zaktualizowano HoloLens frontonu przycisku 2, aby usunąć czarny kolor w mrC.

HoloLens aktualizacji materiału przycisku 2

Aktualizacja panelu opisu, przykładowa scena wymienna

Zaktualizowany panel opisu. (SceneDescriptionPanelRev.prefab) Nowy projekt udostępnia górny pasek do chwycenie, co umożliwia użytkownikowi dostosowywanie/przenoszenie całej sceny.

Aktualizacja panelu opisu

Wizualizacja siatki przestrzennej — pulse po naciśnięciu w powietrzu

Zaktualizowano przykład cieniowania pulsu, aby siatka przestrzenna HoloLens zachowanie powłoki 2.

Pulse on air-tap (Puls na naciśnięciu w powietrzu)

System elastyczny (eksperymentalny)

Elastic System2

Zestaw MRTK jest teraz dostarczany z elastycznym systemem symulacji, który zawiera szeroką gamę rozszerzalnych i elastycznych podklas, oferując powiązania dla 4-wymiarowej, 3-wymiarowej kolekcji woluminów i prostych liniowych systemów resorów.

Obecnie następujące składniki MRTK, które obsługują menedżera elastycznych, mogą korzystać z funkcji elastycznych:

Expanding an elastic menu Grabbing an elastic coffee cup

Zdjęcie (eksperymentalne)

Przykład interfejsu , który może kontrolować duży obiekt docelowy.

Joystick

S wyboru kolorów (eksperymentalne)

Eksperymentalna kontrolka ułatwiająca zmianę kolorów materiału na dowolnym obiekcie w czasie wykonywania.

Trzy różne metody kontrolki s wyboru kolorów

Cztery różne metody kontrolki s wyboru kolorów

Fundamentalne zmiany

Zmiany plików definicji zestawu

Niektóre pliki asmdef zostały zmienione i teraz obsługują tylko unity 2018.4.13f1 lub nowszy. Błędy kompilacji będą wyświetlane podczas aktualizowania do wersji MRTK 2.5 we wcześniejszych wersjach aparatu Unity. Ten problem można rozwiązać, przechodząc do pliku w oknie projektu i usuwając Assets\MRTK\Providers\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.asmdef brakujące odwołanie w inspektorze. Powtórz te kroki za pomocą Assets\MRTK\Providers\Oculus\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.Oculus.asmdef i Assets\MRTK\Providers\WindowsMixedReality\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.WMR.asmdef . Pamiętaj, że podczas uaktualniania do aparatu Unity 2019 należy cofnąć zmiany, zastępując te trzy pliki asmdef oryginalnymi (tj. niezmodyfikowanych).

IMixedRealityPointerMediator

Ten interfejs został zaktualizowany tak, aby miał nową funkcję:

void SetPointerPreferences(IPointerPreferences pointerPreferences);

Jeśli masz niestandardowy wskaźnik, który nie zawiera podklasy DefaultPointerMediator, musisz zaimplementować tę nową funkcję. Zobacz ten problem, aby uzyskać więcej informacji na temat tego, dlaczego ten problem został dodany. Zostało to dodane w celu zapewnienia, że preferencje wskaźnika zostaną jawnie przekazane do klasy zamiast niejawnie odbywać się na podstawie obecności konstruktora, który przyjmował klasy IPointerPreferences.

Interfejs API REST/Portal urządzeń

Właściwość UseSSL statyczna została przeniesiona z Rest do DevicePortal .

Jeśli zrobiliśmy to wcześniej...

Rest.UseSSL = true

Zrób to teraz...

DevicePortal.UseSSL = true

Link.xml

Jeśli aplikacja wcześniej używała NuGet dystrybucji zestawu mrtk, plik został link.xml usunięty z pakietu Foundation. Aby przywrócić reguły zachowywania kodu, otwarcie projektu w a unity raz spowoduje utworzenie pliku link.xml domyślnego w pliku Assets/MixedRealityToolkit.Generated . Zaleca się dodanie tego pliku (i link.xml.meta ) do kontroli źródła.

Przekształcanie zmian ograniczeń

Właściwość TargetTransform została oznaczona jako przestarzała, ponieważ nie była używana przez system ograniczeń. Logika ograniczeń jest oparta na przekształceń przekazanych do metod Initialize i Apply. Pochodne ograniczenia użytkownika, które korzystają z tej właściwości, mogą buforować element TargetTransform w swojej implementacji przez zapisanie przekształcenia składnika ograniczenia w celu osiągnięcia tego samego zachowania.

Typ danych przechowywanego początkowego świata został zmieniony z MixedRealityPose na MixedRealityTransform, który zawiera lokalną wartość skali obiektu, którym worldPoseOnManipulationStart manipuluje. Dzięki tej zmianie nie trzeba już oddzielnie buforować żadnych początkowych wartości skalowania.

Nowa właściwość w systemie IMixedRealityDictationSystem

Do AudioClip interfejsu IMixedRealityDictationSystem dodano nową właściwość. Właściwość AudioClip umożliwia dostęp do klipu dźwiękowego skojarzonego z bieżącą sesją dyktowania. Użytkownicy muszą zaimplementować właściwość w swoich skryptach implementowania interfejsu.

Wyłączanie fasad usługi

Fasady usług są wyłączone w 2.5. Ta funkcja została pierwotnie dodana, aby ułatwić konfigurację profilów zestawu MRTK (tworząc fałszywe w scenie obiekt GameObjects, które reprezentowały każdą usługę zestawu MRTK). W dłuższej perspektywie chcemy uniknąć tworzenia fałszywych obiektów w grze i próbować zachować je w synchronizacji (ponieważ problemy z synchronizacją danych i "źródłem prawdy" są notorycznie trudne do skalowania i uzyskania odpowiednich danych).

W wersji 2.5 programy obsługi fasady usługi są zawsze dostępne w celu zapewnienia bezproblemowego uaktualniania projektu — wszystkie fasady istniejące w projekcie zostaną usunięte przez program obsługi fasady usługi, aby zapewnić automatyczne naprawienie scen otwieranych w wersji 2.5.

Pozostały kod skojarzony z funkcją fasady usługi zostanie usunięty w przyszłej wersji.

Dodanie kontrolera ruchu do usługi symulacji danych wejściowych

Symulacja kontrolera ruchu jest teraz oferowana w trybie odtwarzania edytora wraz z istniejącą symulacją rąk. Aby włączyć tę zmianę, wiele bieżących funkcji/pól/właściwości jest teraz oznaczonych jako przestarzałe, a wraz z nim InputSimulationService.cs MixedRealityInputSimulationProfile.cs zachodzą najważniejsze zmiany. Logika i zachowanie odpowiedniego kodu w dużej mierze pozostają takie same, a większość przestarzałych funkcji itp. jest powiązana z zastąpieniem odwołania do "ręki" bardziej ogólnym terminem "kontroler" (np. od do DefaultHandSimulationMode DefaultControllerSimulationMode ). Oprócz uzyskiwania nowych nazw, zwracany typ niektórych nowych funkcji jest aktualizowany w celu dopasowania do zmiany nazwy/zachowania (np. na podstawie oryginalnych wartości zwraca teraz wartość zamiast GetControllerDevice GetHandDevice BaseController SimulatedHand ).

IInputSimulationService Ma teraz nowe właściwości MotionControllerDataLeft i MotionControllerDataRight . MixedRealityInputSimulationProfile Zawiera teraz nowe pola dla mapowania klawiatury niektórych przycisków kontrolera ruchu.

Znane problemy

Aparat CameraCache może utworzyć nową kamerę po zamknięciu

W niektórych sytuacjach (np. w przypadku korzystania z dostawcy LeapMotion w edytorze aparatu Unity) możliwe jest, że aparat CameraCache ponownie utworzy mainCamera podczas zamykania. Zobacz ten problem, aby uzyskać więcej informacji.

FileNotFoundException, gdy przykłady są importowane za pośrednictwem aparatu Unity Menedżer pakietów

W zależności od długości ścieżki projektu importowanie przykładów za pośrednictwem aparatu Unity Menedżer pakietów generowania komunikatów FileNotFoundException w konsoli aparatu Unity. Przyczyną jest to, że ścieżka do "brakującego" pliku jest dłuższa niż MAX_PATH (256 znaków). Aby rozwiązać ten problem, skrócić długość ścieżki projektu.

Nie określono żadnego spatializera. Aplikacja nie będzie obsługiwać dźwięku przestrzennego

Jeśli nie skonfigurowano audio spatializera, zostanie wyświetlone ostrzeżenie "Nie określono usługi Spatializer". Taka możliwość może wystąpić, jeśli nie zainstalowano żadnego pakietu XR, ponieważ unity zawiera w tych pakietach urządzenia spatializers.

Aby rozwiązać ten problem, upewnij się, że:

  • Okno > Menedżer pakietów zainstalowany co najmniej jeden pakiet XR

  • Mixed Reality Toolkit > Narzędzia narzędziowe > Konfigurowanie ustawień Project Unity i wybór dla usługi Audio Spatializer

    Wybierz pozycję Audio Spatializer

NullReferenceException: Odwołanie do obiektu nie jest ustawione na wystąpienie obiektu (SceneTransitionService.Iniporządek)

W niektórych sytuacjach otwarcie może EyeTrackingDemo-00-RootScene spowodować błąd NullReferenceException w metodzie Initialize klasy SceneTransitionService. Ten błąd jest spowodowany tym, że profil konfiguracji usługi Scene Transition Service jest nieskonfigurowany. Aby rozwiązać ten problem, należy wykonać następujące czynności:

  • Przechodzenie do MixedRealityToolkit obiektu w hierarchii
  • W oknie Inspector (Inspektor) wybierz pozycję Extensions
  • Jeśli nie jest rozwinięta, rozwiń Scene Transition Service
  • Ustaw wartość na Configuration Profile MRTKExamplesHubSceneTransitionServiceProfile

Naprawianie przejścia sceny

Oculus Quest

Obecnie występuje znany problem z używaniem wtyczki Oculus XR zprogramem podczas określania platform autonomicznych jako docelowych. Sprawdź informacje o śledzeniu usterek/forach/wydaniach oprogramowania Oculus, aby uzyskać aktualizacje.

Usterka jest oznaczana za pomocą tego zestawu 3 błędów:

Błąd wtyczki Oculus XR

UnityUI i TextMeshPro

Istnieje znany problem w przypadku nowszej wersji aplikacji TextMeshPro (1.5.0+ lub 2.1.1+), w którym domyślny rozmiar czcionki dla listy rozwijanej i odstępy między znakami pogrubienia zostały zmienione.

Obraz TMP

Można to zrobić, korzystając ze starszej wersji programu TextMeshPro. Zobacz temat #8556, aby uzyskać więcej szczegółów.