Door ogen ondersteunde navigatie in MRTK

MRTK

Imagine u informatie leest op een lei en wanneer u het einde van de weergegeven tekst bereikt, schuift de tekst automatisch omhoog om meer inhoud weer te geven. U kunt ook vloeiend inzoomen waar u naar kijkt. De kaart past ook automatisch de inhoud aan om de interesse in uw weergaveveld te behouden. Een andere interessante toepassing is de handsfree observatie van 3D-hologrammen door automatisch de onderdelen van het hologram te brengen die u aan de voorzijde bekijkt. Dit zijn enkele van de voorbeelden die op deze pagina worden beschreven in de context van navigatie die door het oog wordt ondersteund.

In de volgende beschrijvingen wordt ervan uitgegaan dat u al bekend bent met het instellen van oogtracking in uw MRTK-scène en met de basisbeginselen van het openen van oogtrackinggegevens in MRTK Unity. De voorbeelden die in het volgende worden besproken, maken 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 ondersteunde pan en zoom van een virtuele kaart, handsfree 3D-draaiing.

Automatisch schuiven

Met automatisch schuiven kan de gebruiker door teksten schuiven zonder een vinger op te heffen. Ga gewoon verder met lezen en de tekst schuift automatisch omhoog of omlaag, afhankelijk van waar de gebruiker zoekt. 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 nieuwe tekst flexibel te laden en op te maken. Als u automatisch schuiven wilt inschakelen, voegt u de volgende twee scripts toe aan uw collideronderdeel van het tekstvak:

ScrollRectTransf

Als u door een TextMesh of meer algemeen een RectTransform-onderdeel wilt schuiven, kunt u het ScrollRectTransf-script 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 Beschrijving
LimitPanning Als deze optie is ingeschakeld, stopt u de schuifbare inhoud op de grens.
RectTransfToNavigate Verwijzing naar het RectTransform om in te schuiven.
RefToViewport Verwijzing naar het 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 schuifpaneel als de verticale schuifsnelheid niet nul is).
ScrollSpeed_x Als deze optie is ingesteld op een waarde die niet gelijk is aan nul, wordt horizontaal schuiven ingeschakeld. Negatieve waarden betekenen een wijziging in schuifrichting: van links naar rechts versus van rechts naar links.
ScrollSpeed_y Als deze optie is ingesteld op een waarde die niet gelijk is aan nul, wordt verticaal schuiven ingeschakeld. Negatieve waarden betekenen een wijziging in schuifrichting: omhoog naar beneden versus omlaag tot omhoog.
MinDistFromCenterForAutoScroll Genormaliseerde minimale afstand in x en y van het midden van het drukvak van het doel (0, 0) om te schuiven. Waarden moeten dus variëren tussen 0 (altijd schuiven) en 0,5 (geen schuif).
UseSkimProofing Als deze optie is ingeschakeld, voorkomt u plotselinge scrollbewegingen wanneer u snel rondklikken. Hierdoor kan het schuiven minder responsief zijn. Het kan worden afgestemd met de SkimProofUpdateSpeed-waarde .
SkimProofUpdateSpeed Hoe lager de waarde, hoe langzamer het schuiven na het schuiven zal versnellen. Aanbevolen waarde: 5.

Eye-supported scroll setup in Unity

EyeTrackingTarget

Door het EyeTrackingTarget-onderdeel te koppelen, kunnen oogklikken gerelateerde gebeurtenissen flexibel worden verwerkt. Het voorbeeld van het scrollen toont het schuiven van tekst die begint wanneer de gebruiker naar het deelvenster kijkt en stopt wanneer de gebruiker wegklikken . Eye-supported scroll setup in Unity: EyeTrackingTarget

Pannen en zoomen die worden ondersteund

Wie heeft nog geen virtuele kaart gebruikt om naar hun huis te zoeken of om volledig nieuwe plaatsen te verkennen? Met oogtracering kunt u direct inzoomen op de delen waarin u geïnteresseerd bent en eenmaal ingezoomd, kunt u de loop van een straat soepel 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 gestreamde medische beelden. Als u deze mogelijkheid in uw app wilt gebruiken, is dit eenvoudig. Voor inhoud die wordt weergegeven in een bitmappatroon (bijvoorbeeld een foto, gestreamde gegevens), voegt u het PanZoomTexture-script toe. Gebruik PanZoomRectTransf voor een RectTransform. Door de functie Automatisch schuiven uit te breiden, kunnen we in feite zowel verticaal als horizontaal tegelijk schuiven en inhoud direct rond het huidige focuspunt van de gebruiker vergroten.

