A Microsoft Mixed Reality Toolkit 2.5 kibocsátási megjegyzései

Fontos

Van egy ismert fordítói probléma, amely hatással van az ARM64-et használó Microsoft HoloLens 2-hez készült alkalmazásokra. Ezt a problémát a Visual Studio 2019 16.8-os vagy újabb verziójára való frissítésével hárítottuk el. Ha nem tudja frissíteni a Visual Studiót, importálja a com.microsoft.mixedreality.toolkit.tools csomagot egy kerülő megoldás alkalmazásához.

A 2.5.4 újdonságai

Kijavítottuk az Oculus-integrációval kapcsolatos hibát a UPM használatakor

UpM használata esetén az OculusXRSDKDeviceManagerProfile indításkor mindig a None (Nincs) értékű előtagokkal rendelkezik. Ez a kiadás úgy konfigurálja a Eszközkezelő, hogy indításkor egy működő előregyártott készletre mutasson.

Kijavítottuk az OpenXR UPM-en keresztüli hibáját

Kijavítottunk egy hibát, amely miatt az OpenXR-szolgáltatók alapértelmezés szerint nem lettek hozzáadva a link.xml, ami miatt az új projektek nem futnak az eszközön, amikor a Unity Csomagkezelőjén keresztül OpenXR- és MRTK-t használnak. A meglévő, frissített projektekhez továbbra is manuálisan kell hozzáadni.

A 2.5.3 újdonságai

Kijavít egy regressziót a 2.5.2-ben bevezetett Oculus használatával

A 2.5.2 buildelési problémát vezetett be az Oculus SDK integrálása során. Ez a kiadás visszaállítja ezt a problémát.

A 2.5.2 újdonságai

Az OpenXR támogatásának hozzáadása

Hozzá lett adva a Unity OpenXR előzetes verziójának és a Microsoft Mixed Reality OpenXR-csomagjának kezdeti támogatása. További információért tekintse meg az MRTK/XRSDK első lépéseket ismertető oldalát, a Unity fórumbejegyzését vagy a Microsoft dokumentációját .

Fontos

Az OpenXR a Unityben csak a Unity 2020.3-s és újabb verzióiban támogatott. Emellett csak az x64-, ARM- és ARM64-buildeket támogatja.

Határvizualizációs hibák kijavítva

A határvizualizációk, például a padló vagy a falak, mostantól megfelelően lesznek konfigurálva és láthatók futásidőben a határprofilnak megfelelően.

MSBuild Unity-támogatáshoz

Az MSBuild for Unity támogatása a 2.5.2-es kiadástól el lett távolítva a Unity új csomag útmutatójának megfelelően.

A 2.5.1 újdonságai

A csomagfüggőség hibái ki lett javítva

Ez a kiadás kijavítja a nem megfelelő csomagközi fájlfüggőségeket (például: a Standard assetsben lévő fájlok már nem hivatkoznak helytelenül a Foundation fájljaira). A 2.5.1-es verzió explicit függőséget is hozzáad a Text Mesh Pro-ra.

Standard Assets csomagárnyékolók az Assets/MRTK/Shaders szolgáltatásba másolva

Ha a Standard Assets csomag upm-en keresztül van telepítve, a rendszer az árnyékolókat az Assets/MRTK/Shaders mappába másolja, hogy azok többé ne legyenek módosíthatók. Ez megoldja az univerzális renderelési folyamathoz (URP) frissített árnyékolók problémáját, amely visszaállítja az örökölt viselkedést a projekt következő betöltésekor.

Rögzített teleportkurzor a kézhez ragasztva

Ez a kiadás kijavít egy hibát , amely miatt a teleport célkurzora a kézi vizualizációkhoz ragaszkodhat.

A 2.5.0 újdonságai

A Unity Package Manager (UPM) támogatása

A Mixed Reality eszközkészlet mostantól a Unity Csomagkezelővel kezelhető.

MRTK Foundation UPM-csomag

Megjegyzés

