Szem által támogatott navigáció az MRTK-ban – MRTK2

MRTK

Imagine egy lappal olvas információkat, és amikor eléri a megjelenített szöveg végét, a szöveg automatikusan felgörget, hogy több tartalmat jelenítsen meg. Azt is megteheti, hogy folyékonyan nagyítja, hogy hová néz. A térkép automatikusan módosítja a tartalmat is, hogy a fontos dolgok a nézeten belül maradjanak. Egy másik érdekes alkalmazás a 3D hologramok kihangosító megfigyelése a hologram azon részeinek automatikus eleje automatikusan történő elhozásával. Az alábbi példák a szem által támogatott navigáció kontextusában jelennek meg ezen az oldalon.

Az alábbi leírások feltételezik, hogy már ismeri a szemkövetés beállítását az MRTK-jelenetben , valamint a szemkövető adatok MRTK Unityben való elérésének alapjait. Az alábbi példák mind a EyeTrackingDemo-03-Navigation (Assets/MRTK/Examples/Demos/EyeTracking/Scenes/EyeTrackingDemo-03-Navigation) jelenet részei.

Összefoglaló: Szöveg automatikus görgetése, szempillantás által támogatott pásztázás és virtuális térkép nagyítása, kéz nélküli tekintetű térbeli forgatás.

Automatikus görgetés

Az automatikus görgetéssel a felhasználó ujjemelés nélkül görgethet a szövegek között. Egyszerűen folytassa az olvasást, és a szöveg automatikusan felfelé vagy lefelé görget attól függően, hogy a felhasználó hol keres. A (Assets/MRTK/Examples/Demos/EyeTracking/Scenes) című példából EyeTrackingDemo-03-Navigation indulhat ki. Ez a példa egy TextMesh összetevőt használ az új szövegek rugalmas betöltéséhez és formázásához. Az automatikus görgetés engedélyezéséhez egyszerűen adja hozzá a következő két szkriptet a szövegdoboz ütköző összetevőjéhez:

ScrollRectTransf

A ScrollRectTransf szkripttel végiggörgethet a TextMesh vagy általánosabban egy RectTransform-összetevőn. Ha a RectTransform helyett egy textúra között szeretne görgetni, a ScrollRectTransf helyett használja a ScrollTexture függvényt. Az alábbiakban a Unity-szerkesztőben elérhető ScrollRectTransf paramétereit részletesebben ismertetjük:

Paraméterek Description
LimitPanning Ha engedélyezve van, leállítja a görgethető tartalmat a határán.
RectTransfToNavigate Hivatkozás a begörgetni kívánt RectTransformra .
RefToViewport A görgethető tartalom szülő RectTransformjára való hivatkozás a megfelelő eltolás és határ meghatározásához.
AutoGazeScrollIsActive Ha engedélyezve van, a szöveg automatikusan görget, ha a felhasználó aktív régiót néz (például a görgetőpanel felső és alsó része, ha a függőleges görgetési sebesség nem nulla).
ScrollSpeed_x Ha nullára nem egyenlő értékre van állítva, a vízszintes görgetés engedélyezve lesz. A negatív értékek a görgetés irányának változását jelentik: Balról jobbra és jobbról balra.
ScrollSpeed_y Ha nullára nem egyenlő értékre van állítva, a függőleges görgetés engedélyezve lesz. A negatív értékek a görgetés irányának változását jelentik: felfelé és lefelé, illetve felfelé.
MinDistFromCenterForAutoScroll Normalizált minimális távolság x-ben és y-ban a cél találatmezőjének közepétől (0, 0) a görgetésig. Így az értékeknek 0 (mindig görgetés) és 0,5 (görgetés nélkül) között kell lenniük.
UseSkimProofing Ha engedélyezve van, megakadályozza a hirtelen görgetési mozgásokat, ha gyorsan körülnéz. Ennek ellenére a görgetés kevésbé lesz rugalmas. A SkimProofUpdateSpeed értékkel hangolható.
SkimProofUpdateSpeed Minél alacsonyabb az érték, annál lassabb lesz a görgetés a legörgetés után. Ajánlott érték: 5.

