Aller au contenu

Configuration VRmaze

Configuration de VRmaze

VRmaze ne nécessite aucune configuration particulière en vue de l'utilisation des casques de réalité virtuelle. Toutefois, la fonctionnalité d'utilisation de casque immersif est soumis à une licence spécifique. Il est nécessaire d'obtenir une licence VR pour VRmaze de manière à pouvoir utiliser un casque de réalité virtuelle compatible SteamVR.

Image title 2

L'ajout d'une licence VR permet la création de protocoles spécifiques VR.

Création d'un protocole VR

La création d'un protocole VR suit les mêmes règles de création qu'un protocole conventionnel, toutefois, quelques différences sont à noter. Un nombre conséquent de paradigmes ne sont pas disponible en VR. InMind-VR s'attache à permettre la création d'un grand nombre de paradigmes mais malgré tout, certains reste uniquement disponibles en 2D uniquement.

La caméra sujet et les méthodes d'interaction sont différentes par rapport à un protocole conventionnel. En effet, l'utilisateur dispose de deux manettes en VR contre un clavier en paradigme conventionnel.

Image title 2

L'offre de paradigmes.

Offres de paradigmes

Les paradigmes proposés sont différents de ceux proposés en protocole conventionnel.

Test 2D en VR ?

Certains paradigmes 2D sont concevables en VR. En effet, les questionnaires peuvent être affichés dans l'espace 3D et l'interaction aux manettes VR est permise.

Compatibilité des protocoles VR et non VR

Les protocoles étant de nature différentes, les résultats analysés de deux protocoles de types différents ne sont pas compatibles.

Lancement d'un protocole VR

Le lancement d'un protocole VR ne se différencie pas d'un protocole conventionnel. Il s'agit de le lancer normalement. Néanmoins, il faut noter un comportement logiciel différent entre le protocole conventionnel et le protocole VR. Ce dernier va essayer de lancer SteamVR automatiquement et de faire le lien avec de manière à communiquer avec le casque de réalité virtuelle.

Image title 2

SteamVR lancé avec une liaison VRMaze.

VRmaze->SteamVR->Logiciel fournisseur

VRmaze va tenter de lancer SteamVR lors du lancement du protocole, par contre, ni VRmaze, ni SteamVR ne lancera l'application fournisseur (Oculus pour les casques Oculus, Vive pour les casques HTC). Il convient donc de s'assurer du bon lancement de ces applications tierces en fonction des casques à utiliser.

Echec de liaison VRmaze->SteamVR

Il existe une probabilité non nulle que la liaison VRmaze vers Steam VR échoue. Dans ce cas, le lancement du protocole échoue et rien ne se passe, tout au plus, la fenêtre de lancement VRmaze apparaitra et disparaitra quasiment aussitôt. Dans ce cas, il faut relancer simplement la passation du protocole.

Lancement automatique de SteamVR

VRmaze lance automatiquement SteamVR si celui-ci n'est pas déjà lancé. Dans le cas inverse, VRmaze fera la liaison avec l'instance de SteamVR en cours.

Considérations spéciales des protocoles VR

Certaines contraintes sont à prendre en compte lors de la passation en réalité virtuelle. Bien qu'il soit possible d'utiliser le moteur de rendu Built-In dans VRmaze, la version 2023 du logiciel ne supporte que le moteur de rendu URP.

Incompatibilité VRMaze 2023 - Moteur de rendu Built-In

Le moteur de rendu built-in n'est pas totalement compatible lors de l'utilisation de protocoles VR. En effet, les manettes d'interactions apparaitrons rose. Cela est due à une application de shaders non compatibles avec le moteur de rendu Built-In.

Une considération importante à prendre en compte lors de l'utilisation en VR est la position dans l'espace réel. En effet, la calibration effectué soit dans SteamVR, soit dans le logiciel de contrôle du casque immersif implique la création d'un référentiel virtuel.

Dans VRmaze, la position du sujet est une position virtuelle avant tout. Lors de l'utilisation d'un protocole VR, la position du sujet est une addition de la position virtuelle et de la position physique dans l'espace de jeu. En terme d'enregistrement de données, VRmaze enregistre la somme des deux données (ainsi que les orientations) de manière à ne perdre aucune information.

La caméra sujet retranscrit le positionnement physique et le positionnement virtuelle. VRmaze considérera toujours que le corps du sujet est positionné verticalement sous la caméra virtuelle. La seule donnée disponible étant la position du casque dans l'espace de jeu, VRmaze ne peut faire d'autre hypothèse que celle consistant à dire que le sujet se tient droit. En conséquence, la collision intégré, qui permet de ne pas franchir les obstacles sera toujours positionné à la verticale de la caméra sujet.

Collision en VR

La zone de collision du sujet est considérée comme étant à la verticale de la caméra sujet (correspondant à la verticale physique du casque à un moment donné).

Pas de déplacement virtuel en VR ?

Il est tout à fait possible d’interdire le déplacement à la manette de manière à ce que le sujet ne puisse se déplacer que physiquement. Pour cela, il faut modifier les vitesses de déplacement et d'orientation en les plaçant à une valeur de 0.

Rotation virtuelle

La rotation dans l'espace virtuelle est produite autour de la tête du sujet.

Cas des labyrinthes

Dans un paradigme de type labyrinthe, la détection de cible se fera par rapport à la position du casque, donc en hauteur. Une option sur chaque cible permet de ne pas prendre en compte la composante verticale lors du calcul de distance cible-tête de manière à être agnostique quand à la taille du participant.

Enregistrement des données