Az MRTK UPM-csomagok importálásához néhány manuális lépés szükséges. További információért tekintse át Mixed Reality Eszközkészletet és a Unity Package Managert.

Az Oculus Quest XR SDK támogatása

Az MRTK mostantól támogatja az Oculus Quest headsetek és vezérlők natív XR SDK-folyamat használatával történő futtatását. A kézkövetés az Oculus Integration Unity csomaggal is támogatott , köszönhetően Eric Provencher MRTK-Questen végzett munkájának!

Az eszköz az Oculus Questben az új folyamat használatával történő üzembe helyezésével kapcsolatos utasításokért tekintse meg az Oculus Quest beállítási útmutatóját.

Objektumgyűjtemény görgetése

Az MRTK UX összetevőt egy kísérleti funkcióról frissítettük, és nagyobb szabadságot biztosít a különböző méretű 3D-tartalmak elrendezéséhez, és további támogatást nyújt az olyan objektumokhoz, amelyekhez nincs csatolva ütköző. A tartalommaszkolás letiltásának új lehetősége is hozzá lett adva, ami megkönnyíti a prototípus-készítést.

További információt az Objektumgyűjtemény görgetése című témakörben talál.

Objektumgyűjtemény görgetése

A teleportmutató animációinak, kezelésének és hangjavításai

A teleportmutató mostantól továbbfejlesztett animációkat és hangvisszajelzéseket is kapott. Továbbfejlesztettük a teleportmutató kezelését is, hogy zökkenőmentesebben működjön, amikor a közeli felületekre mutatnak, és távolabbi felületekre váltanak.

Bemeneti szimulációs hasznos tanácsok

A HandInteractionExamples jelenet mostantól konfigurálható parancsikont biztosít a bemeneti szimuláció súgóoldalának megjelenítéséhez

Bemeneti szimulációs hasznos tanácsok

Bemenetszimulációs szem tekintete egérrel

A felhasználók mostantól az Egérrel szimulálhatják a szemkövetést. Tekintse meg a Eye Simulation Mode mezőt a bemeneti szimulációs profilban, és állítsa egérre. Ez lecseréli az előző Simulate Eye Position mezőt.

Szem tekintete egér

Bemenetszimulációs mozgásvezérlő a szerkesztő lejátszási módban

A felhasználók mostantól ugyanúgy szimulálhatják a mozgásvezérlőt, mint a szerkesztői játékmódban. Az eseményindító, a megragadás és a menügombok jelenleg támogatottak.

Kúpos fogópont

A fogómutatók mostantól úgy konfigurálhatók, hogy a közeli objektumok lekérdezéséhez a fogópontról származó kúpot használjon, nem pedig gömböt. Ez jobban hasonlít az alapértelmezett HoloLens 2 felület viselkedésére, amely egy kúp használatával lekérdezi a közeli objektumokat. A DefaultHoloLens2InputSystemProfile is módosult az új ConicalGrabPointerhasználatához.

Kúpos fogópont

TestUtilities csomag

Most már létezik egy csomag (Microsoft.MixedReality.Toolkit.Unity.TestUtilities.2.5.0.unitypackage), amely tartalmazza azt a PlayMode és TestMode tesztinfrastruktúrát, amelyet az MRTK a végpontok közötti tesztek létrehozásához használ. Ez az infrastruktúra rendkívül hasznos volt magának az MRTK-csapatnak, és izgatottan várjuk, hogy a fogyasztók ezzel a tesztlefedettséggel bővítsék saját projektjeiket.

Az alábbi kód bemutatja, hogyan hozhat létre tesztkézbesítést, hogyan jelenítheti meg egy adott helyen, mozgathatja, majd csippentheti és nyithatja meg.

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

A tesztnek a TestUtilities használatával történő megírásával kapcsolatos utasításokért tekintse meg ezt a szakaszt a tesztek írásáról.

Az infrastruktúrát használó meglévő tesztek példáiért lásd az MRTK PlayModeTests (Az MRTK PlayModeTests) című szakaszát.

