Navigace v MRTK s podporou očí


Zpět na "sledování očí v MixedRealityToolkit"

MRTK

Imagine čtete informace na slat a když se dostanete ke konci zobrazeného textu, text se automaticky posouvá a odhalí další obsah. Nebo můžete plynule přiblížit, kde se díváte. Mapa také automaticky upraví obsah tak, aby byly zajímavé věci v rámci vašeho pole zobrazení. Další zajímavou aplikací je bezplatná připomínka prostorových hologramů tím, že automaticky přineseme části hologramu, na které se díváte dopředu. Jedná se o některé příklady, které jsou popsány na této stránce v kontextu oblasti navigace s podporou očí.

Následující popisy předpokládají, že už jste obeznámeni s tím, jak nastavit sledování očí v MRTK scéně a základní informace o přístupu k datům sledování očí v Unity MRTK. Příklady popsané v následujících částech jsou všechny části EyeTrackingDemo-03-Navigation (assets/MRTK/Examples/demos/EyeTracking/scény/EyeTrackingDemo-03-navigace) scény.

Shrnutí: Automatické rolování textu, očí – pohledu – podporované posouvání a přiblížení virtuální mapy, bez obsluhy s pohledu orientovaným otočením

Automatické posouvání

Automatický posun umožňuje uživateli procházet texty bez zvedání prstu. Jednoduše pokračujte v čtení a text se automaticky posouvá nahoru nebo dolů v závislosti na tom, kde uživatel hledá. Můžete začít z příkladu uvedeného v části EyeTrackingDemo-03-Navigation (assety/MRTK/příklady/ukázky/EyeTracking/scény). Tento příklad používá komponentu TextMesh k umožnění flexibilního načítání a formátování nového textu. Pokud chcete povolit automatické posouvání, jednoduše do komponenty kolidujícího pole zadejte následující dva skripty:

ScrollRectTransf

Pokud chcete Procházet TextMesh nebo obecněji pomocí přidruženého recttransform komponenty, můžete použít skript ScrollRectTransf . Pokud chcete procházet texturou místo přidruženého recttransform, místo ScrollRectTransfpoužijte ScrollTexture . V následující části jsou podrobněji vysvětleny parametry ScrollRectTransf , které jsou k dispozici v editoru Unity:

Parametry Description
LimitPanning Pokud je povoleno, zastaví posuvný obsah na hranici.
RectTransfToNavigate Odkaz na přidruženého recttransform pro posunutí
RefToViewport Odkaz na nadřazený přidruženého recttransform rolovacího obsahu pro určení správného posunu a ohraničení.
AutoGazeScrollIsActive Pokud je tato možnost povolená, text se automaticky posune, pokud se uživatel na aktivní oblasti (například horní a dolní část posuvníku) zobrazí, pokud není svislá rychlost posunutí nulová.
ScrollSpeed_x Pokud je hodnota nastavena na hodnotu nerovná se nule, bude povolen vodorovný posuvník. Záporné hodnoty znamenají změnu směru posouvání: zleva doprava vs. zprava doleva.
ScrollSpeed_y Pokud je hodnota nastavena na hodnotu nerovná se nule, bude povolen svislý posuvník. Záporné hodnoty znamenají změnu ve směru posunu: až dolů oproti.
MinDistFromCenterForAutoScroll Normalizovaná minimální vzdálenost v x a y od středu pole pro zobrazení cíle (0, 0) pro posun. Proto hodnoty musí být v rozsahu 0 (vždy Scroll) a 0,5 (bez posouvání).
UseSkimProofing Pokud je tato možnost povolená, zabrání se tak náhlému přesunu posuvníku. Díky tomu může posouvání trvat i méně reagovat. Dá se vyladit s hodnotou SkimProofUpdateSpeed .
SkimProofUpdateSpeed Čím nižší hodnota, tím pomalejší bude posouvání po rozblesku. Doporučená hodnota: 5.

Oči – podporované nastavení posouvání v Unity

EyeTrackingTarget

Připojení komponenty EyeTrackingTarget umožňuje flexibilní zpracování událostí souvisejících s pohledu. Ukázka posunutí znázorňuje posouvaný text, který se spustí, když uživatel prohlíží na panelu a zastaví se, když uživatel z něhovyhledává . Oči – podporované nastavení posouvání v Unity: EyeTrackingTarget

Pohledu – podporuje posun a přiblížení

Kdo nepoužili virtuální mapu předtím, než začnete hledat svou domovskou stránku nebo prozkoumat zcela nová místa? Sledování očí vám umožní přímo se podrobně do přesně těch částí, které vás zajímají, a jakmile se přiblíží, můžete plynule postupovat podle toho, jak se v průběhu ulice podíváte do okolního prostředí. To se nehodí jenom při prozkoumávání geografických map, ale také k rezervování podrobností na fotografiích, vizualizacích dat nebo dokonce živých proudových snímků. Pro použití této funkce v aplikaci je to jednoduché. Pro obsah vykreslený jako Textura (např. fotografie, streamovaná data) stačí přidat skript PanZoomTexture . Pro přidruženého recttransform použijte PanZoomRectTransf. Díky rozšíření možnosti automatického posouvání jsme v podstatě popnuli vertikálně i vodorovně současně a rozšíříte obsah přímo kolem aktuálního bodu výběru uživatele.