Le système de rendu de caméra (Nœud sujet) dans un essai VR est un peu plus complexe que pour un essai conventionnel. En effet, la caméra VR dispose d'options et de nœuds enfant permettant l'enregistrement de données complémentaires. Comme pour le sujet conventionnel, la position et l'orientation de la caméra est enregistrée. Il est aussi possible d'enregistrer d'autres composants VR:

  • Chacun des manettes différenciées
  • Les données d'eye tracking (nécessite un casque compatible)
  • Un composant déclaré parmis : Foot, Head, Shoulder, Waist, Chest (nécessite l'ajout de trackers compatibles)

Données Enregistrées

En fonction du paradigme, il est possible que l'enregistrement des données complémentaires ne soit pas activé. En cas de besoin, il convient de rajouter les nœuds d'enregistrement correspondants.

Eye tracker

le composant d'enregistrement de l'eye tracker n'est supporté que pour le casque HTC Vive Pro Eye. Il convient d'installer le programme SRAnipal de manière a pouvoir le faire fonctionner.

Lancement de la calibration de l'eye tracker dans VRmaze

Au lancement d'un protocole, il est possible de lancer une calibration de l'eye tracker via l'instruction spéciale SRAnipal Eye calibration instruction. Cette instruction va lancer la calibration et mettre en pause la passation.

Entités spécifiques

Pour répondre à certains besoins spécifique, VRmaze intègre certains composants spécifiques à la VR. Il est, par exemple, impossible d'afficher un élément 2D en sur-impression de l'image virtuelle. Si cette fonctionnalité est supportée dans un protocole conventionnel, elle ne l'est pas dans un protocole VR.

Elément 2D simple en VR

Les éléments 2D ne sont pas affichés en VR, ils le sont sur l'écran de retour, mais non pas dans le casque.

Afficher un élément 2D en VR

Pour afficher un élément 2D (texte, ou image) il convient d'utiliser un nœud de type World Space 2D Container. Dans ce cas, l'affichage de l'élément 2D sera affecter à une position, une orientation et une taille dans l'espace 3D.

Le cas des instructions est problématique puisqu'il s'agit bien souvent d'un texte ou d'une image. Comme nous l'avons vu, il est possible d'afficher un texte dans l'espace 3D, mais dans le cas de l'instruction cela ne suffit pas. Il faut afficher le texte devant le sujet, et faire en sorte qu'il le suive.

VRmaze propose un nœud d'instruction VR Head Instruction 3D Bridge qui suit le sujet. Couplé à un World space 2D container il permet l'affichage de données 2D en face de la caméra sujet.

Image title 2

L'instruction `VR Head Instruction 3D Bridge` avec un enfant `World space 2D container` et un simple texte.

Configuration du sujet en VR

Le noeud VRSSubject dispose d'un paramétrage plus fin que le sujet conventionnel. Il dispose en effet d'un système supplémentaire de configuration des manettes permettant de :

  • Afficher un laser de pointage de couleur rouge sur 0,1 ou les deux manettes
  • Déclarer la manette permettant l'interaction (avec une option permettant d'utiliser la valeur déclarer pour un sujet)
  • Supprimer la détection de collision (attention, il faut désactiver la gravité, sinon, le sujet tombera sans jamais s’arrêter)

Image title 2

Le panneau de configuration du sujet.

Graphes de comportement

Il est tout à fait possible d’accéder aux informations des différents composants VR. Quelques précautions sont à prendre en compte toutefois. Les graphes de comportements proposent un certaines nombre de nodes qui donnent uniquement accès a d'autres entités du protocole. Il faut donc que l'entité existe dans l'arbre de protocole pour que le node fonctionne.

Accès aux composants VR

Pour accéder à un composant VR, la méthode la plus simple consiste à trouver l'essai en cours, puis d’accéder à l'entité "Subject" de l'essai. L'entité Subject suffira ensuite à accéder aux composants VR

Image title 2

Accession aux composants via un enchainement de nodes.

Pour que le graphe de comportement fonctionne correctement, il est nécessaire que la donnée recherchée existe dans l'arbre de protocole. Il faut donc l'ajouter au préalable aux composants VR du "VR Subject".

Image title 2

Exemple de composants existants dans un essai VR.

Dans le cas ci-dessus, l'accès à la main gauche, la main droite et la poitrine est possible. Les autres composants (pieds etc.) sont inaccessibles dans les graphes de comportements car manquant dans la structure de protocole.

La liste des composants accessible est la suivante :

  • LeftHand
  • RightHand
  • LeftFoot
  • RightFoot
  • Chest
  • LeftShoulder
  • RightShoulder

Image title 2

Les composants VR disponibles.

Les nodes décrit au dessus ne donne qu'un accès aux entités sans aucune autre information. Il est possible d'obtenir simplement la position et l'orientation de ces composants grâce aux nodes associés :

  • Get Component Position (Retourne un vecteur 3 de position dans les coordonnées monde)
  • Get Component Rotation (Retourne un vecteur 3 d'orientation en angle d’Euler)

Image title 2

Les nodes d'accès aux positions et rotations des composants VR.

Accès aux données des joysticks

Les données des joysticks sont contenues dans les composants VR de type "Hand" (Left Hand, Right Hand). Ainsi, si l'accès aux mains gauche et droite est possible, il est possible d'obtenir les informations relatives aux manettes de chacune de ces mains.

Image title 2

On accède aux données des manettes en fournissant en entrée le composant VR de type "Hand".

La liste des données de joystick est la suivante :

  • Trigger Analog (valeur flottante)
  • Grip Analog (valeur flottante)
  • TouchPad Button (valeur booléenne)
  • Button 0 (valeur booléenne)
  • Button 1 (valeur booléenne)
  • TouchPad (Vecteur 2)
  • Menu Button (valeur booléenne)

Image title 2

La liste des nodes associés aux manettes VR.