A Leap Motion 4.5.1 Unity-modulok támogatása

A Leap Motion Unity-modulok 4.5.1-es verziójának támogatása hozzáadva, és a 4.4.0-s eszközök támogatása el lett távolítva. A Leap Motion Unity modulok jelenleg támogatott verziói a 4.5.0 és a 4.5.1.

További lépés a Leap Motion kezdeti integrációjához: How to Configure the Leap Motion Hand Tracking in MRTK (A Leap Motion Hand Tracking konfigurálása az MRTK-ban ).

Spatial Awareness Mesh Observer jobban kezeli az anyagok testreszabását

Ezzel a kiadással a Windows Mixed Reality Spatial Mesh Observer és az összetevők javították a Generic XR SDK Spatial Mesh Observer vizuális anyagkezelést. Az anyagok akkor maradnak meg, ha a megfigyelő frissített egy hálót, ahol korábban visszaállították őket a profilban konfigurált alapértelmezett VisibleMaterial értékre.

Ez lehetővé teszi, hogy a fejlesztők módosítják a háló anyagát, és ne írja felül váratlanul a módosításokat.

A MixedRealityToolkit.Generated mappában létrehozott Link.xml

A Unity Package Manger MRTK bevezetésével az MRTK most egy link.xml fájlt ír a Assets/MixedRealityToolkit.Generated mappába, ha nincs jelen. Javasoljuk, hogy adja hozzá ezt a fájlt (és link.xml.meta) a verziókövetéshez. Link.xml a Unity linker felügyelt kódfosztó funkciójának befolyásolására szolgál.

Az MRTK link.xml fájllal kapcsolatos további információkért tekintse meg az MRTK és a felügyelt kód sztriptízeléséről szóló cikket.

Unity 2019.3+: Az MRTK konfigurációs párbeszédpanelje már nem kísérli meg engedélyezni az örökölt XR-támogatást

A Unity XR platformjának használatakor fellépő esetleges ütközések elkerülése érdekében az örökölt XR-támogatás engedélyezésének lehetősége el lett távolítva az MRTK konfigurációs párbeszédpaneléről. Ha szükséges, az örökölt XR-támogatás engedélyezhető a Unity 2019-ben aProject Settings>Player>XR Settings>Virtual Reality supportedhasználatával>.

Az InitializeOnLoad többletterhelésének csökkentése

Dolgozunk azon, hogy csökkentsük az InitializeOnLoad kezelőkben futó munka mennyiségét, ami a belső hurok fejlesztési sebességének javulásához vezethet. Az InitializeOnLoad kezelők minden alkalommal futnak, amikor egy szkriptet lefordítanak a lejátszási módba lépés előtt, valamint a szerkesztő indításakor is. Ezek a kezelők mostantól sokkal kevesebb esetben futnak, ami a Unity válaszképességének általános javulását eredményezi.

Bizonyos esetekben kompromisszumra volt szükség:

A kötöttség-vezérlés ki van értékelve

Kötött vezérlőelem

A korlátok vezérlése ki van vonva a kísérleti folyamatból, és számos új funkcióval és rengeteg hibajavítással rendelkezik. Íme a frissítés legfontosabb elemeinek listája:

  • a tulajdonságok konfigurációkra vannak felosztva, ami megkönnyíti a korlátok vezérlésének beállítását
  • a konfigurációk szkriptelhető objektumokon keresztül oszthatók meg
  • minden tulajdonság/szkriptelhető tulajdonság konfigurálható futtatókörnyezetben
  • A bounds vezérlőfólió többé nem lesz újra létrehozva a tulajdonságmódosítások esetén
  • fordítási kezelők támogatása
  • teljes kényszertámogatás a kényszerkezelőn keresztül
  • elastics rendszerintegráció (kísérleti)

A régi határolókeret elavult, és a határolókeretet használó meglévő játékobjektumok frissíthetők a migrálási eszközzel vagy a határolókeret-felügyelővel.

