zpráva k vydání verze pro Microsoft Mixed Reality Toolkit 2,5

Důležité

došlo k známému problému s kompilátorem, který ovlivňuje aplikace sestavené pro Microsoft HoloLens 2 pomocí ARM64. tento problém je vyřešen aktualizací Visual Studio 2019 na verzi 16,8 nebo novější. pokud nemůžete aktualizovat Visual Studio, importujte prosím balíček, com.microsoft.mixedreality.toolkit.tools aby se projevilo alternativní řešení.

Co je nového v 2.5.4

Opravuje chybu s integrací Oculus při použití UPM.

Při použití UPM by měl OculusXRSDKDeviceManagerProfile při spuštění vždy mít prefabs sadu na hodnotu None. Tato verze nakonfiguruje Správce zařízení, aby odkazovala na pracovní sadu prefabs při spuštění.

Opravuje problém s OpenXR prostřednictvím UPM

řeší problém, kdy se poskytovatelé OpenXR ve výchozím nastavení nepřidali do link.xml, což způsobí, že se nové projekty při použití OpenXR a MRTK prostřednictvím Správce balíčků Unity nedaří spustit na zařízení. Existující projekty, které jsou upgradovány, budou stále muset být přidány ručně.

Co je nového v 2.5.3

Opravuje regresi pomocí Oculus představeného v 2.5.2.

2.5.2 představil problém sestavení při integraci sady Oculus SDK. Tato verze tento problém vrátí.

Co je nového v 2.5.2

Přidání podpory pro OpenXR

Přidala se počáteční podpora balíčku OpenXR Preview a balíčku Microsoft Mixed reality OpenXR. Další informace najdete na stránce Začínáme s MRTK/XRSDK, v příspěvku na fóru Unitynebo v dokumentaci Microsoftu .

Důležité

OpenXR v Unity se podporuje jenom v Unity 2020,3 a vyšších. Podporuje také sestavení x64, ARM a ARM64.

Opravené chyby vizualizace hranic

Vizualizace hranic, jako je podlaha nebo zdi, se teď správně nakonfigurují a budou viditelné za běhu podle profilu hranice.

MSBuild pro podporu Unity

byla odebrána podpora MSBuild pro Unity jako verze 2.5.2, aby se v souladu s pokyny pro nové balíčky unityzarovnaly.

Co je nového v 2.5.1

Opravené chyby závislostí balíčku

Tato verze opravuje nesprávné závislosti mezi balíčky souborů (např. soubory ve standardních prostředcích, které už nesprávně neodkazují na soubory v základu). Verze 2.5.1 také přidá explicitní závislost na textovou mřížku Pro.

Materiály pro balíčky standardních prostředků se zkopírovaly do assetů/MRTK/shaderů.

Když se balíček standardních prostředků nainstaluje přes UPM, shadery se zkopírují do složky assets/MRTK/shadery, aby se už neměnné. Tím se vyřeší problém aktualizovaných shaderů pro kanál univerzálního vykreslování (URP) vrácení starší verze chování při příštím načtení projektu.

Pevný teleport ukazatel na ruce

Tato verze opravuje problém , ve kterém se může cílový ukazatel teleport připustit k vizuálů.

Co je nového v 2.5.0

podpora Správce balíčků Unity (UPM)

Mixed reality Toolkit se teď dají spravovat pomocí Správce balíčků Unity.

Balíček UPM Foundation MRTK

Poznámka

Pro import balíčků UPM MRTK je potřeba provést několik ručních kroků. další informace najdete v Toolkitech ve smíšeném realitu a v Správce balíčků Unity .

Podpora sady Oculus Quest XR SDK

MRTK teď podporuje spouštění sluchátek a ovladačů Oculus a řadičů pomocí nativního kanálu sady XR SDK. Ruční sledování se podporuje i s balíčkem Unity integrací Oculus , takže Eric PROVENCHER Work na MRTK-Quest!

Pokyny, jak nasadit zařízení na Oculus Quest pomocí nového kanálu, najdete v příručce k nastavení Oculus Quest .

Posouvání kolekce objektů

