Delen via


Door het oog ondersteunde navigatie in MRTK — MRTK2

MRTK

Stel dat u informatie op een leisteen 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 items binnen uw weergaveveld 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 het oog 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 in het volgende 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 sms-berichten schuiven zonder een vinger op te tillen. Gewoon doorgaan met lezen en de tekst zal automatisch omhoog of omlaag schuiven, afhankelijk van waar de gebruiker naar kijkt. 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 het flexibel laden en opmaken van nieuwe tekst mogelijk te maken. Als u automatisch schuiven wilt inschakelen, voegt u de volgende twee scripts toe aan uw 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 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 Omschrijving
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 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: Van omhoog naar beneden versus omlaag naar omhoog.
MinDistFromCenterForAutoScroll Genormaliseerde minimale afstand in x en y van het midden van het doelvak (0, 0) om te schuiven. Waarden moeten dus liggen tussen 0 (altijd schuiven) en 0,5 (geen scroll).
UseSkimProofing Als dit is ingeschakeld, voorkomt dit plotselinge schuifbewegingen wanneer u snel rondklikken. Hierdoor voelt scrollen mogelijk minder responsief aan. Deze kan worden afgestemd op de waarde SkimProofUpdateSpeed .
SkimProofUpdateSpeed Hoe lager de waarde, hoe langzamer het schuiven wordt na het afvlammen. Aanbevolen waarde: 5.

Instellingen voor door ogen ondersteunde schuifbalken in Unity

EyeTrackingTarget

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

Met staren 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 te duiken in precies de onderdelen waarin u geïnteresseerd bent en zodra u inzoomt, 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 textuur (bijvoorbeeld een foto, gestreamde gegevens), voegt u het script PanZoomTexture toe. Voor een RectTransform gebruikt u PanZoomRectTransf. Door de functie Automatisch schuiven uit te breiden, kunnen we in feite zowel verticaal als horizontaal schuiven en inhoud vergroten rond het huidige focuspunt van de gebruiker.

Parameters Omschrijving
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 zoomacties per ongeluk worden geactiveerd.
RendererOfTextureToBeNavigated Renderer waarnaar wordt verwezen van het patroon dat moet worden genavigeerd.
Zoom_Acceleration Zoomversnelling definieert de steilheid van toewijzing van logistieke snelheidsfuncties.
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 op tijd: zodra deze is geactiveerd, wordt een in-/uitzoomen uitgevoerd gedurende 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 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: Van omhoog naar beneden versus omlaag naar omhoog.
Pan_MinDistFromCenter Genormaliseerde minimale afstand in x en y van het midden van het doelvak (0, 0) om te schuiven. Waarden moeten dus liggen tussen 0 (altijd schuiven) en 0,5 (geen scroll).
UseSkimProofing Als dit is ingeschakeld, voorkomt dit plotselinge schuifbewegingen wanneer u snel rondklikken. Hierdoor voelt scrollen mogelijk minder responsief aan. Deze kan worden afgestemd op de waarde SkimProofUpdateSpeed .
SkimProofUpdateSpeed Hoe lager de waarde, hoe langzamer het schuiven wordt na het afvlammen. Aanbevolen waarde: 5.

Instellingen voor pannen en zoomen met ogen in Unity

Op aandacht gebaseerde 3D-rotatie

Stel u voor dat u naar een 3D-object kijkt en de onderdelen die u wilt zien, op magische wijze naar u toe draaien - alsof het systeem uw geest zou lezen en weet dat het item naar u toe moet draaien! Dat is het idee voor op aandacht gebaseerde 3D-rotaties waarmee u alle zijden 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 gedraaid.

Zoals u zich kunt voorstellen, kan het feit dat dit gedrag te allen tijde actief is, snel behoorlijk afleidend worden in een drukke scène. Daarom kunt u beginnen met dit gedrag uitgeschakeld en het 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 uitvliegt. Zeg gewoon 'Kom naar mij'.

Zodra de modus Bijna is ingeschakeld, wordt de modus voor automatisch draaien automatisch ingeschakeld. In die modus kun je het van alle kanten bekijken, gewoon naar achteren leunen en ernaar kijken, er omheen lopen of het uitstrekken om het met je hand te pakken en te draaien. Wanneer u het doel negeert (kijk & knijp of zeg 'Terugsturen'), keert het terug naar de oorspronkelijke locatie en reageert het niet meer op u van een afstand.

Parameters Omschrijving
SpeedX Horizontale draaisnelheid.
Spoedig Verticale draaisnelheid.
InverseX De horizontale draairichting omkeren.
Inversey De verticale draairichting omkeren.
RotationThreshInDegrees Als de hoek tussen 'Gaze to Target' en 'Camera to Target' 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 3D-rotatie-instelling in Unity

Kortom, de bovenstaande scripts moeten u in staat stellen om aan de slag te gaan met oog staren voor verschillende invoernavigatietaken, zoals het schuiven van teksten, zoomen en pannen van patronen en het roteren van het onderzoeken van 3D-hologrammen.

Zie ook


Terug naar "Eye tracking in the MixedRealityToolkit"