Kényszerkezelő összetevő

A kényszereket most már használhatja a korlátvezérlő és az objektummanipulátor is az új kényszerkezelő összetevőn keresztül. Mindkét összetevő alapértelmezés szerint létrehoz egy kényszerkezelőt, és automatikusan feldolgoz minden csatolt kényszert.

Az automatikus viselkedési kényszerkezelő emellett manuális módot is biztosít, amellyel a felhasználók eldönthetik, hogy melyik kényszert kell feldolgozni. Emiatt a kényszerek tulajdonságfelügyelőben való megjelenítésének módja kissé megváltozott.

Felügyelő nézet a manuális kényszerkezelő kiválasztásával

Az összetevőre alkalmazott kényszerek mostantól listaként jelennek meg a kényszerkezelő összetevőben, míg a kényszerkezelőt használó összetevő (vagy a korlátvezérlő vagy az objektummanipulátor) most a kiválasztott kényszerkezelőt és módot (automatikus vagy manuális) jeleníti meg. További információkért olvassa el a dokumentációnk kényszerkezelő szakaszát.

HoloLens 2 gomb anyagfrissítése

Frissítettük HoloLens 2 gomb elülső ketrecének anyagát, hogy eltávolítsa a fekete színt az MRC-ben.

HoloLens 2 gomb anyagfrissítése

Leírás panel frissítése, mozgatható példajelenet

Frissített leírás panel. (SceneDescriptionPanelRev.prefab) Az új kialakítás egy megragadható felső sávot biztosít, amely lehetővé teszi a felhasználó számára a teljes jelenet beállítását/áthelyezését.

Leírás panel frissítése

Térbeli hálós vizualizáció – impulzus a légcsapon

Frissített pulzusárnyékoló példa a térbeli hálóra, hogy megfeleljen HoloLens 2 felületének viselkedésének.

Pulzus levegőcsapáson

Rugalmas rendszer (kísérleti)

Rugalmas rendszer2

Az MRTK most egy rugalmas szimulációs rendszerrel rendelkezik, amely számos bővíthető és rugalmas alosztályt tartalmaz, amelyek 4 dimenziós kvaternion rugókhoz, 3 dimenziós kötetrugókhoz és egyszerű lineáris rugórendszerekhez kínálnak kötéseket.

Az elastics managert támogató alábbi MRTK-összetevők jelenleg rugalmas funkciókat használhatnak:

Rugalmas menü kibontásaRugalmas kávés csésze megragadása

Joystick (kísérleti)

Példa a joystick felületére, amely képes vezérelni egy nagy célobjektumot.

Joystick

Színválasztó (kísérleti)

Kísérleti vezérlő, amely megkönnyíti az anyagszínek módosítását bármely objektumon futásidőben.

A színválasztó vezérlőelem három különböző módszere

A színválasztó vezérlőelem négy különböző módszere

Kompatibilitástörő változások

A szerelvénydefiníciós fájlok módosításai

Néhány asmdef-fájl módosult, és jelenleg csak a Unity 2018.4.13f1-et vagy újabb verziót támogatja. Fordítási hibák jelennek meg a Unity korábbi verzióiban az MRTK 2.5-re való frissítéskor. Ezt úgy lehet kijavítani, hogy Assets\MRTK\Providers\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.asmdef a projektablakba lép, és eltávolítja a hiányzó referenciát az ellenőrben. Ismételje meg ezeket a lépéseket a és Assets\MRTK\Providers\WindowsMixedReality\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.WMR.asmdefa használatávalAssets\MRTK\Providers\Oculus\XRSDK\Microsoft.MixedReality.Toolkit.Providers.XRSDK.Oculus.asmdef. Vegye figyelembe, hogy a Unity 2019-re való frissítéskor vissza kell állítania a módosításokat úgy, hogy a három asmdef-fájlt eredeti (azaz nem módosított) fájlokra cseréli.

IMixedRealityPointerMediator

Ez a felület új függvényre lett frissítve:

void SetPointerPreferences(IPointerPreferences pointerPreferences);

Ha olyan egyéni mutató-közvetítővel rendelkezik, amely nem a DefaultPointerMediator alosztályt használja, implementálnia kell ezt az új függvényt. A probléma további hátterét a probléma hozzáadásának okait tekintve tekinti meg. Ez azért lett hozzáadva, hogy a mutató preferenciái explicit módon legyenek átadva a közvetítőnek ahelyett, hogy implicit módon történnek az IPointerPreferencest használó konstruktor jelenléte alapján.

Rest / Device Portal API

A UseSSL statikus tulajdonság át lett helyezve a következőre RestDevicePortal: .

Ha ezt korábban tette...

Rest.UseSSL = true

Tegye ezt most...

DevicePortal.UseSSL = true

Link.xml

Ha egy alkalmazás korábban az MRTK NuGet-disztribúcióját használta, a link.xml fájl el lett távolítva az Foundation csomagból. A kódmegőrzési szabályok visszaállításához, ha egyszer megnyitja a projektet a Unityben, létrehoz egy alapértelmezett link.xml fájlt a fájlban Assets/MixedRealityToolkit.Generated. Javasoljuk, hogy ezt a fájlt (és link.xml.meta) hozzáadja a forrásvezérlőhöz.

Kényszermódosítások átalakítása

A TargetTransform tulajdonság elavultként lett megjelölve, mivel a kényszerrendszer nem használta. A kényszerlogika az Inicializálás és az Alkalmaz metódusokba átadott átalakításon alapul. Az erre a tulajdonságra támaszkodó származtatott felhasználói kényszerek gyorsítótárazhatják a TargetTransformot a implementációjukban úgy, hogy a kényszerösszetevő átalakításának tárolásával ugyanazt a viselkedést érik el.

A tárolt kezdeti világ póz worldPoseOnManipulationStart adattípusa MixedRealityPose-ról MixedRealityTransformra módosult, amely tartalmazza a manipulált objektum helyi méretezési értékét. Ezzel a módosítással már nem szükséges külön gyorsítótárazni a kezdeti skálázási értékeket.

Új tulajdonság az IMixedRealityDictationSystemben

Új tulajdonság AudioClip lett hozzáadva az IMixedRealityDictationSystem felülethez. A AudioClip tulajdonság lehetővé teszi az aktuális diktálási munkamenethez társított hangklip elérését. A felhasználóknak implementálniuk kell a tulajdonságot a szkriptjeikben, és implementálniuk kell a felületet.

A szolgáltatáshomlokzatok lefordulnak

A szolgáltatások homlokzatai a 2.5-ös verzióban le vannak tiltva. Ez a funkció eredetileg azért lett hozzáadva, hogy megkönnyítse az MRTK-profilok konfigurálását (az MRTK minden szolgáltatását jelképező hamis helyszíni GameObjects létrehozásával). Hosszú távon el szeretnénk kerülni a hamis játékon belüli objektumok létrehozását és szinkronban tartását (mivel az adatszinkronizálással és az "igazságforrással" kapcsolatos problémákat közismerten nehéz skálázni és helyrehozni).

A 2.5-ös verzióban a szolgáltatáshomlokzat-kezelők megmaradnak, hogy a projektfrissítés zökkenőmentes legyen – a projektben meglévő homlokzatokat a szolgáltatás homlokzatkezelője törli, hogy a 2.5-ben megnyitott jelenetek automatikusan javítva legyenek.

A szolgáltatáshomlokzat funkcióhoz társított többi kód egy későbbi kiadásban törlődik.

Mozgásvezérlő hozzáadása a bemeneti szimulációs szolgáltatáshoz

