Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Imaginez que vous lisez des informations sur une ardoise et que lorsque vous atteignez la fin du texte affiché, le texte défile automatiquement vers le haut pour révéler plus de contenu. Vous pouvez également effectuer un zoom fluide à l’endroit où vous regardez. La carte ajuste également automatiquement le contenu pour conserver les éléments intéressants dans votre champ de vue. Une autre application intéressante est l’observation mains libres des hologrammes 3D en plaçant automatiquement les parties de l’hologramme que vous regardez à l’avant. Voici quelques-uns des exemples décrits sur cette page dans le contexte de la navigation prise en charge par les yeux.
Les descriptions suivantes supposent que vous êtes déjà familiarisé avec la configuration du suivi oculaire dans votre scène MRTK et avec les principes de base de l’accès aux données de suivi oculaire dans MRTK Unity.
Les exemples présentés ci-dessous font tous partie de la EyeTrackingDemo-03-Navigation scène (Assets/MRTK/Examples/Demos/EyeTracking/Scenes/EyeTrackingDemo-03-Navigation).
Résumé: Défilement automatique du texte, panoramique pris en charge par le regard et zoom d’une carte virtuelle, rotation 3D dirigée par le regard sans mains.
Défilement automatique
Le défilement automatique permet à l’utilisateur de faire défiler les textes sans lever le doigt.
Poursuivez simplement la lecture et le texte défile automatiquement vers le haut ou vers le bas en fonction de l’emplacement de recherche de l’utilisateur.
Vous pouvez commencer à partir de l’exemple fourni dans EyeTrackingDemo-03-Navigation (Assets/MRTK/Examples/Demos/EyeTracking/Scenes).
Cet exemple utilise un composant TextMesh pour permettre le chargement et la mise en forme flexibles du nouveau texte.
Pour activer le défilement automatique, ajoutez simplement les deux scripts suivants à votre composant de collisionneur de la zone de texte :
ScrollRectTransf
Pour faire défiler un composant TextMesh ou plus généralement un composant RectTransform , vous pouvez utiliser le script ScrollRectTransf . Si vous souhaitez faire défiler une texture au lieu d’un RectTransform, utilisez ScrollTexture au lieu de ScrollRectTransf. Dans ce qui suit, les paramètres de ScrollRectTransf qui sont disponibles dans l’éditeur Unity sont expliqués plus en détail :
| Paramètres | Description |
|---|---|
| LimitPanning | Si cette option est activée, arrête le contenu défilant à sa limite. |
| RectTransfToNavigate | Référence à RectTransform à faire défiler. |
| RefToViewport | Référence au rectTransform parent du contenu à défilement pour déterminer le décalage et la limite corrects. |
| AutoGazeScrollIsActive | S’il est activé, le texte défile automatiquement si l’utilisateur examine une région active (par exemple, les parties supérieure et inférieure de votre panneau de défilement si la vitesse de défilement verticale n’est pas égale à zéro). |
| ScrollSpeed_x | Si la valeur est égale à zéro, le défilement horizontal est activé. Les valeurs négatives signifient une modification du sens du défilement : de gauche à droite ou de droite à gauche. |
| ScrollSpeed_y | Si la valeur est égale à zéro, le défilement vertical est activé. Les valeurs négatives signifient une modification de la direction du défilement : haut vers le bas ou vers le bas vers le haut. |
| MinDistFromCenterForAutoScroll | Distance minimale normalisée en x et y du centre de la zone d’accès de la cible (0, 0) pour faire défiler. Par conséquent, les valeurs doivent être comprises entre 0 (toujours défilement) et 0,5 (aucun défilement). |
| UtiliserSkimProofing | Si cette option est activée, elle empêche les mouvements de défilement soudains lorsque vous regardez rapidement autour de vous. Cela peut cependant rendre le défilement moins réactif. Il peut être réglé avec la valeur SkimProofUpdateSpeed . |
| SkimProofUpdateSpeed | Plus la valeur est faible, plus le défilement s’accélère après l’écrémage. Valeur recommandée : 5. |
EyeTrackingTarget
L’attachement du composant EyeTrackingTarget permet de gérer de manière flexible les événements liés aux yeux.
L’exemple de défilement illustre le texte de défilement qui commence lorsque l’utilisateur examine le panneau et s’arrête lorsque l’utilisateur le détoure .
Panoramique et zoom pris en charge par le regard
Qui n’a pas encore utilisé de carte virtuelle pour rechercher sa maison ou explorer de nouveaux endroits ? Le suivi oculaire vous permet de plonger directement dans les parties qui vous intéressent et une fois zoomé, vous pouvez suivre en douceur le cours d’une rue pour explorer votre quartier ! Cela n’est pas seulement utile pour explorer des cartes géographiques, mais aussi pour consulter des détails dans des photographies, des visualisations de données ou même des images médicales diffusées en direct. Il est facile d’utiliser cette fonctionnalité dans votre application . Pour le contenu rendu dans une texture (par exemple, une photo, des données diffusées en continu), ajoutez simplement le script PanZoomTexture . Pour un RectTransform , utilisez PanZoomRectTransf. En étendant la fonctionnalité de défilement automatique , nous permettons essentiellement de faire défiler à la fois verticalement et horizontalement en même temps et d’agrandir le contenu autour du point de focus actuel de l’utilisateur.
| Paramètres | Description |
|---|---|
| LimitPanning | Si cette option est activée, arrête le contenu défilant à sa limite. |
| HandZoomEnabledOnStartup | Indique si les mouvements de la main sont automatiquement activés pour effectuer un mouvement de zoom. Vous pouvez d’abord le désactiver pour éviter de déclencher accidentellement des actions de zoom. |
| RendererOfTextureToBeNavigated | Renderer référencé de la texture à parcourir. |
| Zoom_Acceleration | Accélération du zoom définissant la pente du mappage de la fonction de vitesse logistique. |
| Zoom_SpeedMax | Vitesse de zoom maximale. |
| Zoom_MinScale | Échelle minimale de la texture pour le zoom avant , par exemple, 0,5f (la moitié de la taille d’origine). |
| Zoom_MaxScale | Échelle maximale de la texture pour le zoom arrière , par exemple, 1f (la taille d’origine) ou 2.0f (le double de la taille d’origine). |
| Zoom_TimeInSecToZoom | Zoom chronoté : une fois déclenché, un zoom avant/arrière est effectué pour la durée donnée en secondes. |
| Zoom_Gesture | Type de mouvement de la main à utiliser pour effectuer un zoom avant/arrière. |
| --- | --- |
| Pan_AutoScrollIsActive | S’il est activé, le texte défile automatiquement si l’utilisateur examine une région active (par exemple, les parties supérieure et inférieure de votre panneau de défilement si la vitesse de défilement verticale n’est pas égale à zéro). |
| Pan_Speed_x | Si la valeur est égale à zéro, le défilement horizontal est activé. Les valeurs négatives signifient une modification du sens du défilement : de gauche à droite ou de droite à gauche. |
| Pan_Speed_y | Si la valeur est égale à zéro, le défilement vertical est activé. Les valeurs négatives signifient une modification de la direction du défilement : haut vers le bas ou vers le bas vers le haut. |
| Pan_MinDistFromCenter | Distance minimale normalisée en x et y du centre de la zone d’accès de la cible (0, 0) pour faire défiler. Par conséquent, les valeurs doivent être comprises entre 0 (toujours défilement) et 0,5 (aucun défilement). |
| UtiliserSkimProofing | Si cette option est activée, elle empêche les mouvements de défilement soudains lorsque vous regardez rapidement autour de vous. Cela peut cependant rendre le défilement moins réactif. Il peut être réglé avec la valeur SkimProofUpdateSpeed . |
| SkimProofUpdateSpeed | Plus la valeur est faible, plus le défilement s’accélère après l’écrémage. Valeur recommandée : 5. |
Rotation 3D basée sur l’attention
Imaginez en regardant un objet 3D et les parties que vous voulez voir de plus près se tournent vers vous de façon magique - comme si le système lisait votre esprit et savoir pour tourner l’élément vers vous ! C’est l’idée des rotations 3D basées sur l’attention qui vous permettent d’examiner tous les côtés d’un hologramme sans lever un doigt. Pour activer ce comportement, ajoutez simplement le script OnLookAtRotateByEyeGaze à la partie de votre GameObject avec un composant Collider . Vous pouvez ajuster plusieurs paramètres répertoriés ci-dessous pour limiter la vitesse et la direction de l’hologramme.
Comme vous pouvez l’imaginer, avoir ce comportement actif en tout temps peut rapidement devenir assez distrayant dans une scène bondée.
C’est pourquoi vous pouvez commencer avec ce comportement désactivé, puis l’activer rapidement à l’aide de commandes vocales.
Nous avons également ajouté un exemple dans EyeTrackingDemo-03-Navigation (Assets/MRTK/Examples/Demos/EyeTracking/Scenes) pour utiliser TargetMoveToCamera pour lequel vous pouvez sélectionner une cible ciblée et qu’elle vole en face de vous. Dites simplement « Viens à moi ».
Une fois en mode proche, le mode de rotation automatique est automatiquement activé. Dans ce mode, vous pouvez l’observer de tous les côtés, soit simplement en se penchant en arrière et en le regardant, en marchant autour d’elle ou vers le haut pour le saisir et le faire pivoter avec votre main. Lorsque vous ignorez la cible (regardez & pincez ou dites « Renvoyer »), elle revient à son emplacement d’origine et cesse de réagir à vous de loin.
| Paramètres | Description |
|---|---|
| SpeedX | Vitesse de rotation horizontale. |
| Rapide | Vitesse de rotation verticale. |
| InverseX | Pour inverser le sens de rotation horizontale. |
| InverseY | Pour inverser la direction de rotation verticale. |
| RotationThreshInDegrees | Si l’angle entre « Regarder vers la cible » et « Caméra vers cible » est inférieur à cette valeur, ne faites rien. C’est pour éviter les petites rotations gigues.. |
| MinRotX | Angle de rotation horizontal minimal. Il s’agit de limiter la rotation dans différentes directions. |
| MaxRotX | Angle de rotation horizontal maximal. Il s’agit de limiter la rotation dans différentes directions. |
| MinRotY | Angle de rotation vertical minimal pour limiter la rotation autour de l’axe X. |
| MaxRotY | Angle de rotation vertical maximal pour limiter la rotation autour de l’axe y. |
En résumé, les scripts ci-dessus doivent vous permettre de commencer à utiliser le regard pour diverses tâches de navigation d’entrée, telles que le défilement de textes, le zoom et le panoramique des textures, ainsi que la rotation des hologrammes 3D.
Voir aussi
- Configuration mrTK de base pour utiliser le suivi oculaire
- Sélection de la cible prise en charge par les yeux