Door ogen ondersteunde navigatie in MRTK — MRTK2

MRTK

Stel dat u informatie op een lei leest en wanneer u het einde van de weergegeven tekst bereikt, schuift de tekst automatisch omhoog om meer inhoud weer te geven. Of u kunt vloeiend inzoomen waar u naar kijkt. De kaart past ook automatisch de inhoud aan om de interessante dingen binnen uw gezichtsveld te houden. Een andere interessante toepassing is het handsfree observeren van 3D-hologrammen door de delen van het hologram die u bekijkt automatisch naar voren te brengen. Dit zijn enkele voorbeelden die op deze pagina worden beschreven in de context van door ogen ondersteunde navigatie.

In de volgende beschrijvingen wordt ervan uitgegaan dat u al bekend bent met het instellen van oogtracering in uw MRTK-scène en met de basisbeginselen van het openen van oogtraceringsgegevens in MRTK Unity. De voorbeelden die hieronder worden besproken, maken allemaal deel uit van de EyeTrackingDemo-03-Navigation scène (Assets/MRTK/Examples/Demos/EyeTracking/Scenes/EyeTrackingDemo-03-Navigation).

Samenvatting: Automatisch schuiven van tekst, door ogen kijken ondersteund pannen en zoomen van een virtuele kaart, hands-free star-gerichte 3D-draaiing.

Automatisch schuiven

Met Automatisch schuiven kan de gebruiker door teksten schuiven zonder een vinger op te tillen. Ga gewoon door met lezen en de tekst schuift automatisch omhoog of omlaag, afhankelijk van waar de gebruiker naar op zoek is. U kunt beginnen met het voorbeeld in EyeTrackingDemo-03-Navigation (Assets/MRTK/Examples/Demos/EyeTracking/Scenes). In dit voorbeeld wordt een TextMesh-onderdeel gebruikt om flexibel nieuwe tekst te laden en op te maken. Als u automatisch schuiven wilt inschakelen, voegt u de volgende twee scripts toe aan het collider-onderdeel van het tekstvak:

ScrollRectTransf

Als u door een TextMesh of meer in het algemeen een RectTransform-onderdeel wilt schuiven, kunt u het script ScrollRectTransf gebruiken. Als u door een patroon wilt schuiven in plaats van door een RectTransform, gebruikt u ScrollTexture in plaats van ScrollRectTransf. In het volgende worden de parameters van ScrollRectTransf die beschikbaar zijn in de Unity-editor gedetailleerder uitgelegd:

Parameters Description
LimitPanning Als deze optie is ingeschakeld, wordt de schuifbare inhoud bij de grens gestopt.
RectTransfToNavigate Verwijzing naar de RectTransform om in te schuiven.
RefToViewport Verwijzing naar de bovenliggende RectTransform van de schuifbare inhoud om de juiste verschuiving en grens te bepalen.
AutoGazeScrollIsActive Als deze optie is ingeschakeld, schuift de tekst automatisch als de gebruiker naar een actief gebied kijkt (bijvoorbeeld het bovenste en onderste deel van het schuifvenster als de verticale schuifsnelheid niet nul is).
ScrollSpeed_x Als deze waarde is ingesteld op een waarde die niet gelijk is aan nul, wordt horizontaal schuiven ingeschakeld. Negatieve waarden betekenen een wijziging in de schuifrichting: van links naar rechts versus van rechts naar links.
ScrollSpeed_y Als dit is ingesteld op een waarde die niet gelijk is aan nul, wordt verticaal schuiven ingeschakeld. Negatieve waarden betekenen een wijziging in de schuifrichting: omhoog naar beneden versus omlaag naar omhoog.
MinDistFromCenterForAutoScroll Genormaliseerde minimale afstand in x en y van het midden van het treffervak van het doel (0, 0) om te schuiven. Waarden moeten dus liggen tussen 0 (altijd schuiven) en 0,5 (geen schuif).
UseSkimProofing Als deze optie is ingeschakeld, voorkomt u plotselinge schuifbewegingen bij snel rondkijken. Hierdoor voelt scrollen mogelijk minder snel aan. Deze kan worden afgestemd op de waarde SkimProofUpdateSpeed .
SkimProofUpdateSpeed Hoe lager de waarde, hoe langzamer het schuiven wordt na het skimmen. Aanbevolen waarde: 5.