Komponenta MRTK UX byla upgradována z experimentální funkce a nabízí větší volnost pro rozložení 3D obsahu různých velikostí s přidanou podporou pro objekty, které nemají připojené žádné kolidující objekty. Přidala se nová možnost zákazu maskování obsahu, což usnadňuje vytváření prototypů.

Další informace najdete v tématu věnovaném posouvání kolekce objektů .

Posouvání kolekce objektů

Vylepšení animace ukazatelů teleport, zpracování a vylepšení zvuku

Ukazatel teleport nyní obsahuje vylepšené animace a zpětnou vazbu ke zvukovému přenosu. Vylepšili jsme také manipulaci s ukazatelem teleport, aby se při přechodu z blízkosti okolních na okolních vzdálení povrchy táhly.

Vstupní list tahák simulace

HandInteractionExamples scéna teď má konfigurovatelný zástupce pro zobrazení stránky s nápovědu pro vstupní simulaci.

Vstupní list tahák simulace

Vstupní simulaci pohledu pomocí myši

Uživatelé teď můžou použít myš pro simulaci sledování očí. Podívejte se na Eye Simulation Mode pole v profilu simulace vstupu a nastavte ho na myš. Tím se nahradí předchozí Simulate Eye Position pole.

Myš pohledu očí

Kontroler pohybu vstupní simulace v editoru – režim přehrávání

Uživatelé teď můžou simulovat kontroler pohybu stejně jako v režimu přehrávání v editoru. Aktivační události, tlačítka a nabídky se momentálně podporují.

Kuželový ukazatel

Ukazatele na ukazatel se teď dají nakonfigurovat tak, aby se dotazoval na okolní objekty pomocí kužele z bodu a nikoli koule. lépe se podobá chování z výchozího rozhraní HoloLens 2, které se dotazuje na okolní objekty pomocí kuželu. DefaultHoloLens2InputSystemProfile byla také upravena, aby používala nový ConicalGrabPointer .

Kuželový ukazatel

Balíček TestUtilities

Nyní je k dispozici balíček (Microsoft. MixedReality. Toolkit. Unity. TestUtilities. 2.5.0. unitypackage), který obsahuje testovací infrastrukturu PlayMode a TestMode, kterou používá MRTK k vytváření komplexních testů. Tato infrastruktura je pro samotný tým MRTK mimořádně užitečná a s radostí toho, aby je mohli využít k přidání pokrytí testu na své vlastní projekty.

Následující kód ukazuje, jak vytvořit testovou ruku, jak ji zobrazit v určitém umístění, jak ji přesunout a pak gesto roztažení prstů a otevřít.

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);

Pokyny k zápisu testu pomocí těchto TestUtilities naleznete v této části při psaní testů.

Příklady stávajících testů, které používají tuto infrastrukturu, najdete v tématu MRTK 's PlayModeTests.

Podpora pro moduly s přestupným pohybem Unity

Byla přidána podpora modulů Unity pro přestupnější pohyb, verze 4.5.1 a podpora prostředků 4.4.0. Aktuální podporované verze modulů pro přestupnější pohyb jsou 4.5.0 a 4.5.1.

K dispozici je také další krok pro počáteční integraci s přestupnými pohyby. Další informace najdete v tématu Konfigurace přestupného sledování pohybu v MRTK .

Pozorovatelé sítě s přehledem prostorových dat lépe zpracovává přizpůsobení materiálů

V této verzi Windows Mixed Reality Spatial Mesh ObserverGeneric XR SDK Spatial Mesh Observer mají komponenty a vylepšené zpracování vizuálních materiálů. Materiály jsou teď zachované, když pozorovatel aktualizoval síť tam, kde předtím obnovila výchozí VisibleMaterial, jak je nakonfigurované v profilu.

To umožňuje vývojářům změnit obsah sítě a neočekávaně přepsat změny.

Link.xml vytvořena ve složce MixedRealityToolkit. Generated

Po zavedení MRTK správce balíčků Unity teď MRTK zapisuje link.xml do Assets/MixedRealityToolkit.Generated složky soubor, pokud není k dispozici žádný. Doporučuje se přidat tento soubor (a link.xml.meta ) do správy zdrojového kódu. Link.xml se používá k ovlivnění funkcí pro odstranění spravovaného kódu v linkeru Unity.