Eye-supported scroll setup in Unity

EyeTrackingTarget

Az EyeTrackingTarget összetevő csatlakoztatása lehetővé teszi a szemszemekkel kapcsolatos események rugalmas kezelését. A görgetési minta olyan görgetési szöveget mutat be, amely akkor kezdődik, amikor a felhasználó megtekinti a panelt, és leáll, amikor a felhasználó eltávolodik tőle. Eye-supported scroll setup in Unity: EyeTrackingTarget

Tekintet által támogatott pásztázás és nagyítás

Who még nem használt virtuális térképet az otthonuk kereséséhez vagy teljesen új helyek felfedezéséhez? Szemkövetés lehetővé teszi, hogy közvetlenül merüljön el pontosan azokat a részeket, amelyek érdeklik, és miután nagyított, akkor gördülékenyen követheti az út során az utcán felfedezni a környéken! Ez nemcsak a földrajzi térképek feltárásához hasznos, hanem a fényképek, adatvizualizációk vagy akár élő közvetítésű orvosi képek részleteinek megtekintéséhez is. Ezt a képességet egyszerűen használhatja az alkalmazásban! Textúra (például fénykép, streamelt adatok) tartalom esetén egyszerűen adja hozzá a PanZoomTexture szkriptet. RectTransform esetén használja a PanZoomRectTransf parancsot. Az Automatikus görgetés funkció kiterjesztése lényegében lehetővé teszi, hogy egyszerre függőlegesen és vízszintesen is görgethessen, és a tartalmat közvetlenül a felhasználó aktuális fókuszpontja körül nagyíthassuk.

Paraméterek Description
LimitPanning Ha engedélyezve van, leállítja a görgethető tartalmat a határán.
HandZoomEnabledOnStartup Azt jelzi, hogy a kézmozdulatok automatikusan engedélyezve vannak-e a nagyítási kézmozdulatok végrehajtásához. Érdemes lehet először letiltani a nagyítási műveletek véletlen aktiválásának elkerülése érdekében.
RendererOfTextureToBeNavigated A navigálni kívánt anyagminta hivatkozott renderelője.
Zoom_Acceleration A logisztikai sebességfüggvény-leképezés meredekségét meghatározó nagyítási gyorsítás.
Zoom_SpeedMax Maximális nagyítási sebesség.
Zoom_MinScale A textúra minimális mérete a nagyításhoz - például 0,5f (az eredeti méret fele).
Zoom_MaxScale Az anyagminta maximális mérete a nagyításhoz – például 1f (az eredeti méret) vagy 2,0f (az eredeti méret kétszerese).
Zoom_TimeInSecToZoom Időzített nagyítás: Az aktiválást követően a rendszer másodpercek alatt elvégzi a nagyítást/kicsinyítést a megadott időtartamon belül.
Zoom_Gesture A nagyításhoz/kicsinyítéshez használandó kézmozdulat típusa.
--- ---
Pan_AutoScrollIsActive Ha engedélyezve van, a szöveg automatikusan görget, ha a felhasználó aktív régiót néz (például a görgetőpanel felső és alsó része, ha a függőleges görgetési sebesség nem nulla).
Pan_Speed_x Ha nullára nem egyenlő értékre van állítva, a vízszintes görgetés engedélyezve lesz. A negatív értékek a görgetés irányának változását jelentik: Balról jobbra és jobbról balra.
Pan_Speed_y Ha nullára nem egyenlő értékre van állítva, a függőleges görgetés engedélyezve lesz. A negatív értékek a görgetés irányának változását jelentik: felfelé és lefelé, illetve felfelé.
Pan_MinDistFromCenter Normalizált minimális távolság x-ben és y-ban a cél találatmezőjének közepétől (0, 0) a görgetésig. Így az értékeknek 0 (mindig görgetés) és 0,5 (görgetés nélkül) között kell lenniük.
UseSkimProofing Ha engedélyezve van, megakadályozza a hirtelen görgetési mozgásokat, ha gyorsan körülnéz. Ennek ellenére a görgetés kevésbé lesz rugalmas. A SkimProofUpdateSpeed értékkel hangolható.
SkimProofUpdateSpeed Minél alacsonyabb az érték, annál lassabb lesz a görgetés a legörgetés után. Ajánlott érték: 5.