Door het oog ondersteunde schuifinstellingen in Unity

EyeTrackingTarget

Door het onderdeel EyeTrackingTarget te koppelen, kunnen gebeurtenissen met betrekking tot het oog flexibel worden verwerkt. In het schuifvoorbeeld ziet u schuiftekst die wordt gestart wanneer de gebruiker het deelvenster bekijkt en stopt wanneer de gebruiker er weg kijkt . Door het oog ondersteunde schuifinstellingen in Unity: EyeTrackingTarget

Met blik ondersteund pannen en zoomen

Wie heeft nog niet eerder een virtuele kaart gebruikt om te zoeken naar hun huis of om volledig nieuwe plaatsen te verkennen? Oogtracering stelt u in staat om direct in de onderdelen te duiken waarin u geïnteresseerd bent en eenmaal ingezoomd, kunt u soepel de loop van een straat volgen om uw buurt te verkennen! Dit is niet alleen handig voor het verkennen van geografische kaarten, maar ook voor het bekijken van details in foto's, gegevensvisualisaties of zelfs live gestreamde medische beelden. U kunt deze mogelijkheid eenvoudig gebruiken in uw app. Voor inhoud die wordt weergegeven in een patroon (bijvoorbeeld een foto, gestreamde gegevens), voegt u het script PanZoomTexture toe. Voor een RectTransform gebruikt u PanZoomRectTransf. Door de mogelijkheid voor automatisch schuiven uit te breiden, kunnen we in feite zowel verticaal als horizontaal tegelijk schuiven en inhoud vergroten rond het huidige focuspunt van de gebruiker.

Parameters Description
LimitPanning Als deze optie is ingeschakeld, wordt de schuifbare inhoud bij de grens gestopt.
HandZoomEnabledOnStartup Hiermee wordt aangegeven of handbewegingen automatisch worden ingeschakeld om een zoombeweging uit te voeren. U kunt deze optie in eerste instantie uitschakelen om te voorkomen dat er per ongeluk zoomacties worden geactiveerd.
RendererOfTextureToBeNavigated Renderer waarnaar wordt verwezen van het patroon dat moet worden genavigeerd.
Zoom_Acceleration Zoomversnelling die de steilheid van de toewijzing van logistieke snelheidsfuncties definieert.
Zoom_SpeedMax Maximale zoomsnelheid.
Zoom_MinScale Minimale schaal van het patroon voor inzoomen, bijvoorbeeld 0,5f (de helft van de oorspronkelijke grootte).
Zoom_MaxScale Maximale schaal van het patroon voor uitzoomen, bijvoorbeeld 1f (de oorspronkelijke grootte) of 2,0f (het dubbele van de oorspronkelijke grootte).
Zoom_TimeInSecToZoom Zoomen met een time-out: zodra deze is geactiveerd, wordt in-/uitzoomen uitgevoerd voor de opgegeven hoeveelheid tijd in seconden.
Zoom_Gesture Type handbeweging dat moet worden gebruikt om in/uit te zoomen.
--- ---
Pan_AutoScrollIsActive Als deze optie is ingeschakeld, schuift de tekst automatisch als de gebruiker naar een actief gebied kijkt (bijvoorbeeld het bovenste en onderste deel van het schuifvenster als de verticale schuifsnelheid niet nul is).
Pan_Speed_x Als deze waarde is ingesteld op een waarde die niet gelijk is aan nul, wordt horizontaal schuiven ingeschakeld. Negatieve waarden betekenen een wijziging in de schuifrichting: van links naar rechts versus van rechts naar links.
Pan_Speed_y Als dit is ingesteld op een waarde die niet gelijk is aan nul, wordt verticaal schuiven ingeschakeld. Negatieve waarden betekenen een wijziging in de schuifrichting: omhoog naar beneden versus omlaag naar omhoog.
Pan_MinDistFromCenter Genormaliseerde minimale afstand in x en y van het midden van het treffervak van het doel (0, 0) om te schuiven. Waarden moeten dus liggen tussen 0 (altijd schuiven) en 0,5 (geen schuif).
UseSkimProofing Als deze optie is ingeschakeld, voorkomt u plotselinge schuifbewegingen bij snel rondkijken. Hierdoor voelt scrollen mogelijk minder snel aan. Deze kan worden afgestemd op de waarde SkimProofUpdateSpeed .
SkimProofUpdateSpeed Hoe lager de waarde, hoe langzamer het schuiven wordt na het skimmen. Aanbevolen waarde: 5.