Další informace o souboru link.xml MRTK najdete v článku o odstranění MRTK a spravovaného kódu .

2019.3 Unity +: dialog konfigurace MRTK se už nepokouší povolit podporu starší verze XR

Aby se zabránilo potenciálním konfliktům při použití platformy XR Unity, možnost povolit starší verzi XR byla z dialogového okna konfigurace MRTK odebrána. v případě potřeby může být podpora starších verzí XR povolená v Unity 2019 pomocí EditProject NastaveníplayeruXR NastaveníVirtual realitu.

Snížení režijních nákladů na InitializeOnLoad

Pracujeme na tom, abychom snížili množství práce spuštěné v obslužných rutinách InitializeOnLoad, které by měly vést ke zlepšení rychlosti vývoje vnitřních smyček. Obslužné rutiny InitializeOnLoad se spouštějí při každém kompilování skriptu, před vstupem do režimu přehrávání a také při spuštění editoru. Tyto obslužné rutiny teď běží v mnohem méně případech a výsledkem jsou Obecná vylepšení rychlosti odezvy Unity.

V některých případech musely být provedeny tyto kompromisy:

Odstupňovaná hranice ovládacího prvku

Ovládací prvek Meze

Ovládací prvek Meze se odstupňová z experimentálního řešení a obsahuje spoustu nových funkcí a spousty oprav chyb. Tady je seznam nejdůležitějších položek této aktualizace:

  • Vlastnosti jsou rozdělené na konfigurace, což usnadňuje nastavení ovládacího prvku Meze.
  • Konfigurace je možné sdílet prostřednictvím skriptovatelných objektů.
  • Každá vlastnost / skriptovatelná vlastnost je konfigurovatelná za běhu
  • Řídicí panel meze se už při změnách vlastností znovu nevytváří
  • Podpora popisovačů překladu
  • plná podpora omezení prostřednictvím správce omezení
  • integrace elastického systému (experimentální)

Starý ohraničující rámeček je teď zastaralý a existující herní objekty pomocí ohraničovacího rámečku je možné upgradovat pomocí nástroje pro migraci nebo inspektoru ohraničovacího rámečku.

Komponenta Správce omezení

Omezení teď může používat ovládací prvek meze i manipulátor objektů prostřednictvím nové komponenty správce omezení. Obě komponenty vytvoří správce omezení podle výchozího nastavení a automaticky zpracují jakákoli připojená omezení.

Kromě správce omezení automatického chování se také dodává ruční režim, který uživatelům umožňuje rozhodnout, které omezení by se mělo zpracovat. Z tohoto důvodu se způsob, jakým zobrazujeme omezení v inspektoru vlastností, trochu změnil.

Zobrazení inspektoru s ručním výběrem správce omezení

Omezení použitá na komponentu se teď zobrazují jako seznam v komponentě správce omezení, zatímco komponenta používající správce omezení (buď ovládací prvek meze, nebo manipulátor objektů)teď bude zobrazovat vybraný správce omezení a režim (automaticky nebo ručně). Další informace najdete v části Správce omezení v naší dokumentu.

aktualizace HoloLens 2 tlačítek

Aktualizace HoloLens 2 předních šmouhácích materiálů pro odebrání černé barvy v MRC.

aktualizace HoloLens 2 tlačítek

Aktualizace panelu popisů, příklad s pohyblivou scénou

Aktualizovaný panel popisů. (SceneDescriptionPanelRev.prefab) Nový návrh poskytuje uchopitelný horní panel, který uživateli umožňuje upravit/přesunout celou scénu.

Aktualizace panelu popisů

Vizualizace prostorové sítě – pulse na klepnutí ve vzduchu

Aktualizace příkladu pulse shaderu pro prostorovou síť tak, aby HoloLens prostředí 2.

Pulse on air-tap

Elastický systém (experimentální)

Elastic System2

MRTK se teď dodává s elastickým simulačním systémem, který zahrnuje širokou škálu rozšiřitelných a flexibilních podtříd, které nabízejí vazby pro 4rozměrné kvaternionové, trojrozměrné svazky a jednoduché lineární springové systémy.

V současné době mohou elastické funkce využívat následující komponenty MRTK, které podporují elastického manažera:

Rozšíření elastické nabídkyVezměte si elastický šálek kávy

Šmídový (experimentální)

Příklad rozhranístick, které může řídit velký cílový objekt.

Joystick

Výběr barev (experimentální)

Experimentální ovládací prvek, který usnadňuje změnu barev materiálu u libovolného objektu za běhu.

Tři různé metody ovládacího prvku pro výběr barvy

Čtyři různé metody ovládacího prvku pro výběr barvy

Změny způsobující chyby

Změny definiční souborů sestavení

Některé soubory asmdef se mění a nyní podporují jenom Unity 2018.4.13f1 nebo novější. Při aktualizaci na MRTK 2.5 v dřívějších verzích Unity se zobrazí chyby kompilace. Tento problém můžete odstraňovat tak, že v okně projektu přecházíte na a odeberete Assets\MRTK\Providers\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.asmdef chybějící odkaz v inspektoru. Opakujte tyto kroky s a Assets\MRTK\Providers\Oculus\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.Oculus.asmdefAssets\MRTK\Providers\WindowsMixedReality\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.WMR.asmdef . Všimněte si, že při upgradu na Unity 2019 musíte tyto tři soubory asmdef vrátit zpět původními (tj. nezměněné) soubory.

IMixedRealityPointerMediator

Toto rozhraní bylo aktualizováno tak, aby nové funkce:

void SetPointerPreferences(IPointerPreferences pointerPreferences);

Pokud máte vlastní mediátor ukazatele, který nemá podtřídu DefaultPointerMediator, budete muset tuto novou funkci implementovat. Další informace o tom, proč se tento problém přidal, najdete v tomto problému. Tento parametr byl přidán, aby se zajistilo, že předvolby ukazatele budou explicitně předány mediátoru místo toho, aby se implicitně provedly na základě přítomnosti konstruktoru, který převzal IPointerPreferences.

Rest / Portál zařízení API

Statická UseSSL vlastnost byla přesunuta z na RestDevicePortal .

Pokud jste to udělali dříve...

Rest.UseSSL = true

Proveďte to teď...

DevicePortal.UseSSL = true

Link.xml

Pokud aplikace dříve používá NuGet distribuci MRTK, byl soubor odebrán link.xml z balíčku Foundation. Pokud chcete obnovit pravidla zachování kódu, po otevření projektu v Unity vytvoříte výchozí link.xml soubor v Assets/MixedRealityToolkit.Generated souboru . Doporučuje se přidat tento soubor (a link.xml.meta ) do správy zdrojového kódu.

Transformace změn omezení

Vlastnost TargetTransform byla označena jako zastaralá, protože ji nepoužíl systém omezení. Logika omezení je založená na transformaci předané metodám Initialize a Apply. Odvozená uživatelská omezení, která spoléhají na tuto vlastnost, mohou ve své implementaci ukládat do mezipaměti TargetTransform uložením transformace součásti omezení, aby bylo možné dosáhnout stejného chování.

Uložený počáteční svět představuje datový typ byl změněn z MixedRealityPose na MixedRealityTransform, který zahrnuje hodnotu místního škálování worldPoseOnManipulationStart manipulovaných objektů. S touto změnou už není nutné ukládat počáteční hodnoty škálování do mezipaměti samostatně.

Nová vlastnost v IMixedRealityDictationSystem

Do rozhraní AudioClip IMixedRealityDictationSystem byla přidána nová vlastnost. Vlastnost AudioClip umožňuje přístup ke zvukovému klipu přidruženému k aktuální relaci diktování. Uživatelé musí implementovat vlastnost ve svých skriptech implementující rozhraní.

Průčelí služeb – vypnutí

Průčelí služeb se ve 2.5 přetátkuje. Tato funkce byla původně přidána, aby se usnadnila konfigurace profilů MRTK (vytvořením falešných objektů GameObject na scéně, které reprezentují jednotlivé služby MRTK). V dlouhodobém horizontu se chceme vyhnout vytváření falešných herních objektů a jejich synchronizaci (protože problémy se synchronizací dat a zdrojem pravdivých informací jsou notoricky obtížné škálovat a napravit).

