Aller au contenu

Noeuds de pointage

Principe des nœuds de pointage

Les nœuds de pointage sont des entités pouvant prendre des formes diverses et qui vont permettre de pointer les objets 2D et 3D. En fonction du protocole utilisé, le nœud de pointage sera différent.

Par défaut, dans un protocole standard, la souris est le nœud de pointage par défaut. Dans des cas spécifiques, il peut être remplacé par un nœud de pointage 3D qui permettra l'interaction au clavier ou à la manette.

Dans les protocoles VR, le nœud de pointage est une manette VR (ou possiblement les deux). Dans un protocole Cave, le nœud de pointage est un nœud dépendant du VRPN.

Le nœud de pointage dispose d'un bouton d'action qui permettra l'activation des comportements sur l'objet pointé.

Il faut différencier le nœud de pointage et le nœud de saisie. Pointage ne veut pas forcement dire saisie d'objets de l'environnement. VRmaze propose un système de saisie spécifique sous forme d'option au nœud de pointage. des objets.

Il faut différencier le nœud de pointage de l'outil d'interaction/Déplacement. Il est possible de se déplacer a l'aide d'un outil et de pointer avec un autre (cas des manettes VR, de la souris)

Les nœuds peuvent avoir des origines différentes (mouse => invisible, input => objet 3D, Manette VR => entité, vrpn => script), ils ont en commun certains paramètres et propriétés

Type des nœuds de pointage

Le pointage à la souris est le pointage par défaut et ne nécessite aucun paramétrage supplémentaire. Un pointage "au clavier" (ie. un objet, pouvant avoir un comportement, qui pointera dans une direction et qui attendra la saisie d'une touche spécifique du clavier), sera un objet 3D, tandis qu'en protocole VR, les nœuds de pointage sont les entités VR Hand Component. Pour finir, en protocole Cave, la déclaration d'un nœud de pointage se fait à l'aide d'un script.

gestionnaire d'évènement

Généralement, en fonction du protocole, le gestionnaire d'évènement est configuré et ne nécessite pas d'attention particulière. Dans un protocole standard, le gestionnaire d'évènement prendra en charge la souris, tandis qu'en VR, le gestionnaire d'évènement VR prendra en charge la ou les manettes déclarées. En protocole Cave, un gestionnaire d'évènement VRPN permet la gestion des informations provenant du protocole VRPN. Il est possible de changer de gestionnaire d'évènements en faisant un bouton droit de la souris et en changeant le gestionnaire.

Image title 2

La modification du gestionnaire de pointage.

Paramètre du noeud de pointage

Image title 2

Les paramètres du nœud de pointage (type "Input Pointing Node").

Les paramètres sont commun à tous les nœuds de pointage (hormis la souris qui ne dispose d'aucun paramètre). Un nœud de pointage doit d'abord être déclaré (via une case à cocher). Il est possiblement nécessaire d’affecter une touche d'action (automatique sur les périphériques VR et VRPN).

Affichage du laser (option directe ou noeud enfant)

En fonction du nœud de pointage ajouté (hormis la souris qui ne dispose pas de cette possibilité) le nœud de pointage peut se voir adjoindre un laser de couleur rouge permettant à l'utilisateur d'avoir un retour d'information sur le pointage en 3D.

Laser en VR

Dans le cas du protocole VR, le laser est une option du sujet.

Image title 2

Pour ajouter un laser au nœud de pointage, lorsque l'option n'est pas disponible directement, il est possible d'ajouter un objet 3D "Laser Beam" en tant qu'enfant du nœud de pointage.

Image title 2

L'objet "Laser Beam".

Saisie des objets

Un nœud de pointage peut être déclaré comme un nœud de saisie d'objet. Les entités de pointage dispose d'une option permettant l'activation de la saisie des objets dans l'espace 3D.

L'option "Utiliser la fonctionnalité de saisie" permet d'utiliser une seconde touche (ou bouton en fonction du périphérique) pour la saisie d'objet.

Le bouton de saisie n'est pas le seul paramètre du système de saisie.

Image title 2

Les paramètres de la fonctionnalité de saisie.

Les paramètres sont les suivants :

  • Méthode de pointage (Radial ou pointeur)
  • La distance de saisie (exprimée en mètre)
  • la position de l'attache (exprimé dans le référentiel nœud de pointage)

Méthode de pointage

Les deux méthodes de pointage diffère. En radial, le système saisira le première objet dans une distance inférieure à la distance de saisie, même si le sujet ne pointe pas dans la direction de l'objet. Cette méthode est très utile lorsque la précision n'est pas demandé, et qu'une réactivité accrue est nécessaire lors du test.

La méthode "Pointeur" permet la saisie de l'objet pointé par le nœud de pointage. La saisie requiert une grande précision mais permet la saisie de petits objets parmi un grand nombre. Cette méthode est à éviter dans le cas de saisie d'objets mobiles ou si la réactivé est nécessaire.

Position de l'attache

La position de l'attache permet de placer un décalage entre les points de pivots du nœud de pointage et de l'objet saisi. En cas d'offset à 0, il est possible que le nœud de pointage représenté par un objet 3D en visuellement en collision avec l'objet saisi.

Contraintes de la saisie d'objet

La saisie des objets se fait sous contraintes. Tout d'abord, tous les objets ne peuvent pas être saisis. De plus, un seul objet peut être saisi à un moment donné pour un nœud de pointage.

VRmaze utilise massivement le moteur physique de Unity pour la gestion de la saisie, ainsi, un objet saisie doit être un objet physique (ie. disposant d'un comportement "Rigid Body") et disposer d'une collision. Ces deux contraintes suffisent pour permettre une saisie de l'objet, toutefois, il est tout à fait possible d'avoir certains objets disposant de ces comportement tout en voulant interdire leur saisie.

Pour palier à ce problème, l'objet doit, en plus, être déclaré, saisissable dans VRmaze.

Il y a donc 3 contraintes pour rendre un objet saisissable :

  • Le déclarer physique
  • Qu'il ai une collision
  • Le déclarer "Saisissable"

Ces 3 déclaration se font directement dans VRmaze. La déclaration de la collision se fait directement dans les propriété de l'objet, tandis que les déclaration "physique" et "saisissable" se font à l'aide des attributs personnalisés.

Image title 2

Les déclarations physique et saisissable.

Paramètre de physique

L'attribut "Physicalize" dispose d'une valeur flottante correspondant à la masse de l'objet exprimé en kg. Plus l'objet est lourd plus il aura une incidence sur l'environnement lors de son lancé.

Grabable en C# ?

Dans le cas d'un développement informatique sous forme de code C#, la déclaration d'un objet "Grabable" est automatique l'objet 3D dispose d'un comportement dont le code hérite de l'interface "IGrabEventListener".

Physique des objets saisis

Puisque VRmaze utilise le moteur physique de Unity, il est possible de donner des comportements physiques aux objets, sous forme de matériaux. La déclaration du comportement physique se fait sous forme d'attribut personnalisé permettant de sélectionner un matériau physique parmis une liste.

Image title 2

La liste des comportements physiques disponibles.

Devenir des propriétés physiques

La liste des comportements physiques est amené à évoluer à l'avenir.

Enregistrement des trajectoires d'objets saisis

Il est tout à fait possible d'enregistrer les trajectoires des objets saisis. Pour cela, l'objet saisissable doit être un objet 3D enregistré. Cet objet est différent de l'objet 3D conventionnel qui n'est pas enregistré.

Image title 2

L'ajout d'un objet 3D enregistrable.