Parameters Beschrijving
LimitPanning Als deze optie is ingeschakeld, stopt u de schuifbare inhoud op de grens.
HandZoomEnabledOnStartup Hiermee wordt aangegeven of handbewegingen automatisch zijn ingeschakeld om een zoombeweging uit te voeren. Misschien wilt u deze in eerste instantie uitschakelen om te voorkomen dat per ongeluk zoomacties worden geactiveerd.
RendererOfTextureToBeNavigated Verwijst naar renderer van het patroon dat moet worden genavigeerd.
Zoom_Acceleration Zoomversnelling die de steilheid van logistieke snelheidsfunctietoewijzing 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 (dubbel de oorspronkelijke grootte).
Zoom_TimeInSecToZoom Getimede zoom: zodra deze is geactiveerd, wordt een in-/uitzoom 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 schuifpaneel als de verticale schuifsnelheid niet nul is).
Pan_Speed_x Als deze optie is ingesteld op een waarde die niet gelijk is aan nul, wordt horizontaal schuiven ingeschakeld. Negatieve waarden betekenen een wijziging in schuifrichting: van links naar rechts versus van rechts naar links.
Pan_Speed_y Als deze optie is ingesteld op een waarde die niet gelijk is aan nul, wordt verticaal schuiven ingeschakeld. Negatieve waarden betekenen een wijziging in schuifrichting: omhoog naar beneden versus omlaag tot omhoog.
Pan_MinDistFromCenter Genormaliseerde minimale afstand in x en y van het midden van het drukvak van het doel (0, 0) om te schuiven. Waarden moeten dus variëren tussen 0 (altijd schuiven) en 0,5 (geen schuif).
UseSkimProofing Als deze optie is ingeschakeld, voorkomt u plotselinge scrollbewegingen wanneer u snel rondklikken. Hierdoor kan het schuiven minder responsief zijn. Het kan worden afgestemd met de SkimProofUpdateSpeed-waarde .
SkimProofUpdateSpeed Hoe lager de waarde, hoe langzamer het schuiven na het schuiven zal versnellen. Aanbevolen waarde: 5.

Eye-supported pan and zoom setup in Unity

Op aandacht gebaseerde 3D-draaiing

Imagine kijken naar een 3D-object en de onderdelen die u dichter bij u wilt zien, keren zich naar u toe, 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 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 aanpassen die hieronder worden vermeld om te beperken hoe snel en in welke richting het hologram wordt omgedraaid.

Zoals u zich kunt voorstellen, kan het feit dat dit gedrag altijd actief is, snel leidend worden in een drukke scène. Daarom wilt u misschien beginnen met dit gedrag uitgeschakeld en vervolgens snel inschakelen met behulp van spraakopdrachten. U kunt ook een voorbeeld toevoegen in EyeTrackingDemo-03-Navigation (Assets/MRTK/Examples/Demos/EyeTracking/Scènes) om TargetMoveToCamera te gebruiken waarvoor u een gericht doel kunt selecteren en het vliegt voor u - gewoon 'Kom naar mij'.

Eenmaal in de nabije modus wordt de modus voor automatisch draaien ingeschakeld. In die modus kunt u het van alle kanten bekijken door gewoon terug te leunen en ernaar te kijken, er rond te lopen of om het met uw hand te pakken en te draaien. Wanneer u het doel negeert (knijp of &"Terugsturen"), keert deze terug naar de oorspronkelijke locatie en reageert u niet meer van ver.

Parameters Beschrijving
SpeedX Horizontale draaisnelheid.
Snelle 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 draaiing in verschillende richtingen te beperken.
MaxRotX Maximale horizontale draaihoek. Dit is om de draaiing 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.

Eye-supported 3D rotation setup in Unity

Kortom, met de bovenstaande scripts kunt u aan de slag gaan met het gebruik van oogklikken voor verschillende invoernavigatietaken, zoals het schuiven van teksten, zoomen en pannen van patronen en het draaien van 3D-hologrammen.

Zie ook


Terug naar 'Eye tracking in the MixedRealityToolkit'