Ve verzi 2.5 se obslužné rutiny průčelí služby zachovávají, aby se zajistilo bezproblémové upgradování projektu – všechny průčelí, které v projektu existují, odstraní obslužná rutina průčelí služby, aby se scény otevřené ve verzi 2.5 automaticky opravili.

Zbývající kód přidružený k funkci průčelí služby bude v budoucí verzi odebrán.

Přidání ovladače pohybu do služby simulace vstupu

Simulace ovladače pohybu se teď nabízí v režimu přehrávání editoru společně se stávající simulací rukou. Aby bylo možné tuto změnu povolit, mnoho aktuálních funkcí, polí/vlastností je nyní označeno jako zastaralé a s tím, jak se starají o InputSimulationService.csMixedRealityInputSimulationProfile.cs nejdůležitější změny. Logika a chování relevantního kódu z velké části zůstávají stejné a většina zastaralých funkcí atd. souvisí s nahrazením odkazu na "ruční" výraz "kontroler" (např. od DefaultHandSimulationMode do DefaultControllerSimulationMode ). Kromě získání nových názvů se návratový typ určitých nových funkcí aktualizuje tak, aby odpovídal změně názvu a chování (např. na základě původního nyní vrací místo GetControllerDeviceGetHandDeviceBaseControllerSimulatedHand ).

IInputSimulationService teď má nové vlastnosti a MotionControllerDataLeftMotionControllerDataRight . MixedRealityInputSimulationProfile teď obsahuje nová pole pro mapování klávesnice určitých tlačítek ovladače pohybu.

Známé problémy

Funkce CameraCache může při vypnutí vytvořit novou kameru.

V některých situacích (např. při použití zprostředkovatele LeapMotion v Unity Editoru) může CameraCache znovu vytvořit maincameru při vypnutí. Další informace najdete v tomto problému.

FileNotFoundException při importu příkladů přes Unity Správce balíčků

V závislosti na délce cesty k projektu může import příkladů přes Unity Správce balíčků v konzole Unity generovat zprávy FileNotFoundException. Příčinou je cesta k chybějícímu souboru, který je delší než MAX_PATH (256 znaků). Pokud chcete tento problém vyřešit, zkrátte délku cesty k projektu.

Nebyl zadán žádný spatializer. Aplikace nebude podporovat prostorové zvuky.

Pokud není nakonfigurovaný zvukový spatializer, zobrazí se upozornění "No spatializered" (není zadán). Tato situace může nastat, pokud není nainstalovaný žádný balíček XR, protože Unity zahrnuje spatializers do těchto balíčků.

Chcete-li problém vyřešit, zkontrolujte, zda:

  • OknoSprávce balíčků je nainstalovaný minimálně jeden balíček XR.

  • Mixed Toolkitutilitykonfigurují Project Unity a vytvoří výběr pro Spatializer zvuku .

    Vybrat zvuk Spatializer

NullReferenceException: odkaz na objekt není nastavený na instanci objektu (SceneTransitionService. Initialize).

V některých situacích může otevírání EyeTrackingDemo-00-RootScene způsobit NullReferenceException v metodě Initialize třídy SceneTransitionService. Tato chyba je způsobena zrušením platnosti konfiguračního profilu služby přechodu na scéně. Chcete-li problém vyřešit, použijte následující postup:

  • Přejít na MixedRealityToolkit objekt v hierarchii
  • V okně inspektora vyberte Extensions
  • Pokud není rozbaleno, rozbalte Scene Transition Service
  • Nastavte hodnotu Configuration Profile na Configuration Profile

Opravit přechod scény

Oculus – Quest

V současné době se jedná o známý problém při použití modulu plug-in Oculus XR s při cílení na samostatné platformy. Aktualizace najdete v části Oculus (sledování chyb/fóra/diskuze) a poznámky k verzi.

Chyba je označena s touto sadou 3 chyb:

Chyba modulu plug-in Oculus XR

UnityUI a TextMeshPro

Došlo k známému problému pro novější verze TextMeshPro (1.5.0 + nebo 2.1.1 +), kde se změnila výchozí velikost písma pro rozevírací seznamy a mezery znaků tučného písma.

Obrázek TMP

To se dá vyřešit tak, že se downgrade na starší verzi TextMeshPro. Další podrobnosti najdete v tématu věnovaném potížím #8556 .