Parametry Description
LimitPanning Pokud je povoleno, zastaví posuvný obsah na hranici.
HandZoomEnabledOnStartup Určuje, zda jsou automaticky povolena gesta přiblížení, aby bylo možné provést gesto zvětšení. Možná ho budete chtít nejdřív zakázat, abyste se vyhnuli nechtěné aktivaci akcí lupy.
RendererOfTextureToBeNavigated Odkazovaná zobrazovací jednotka textury, na kterou se má přejít
Zoom_Acceleration Zrychlení přiblížení definující steepness mapování funkce logistické rychlosti.
Zoom_SpeedMax Maximální rychlost přiblížení
Zoom_MinScale Minimální škála textury pro přiblížení – např. 0,5 f (polovina původní velikosti)
Zoom_MaxScale Maximální škála textury pro přiblížení – např. 1f (původní velikost) nebo 2.0 f (má dvojnásobek původní velikost).
Zoom_TimeInSecToZoom Časované přiblížení: po aktivaci se v sekundách provede přiblížení/oddálení na dané množství času.
Zoom_Gesture Typ ručního gesta, který se použije k přiblížení nebo oddálení
--- ---
Pan_AutoScrollIsActive Pokud je tato možnost povolená, text se automaticky posune, pokud se uživatel na aktivní oblasti (například horní a dolní část posuvníku) zobrazí, pokud není svislá rychlost posunutí nulová.
Pan_Speed_x Pokud je hodnota nastavena na hodnotu nerovná se nule, bude povolen vodorovný posuvník. Záporné hodnoty znamenají změnu směru posouvání: zleva doprava vs. zprava doleva.
Pan_Speed_y Pokud je hodnota nastavena na hodnotu nerovná se nule, bude povolen svislý posuvník. Záporné hodnoty znamenají změnu ve směru posunu: až dolů oproti.
Pan_MinDistFromCenter Normalizovaná minimální vzdálenost v x a y od středu pole pro zobrazení cíle (0, 0) pro posun. Proto hodnoty musí být v rozsahu 0 (vždy Scroll) a 0,5 (bez posouvání).
UseSkimProofing Pokud je tato možnost povolená, zabrání se tak náhlému přesunu posuvníku. Díky tomu může posouvání trvat i méně reagovat. Dá se vyladit s hodnotou SkimProofUpdateSpeed .
SkimProofUpdateSpeed Čím nižší hodnota, tím pomalejší bude posouvání po rozblesku. Doporučená hodnota: 5.

Nastavení posunu a lupy podporované v Unity

3D otočení na základě pozornosti

Imagine, že se díváte na 3d objekt a části, které chcete zobrazit s větším příhodněm, zapněte si ho – jako by systém dokázal si přečíst svůj názor a upozornit, že se vám tato položka bude zobrazovat. To je nápad pro 3D otočení na základě pozornosti, které vám umožní prozkoumat celou stranu hologramu bez zvedání prstů. Pokud chcete toto chování povolit, jednoduše do části GameObject přidejte skript OnLookAtRotateByEyeGaze se součástí kolidující součásti. Můžete upravit několik parametrů, které jsou uvedeny níže, abyste omezili rychlost a rychlost, jakou se má hologram zapnout.

Jak si představte, že toto chování bude aktivní ve všech časech, může být v zaplnění scény poměrně rušivé. To je důvod, proč můžete chtít začít s tímto chováním zakázáno a pak ho rychle povolit pomocí hlasových příkazů. Alternativně jsme přidali příklad EyeTrackingDemo-03-Navigation (assety/MRTK/příklady/ukázky/EyeTracking/scény), abyste mohli používat EyeTrackingDemo-03-Navigation , pro které můžete vybrat zaměřený cíl a zároveň ho letí před vámi – jednoduše řečeno.

V blízkém režimu je automaticky povolen režim automatické rotace. V tomto režimu je můžete sledovat ze všech stran buď pouhým vyhledáním zpět a prohlížením, procházením nebo pomocným a otočením ruky. Po zavření cíle (hledání & gesto roztažení prstů nebo vyslovení &) se vrátí do původního umístění a přestane se chovat od Afarština.

Parametry Description
SpeedX Rychlost vodorovného otočení.
Okamžité Rychlost svislého otočení.
InverseX Chcete-li invertovat horizontální směr otočení.
Invertované Pro invertování svislého směru otočení.
RotationThreshInDegrees Pokud je úhel mezi ' pohledu k cíli ' a ' kamera k cíli ' menší než tato hodnota, neprovádějte žádnou akci. K tomu je potřeba zabránit malým kolísání.
MinRotX Minimální úhel vodorovného otočení. To omezí otočení v různých směrech.
MaxRotX Maximální úhel vodorovného otočení. To omezí otočení v různých směrech.
MinRotY Minimální úhel svislého otočení pro omezení otočení kolem osy x.
MaxRotY Maximální úhel svislého otočení pro omezení otočení kolem osy y.

Nastavení 3D rotace v Unity s podporou očí

Výše uvedené skripty by vám měly umožnit začít používat oční pohledu pro různé vstupní navigační úlohy, jako jsou texty pro posouvání, přibližování a posouvání textur, a také pro otočení prozkoumání prostorových hologramů.

Viz také