Instellingen voor pannen en zoomen met oog ondersteund in Unity

Op aandacht gebaseerde 3D-rotatie

Stel u voor dat u naar een 3D-object kijkt en de onderdelen die u meer wilt zien, zich op magische wijze naar u toe keren - alsof het systeem uw gedachten zou lezen en weet dat u het item naar u toe moet draaien! Dat is het idee voor op aandacht gebaseerde 3D-rotaties waarmee u alle kanten van een hologram kunt onderzoeken zonder een vinger op te tillen. Als u dit gedrag wilt inschakelen, voegt u het script OnLookAtRotateByEyeGaze toe aan het deel van uw GameObject met een Collider-onderdeel . U kunt verschillende parameters die hieronder worden vermeld aanpassen om te beperken hoe snel en in welke richting het hologram wordt uitgevoerd.

Zoals u zich kunt voorstellen, kan het hebben van dit gedrag te allen tijde behoorlijk afleidend worden in een drukke scène. Daarom wilt u mogelijk beginnen met dit gedrag uitgeschakeld en vervolgens snel inschakelen met behulp van spraakopdrachten. We hebben ook een voorbeeld toegevoegd in EyeTrackingDemo-03-Navigation (Assets/MRTK/Examples/Demos/EyeTracking/Scenes) om TargetMoveToCamera te gebruiken, waarvoor u een gericht doel kunt selecteren en het voor u in de gaten wordt geslagen. Zeg gewoon 'Kom naar mij'.

Eenmaal in de bijna-modus wordt de modus voor automatisch draaien automatisch ingeschakeld. In die modus kun je het van alle kanten observeren, ofwel gewoon achterover leunend en ernaar kijken, er omheen lopen of ernaartoe reiken om het te pakken en te draaien met je hand. Wanneer u het doel negeert (kijk & knijpen of 'Terugsturen' zeggen), keert het terug naar de oorspronkelijke locatie en reageert het van veraf niet meer op u.

Parameters Description
SpeedX Horizontale draaisnelheid.
Snelle Verticale draaisnelheid.
InverseX De horizontale draairichting omkeren.
Inversey De verticale draairichting omkeren.
RotationThreshInDegrees Als de hoek tussen 'Staren naar doel' en 'Camera naar doel' kleiner is dan deze waarde, doet u niets. Dit is om kleine jittery rotaties te voorkomen..
MinRotX Minimale horizontale draaihoek. Dit is om de rotatie in verschillende richtingen te beperken.
MaxRotX Maximale horizontale draaihoek. Dit is om de rotatie in verschillende richtingen te beperken.
MinRoty Minimale verticale draaihoek om de rotatie rond de x-as te beperken.
MaxRotY Maximale verticale draaihoek om de rotatie rond de y-as te beperken.

Door het oog ondersteunde instelling voor 3D-rotatie in Unity

Samengevat moeten de bovenstaande scripts u in staat stellen om ogen staren te gebruiken voor verschillende invoernavigatietaken, zoals het schuiven van tekst, zoomen en pannen, en het roteren van 3D-hologrammen.

Zie ook


Terug naar 'Oogtracering in de MixedRealityToolkit'