Eye-supported pan and zoom setup in Unity

Figyelemalapú térbeli forgatás

Imagine egy 3D-s objektumot és azokat a részeket, amelyeket látni szeretne, varázslatosan feléd fordul - mintha a rendszer felolvasná az elméjét, és tudná, hogy az elemet feléd fordítja! Ez a figyelemalapú térbeli forgatások ötlete, amelyek lehetővé teszik a hologramok minden oldalának vizsgálatát anélkül, hogy felemeli az ujját. Ennek a viselkedésnek az engedélyezéséhez egyszerűen adja hozzá az OnLookAtRotateByEyeGaze szkriptet a GameObject elemhez egy ütköző összetevővel. Az alább felsorolt paraméterek módosításával korlátozhatja a hologram sebességét és irányát.

Ahogy el tudod képzelni, hogy ez a viselkedés folyamatosan aktív lehet, gyorsan zavaróvá válhat egy zsúfolt jelenetben. Ezért érdemes lehet ezt a viselkedést letiltva kezdeni, majd gyorsan engedélyezni a hangparancsok használatával. Alternatív megoldásként hozzáadtunk egy példát EyeTrackingDemo-03-Navigation (Assets/MRTK/Examples/Demos/EyeTracking/Scenes) a TargetMoveToCamera használatához, amelyhez kiválaszthat egy célzott célpontot, és az ön előtt repül - egyszerűen mondja ki a "Gyere hozzám" parancsot.

A közeli módba lépve az automatikus forgatási mód automatikusan engedélyezve lesz. Ebben a módban megfigyelheti, hogy minden oldalról egyszerűen hátrahajol, és megnézi, körbejárja, vagy eléri, hogy megragadja és forgassa a kezével. Amikor bezárja a célt (nézze meg & csippentsen, vagy mondja ki a "Send back" (Visszaküldés) parancsot), az visszatér az eredeti helyére, és távolról nem reagál Önre.

Paraméterek Description
SpeedX Vízszintes forgási sebesség.
Gyors Függőleges forgási sebesség.
InverseX A vízszintes forgatás irányának inverze.
Inverz A függőleges forgatás irányának inverze.
RotationThreshInDegrees Ha a "Gaze to Target" és a "Kamera to Target" közötti szög kisebb ennél az értéknél, semmit sem kell tennie. Ez azért van, hogy megakadályozza a kis jittery forgásokat.
MinRotX Minimális vízszintes forgatási szög. Ez a forgatás különböző irányokban való korlátozására vonatkozik.
MaxRotX Maximális vízszintes forgatási szög. Ez a forgatás különböző irányokban való korlátozására vonatkozik.
MinRotY Minimális függőleges elforgatási szög az x tengely körüli forgatás korlátozásához.
MaxRotY A függőleges forgási szög maximális száma az y tengely körüli forgatás korlátozásához.

Eye-supported 3D rotation setup in Unity

Összefoglalva, a fenti szkripteknek lehetővé kell tenniük, hogy elkezdhesse használni a szem tekintetét a különböző bemeneti navigációs feladatokhoz, például a szöveg görgetéséhez, a textúra nagyításához és pásztázásához, valamint a 3D hologramok vizsgálatának elforgatásához.

Lásd még


Vissza a "Eye Tracking in the MixedRealityToolkit" (Szemkövetés a MixedRealityToolkitben) című szakaszhoz