A mozgásvezérlő szimulációja mostantól szerkesztői lejátszási módban is elérhető a meglévő kézszimuláció mellett. A módosítás engedélyezéséhez számos aktuális függvény/mező/tulajdonság már elavultként van megjelölve, és MixedRealityInputSimulationProfile.cs a legfontosabb módosításokat InputSimulationService.cs kapja. A vonatkozó kód logikája és viselkedése nagyrészt változatlan marad, és az elavult függvények többsége stb. a "hand" kifejezésre való hivatkozásnak a "vezérlő" általánosabb kifejezésre való lecserélésével kapcsolatosak (pl. a-ról DefaultHandSimulationMode a-ra DefaultControllerSimulationMode). Az új nevek beolvasása mellett bizonyos új függvények visszatérési típusa is frissül, hogy megfeleljen a név/viselkedés változásának (például GetControllerDevice az eredeti helyett az eredeti GetHandDevice visszaadása BaseControllerSimulatedHand).

IInputSimulationService most már új tulajdonságokkal rendelkezik MotionControllerDataLeft , és MotionControllerDataRight. MixedRealityInputSimulationProfile mostantól új mezőket tartalmaz bizonyos mozgásvezérlő gombok billentyűzetleképezéséhez.

Ismert problémák

A CameraCache új kamerát hozhat létre a leállításkor

Bizonyos esetekben (például amikor a LeapMotion szolgáltatót használja a Unity Editorban), a CameraCache újra létrehozhatja a MainCamera-t a leállításkor. További információért tekintse meg ezt a problémát .

FileNotFoundException, ha példákat importál a Unity Package Managerrel

A projektútvonal hosszától függően a példák Unity Package Managerrel való importálása FileNotFoundException üzeneteket hozhat létre a Unity Konzolon. Ennek az az oka, hogy a "hiányzó" fájl elérési útja hosszabb, mint MAX_PATH (256 karakter). A probléma megoldásához rövidítse le a projektútvonal hosszát.

Nincs megadva térbeliizáló. Az alkalmazás nem támogatja a Spatial Soundot

"Nincs megadva térbeliizer" figyelmeztetés jelenik meg, ha nincs konfigurálva hang-térbeliizáló. Ez akkor fordulhat elő, ha nincs telepítve XR-csomag, mivel a Unity térbeliizereket tartalmaz ezekben a csomagokban.

A probléma megoldásához győződjön meg arról, hogy:

  • Ablak>A Package Manager egy vagy több XR-csomaggal rendelkezik

  • Mixed Reality Eszközkészlet>segédprogramok>Konfigurálja a Unity-projektet, és válasszon a Audio Spatializerhez

    Hang térbeliizáló kiválasztása

NullReferenceException: Az objektumhivatkozás nincs objektumpéldányra állítva (SceneTransitionService.Initialize)

Bizonyos esetekben a megnyitás EyeTrackingDemo-00-RootScene NullReferenceException értéket okozhat a SceneTransitionService osztály Initialize metódusában. Ezt a hibát a Jelenetáttűnési szolgáltatás konfigurációs profiljának leválasztása okozza. A probléma megoldásához kövesse az alábbi lépéseket:

  • Navigáljon a MixedRealityToolkit hierarchia objektumához
  • Az Inspector ablakban válassza a Extensions
  • Ha nincs kibontva, bontsa ki a Scene Transition Service
  • Az érték beállítása MRTKExamplesHubSceneTransitionServiceProfile értékreConfiguration Profile

Jelenetváltás javítása

Oculus Quest

Jelenleg ismert probléma merült fel az Oculus XR beépülő modul és a különálló platformok célzása során. Frissítésekért tekintse meg az Oculus hibakövető/fórum/kiadási megjegyzéseit.

A hiba a következő 3 hibával van jelezve:

Oculus XR beépülő modul hibája

UnityUI és TextMeshPro

A TextMeshPro (1.5.0 vagy 2.1.1+) újabb verzióinak ismert problémája, hogy a legördülő listák alapértelmezett betűmérete és a félkövér betűköz megváltozott.

TMP-rendszerkép

Ez a TextMeshPro egy korábbi verziójára való visszalépéssel megkerülhető. További részletekért tekintse meg a 8556-os problémát .