Serious Game en Realite Virtuelle (mars 2025)

Projet réalisé en binôme sur Unity en réalité virtuelle pour un Meta Quest 2.

Noms des participants : Florian BOISSET et Elisa MARCHAND.

Présentation et contexte du projet

Cette partie présentera une synthèse d’un rapport de projet réalisé dans un cadre pédagogique de réalisation d’un Serious Game VR. Le projet vise a concevoir deux experiences immersives de formation en realite virtuelle : une simulation de tri de pneus et un simulateur de grue. Les deux modules ont ete developpes autour d’une architecture orientee evenements, d’une interaction utilisateur basee sur les outils XR, et d’un systeme de score persistant. Cette synthese met en avant les choix techniques, le deroulement des interactions, les criteres de reussite, ainsi que les limites observees et les pistes d’amelioration.
L’objectif de ce serious game est de proposer des situations proches du terrain professionnel. Les objectifs principaux étaient les suivants :

Le systeme est compose de deux epreuves complementaires. La premiere evalue la capacite de l’utilisateur a identifier et trier des pneus selon leur conformite. La seconde evalue la precision de pilotage d’une grue dans un parcours variable. Ensemble, ces deux modules couvrent des competences de diagnostic, de coordination gestuelle et de maitrise operationnelle.

Vue d’ensemble de la scène VR.

Module 1 : simulation de tri de pneus

Génération et gestion des pneus

Le coeur du module est centralise dans un gestionnaire dedie (TireManager.cs). Le lancement de l’epreuve est realise par un bouton vert interactif VR. Lorsqu’une main entre dans la zone d’interaction, un evenement de type spawn est declenche et demarre la generation progressive des pneus.

Les pneus apparaissent a une position predeterminee dans la scene. Une coroutine permet d’etaler leur instanciation dans le temps afin d’obtenir un flux regulier et lisible pour le joueur. Chaque pneu instancie recoit automatiquement deux proprietes booleennes aleatoires :

Zone d’apparition des pneus.

Le démarrage de l’épreuve déclenche également un chronomètre. Un bouton rouge complète le dispositif en offrant une remise à zéro rapide de la scène (suppression des pneus présents).

Détection, scan et retour utilisateur

Deux détecteurs coexistent dans l’exercice : un détecteur manuel et un détecteur automatique. Chacun dispose d’une zone trigger et d’un script de lecture des entrées. Selon le type de détection, des événements distincts sont émis.

Lors d’un scan manuel, le système lit directement la conformité du pneu et met à jour l’écran de console avec une information visuelle adaptée. Pour le scan automatique, la logique ajoute un contrôle préalable de la lisibilité du code-barres. Si le code n’est pas détectable, un état d’erreur spécifique est affiché.

Cette architecture offre un avantage important : la séparation entre acquisition des données (détecteurs), logique métier (gestionnaire), et restitution (console). Le comportement est plus facile à maintenir, à tester, et à étendre.

Affichage de la console avec les résultats du scan.

Condition de victoire et persistance des scores

Le tri final est validé par des zones de dépôt (bennes), chacune associée à une détection d’entrée/sortie. Lorsqu’un pneu est déposé dans la bonne benne, le compteur de réussite est incrémenté ; s’il en ressort, le compteur est décrémenté. La victoire est atteinte lorsque 10 pneus sont correctement placés.

Une fois la victoire atteinte, un clavier virtuel est affiché pour saisir un nom ou pseudo. Le score (temps réalisé) est ensuite enregistré dans un dictionnaire, puis sauvegardé en local dans un fichier JSON. Ce choix permet de conserver un historique entre les sessions. Une liste triée des scores est finalement affichée, du meilleur au moins bon résultat.

Affichage des scores.

Habillage sonore

Le module intègre plusieurs sons spatialisés reliés aux événements de jeu : apparition des pneus, bip de scan, collisions, appui sur les boutons et son de victoire. L’audio renforce la compréhension de l’action en cours et l’immersion globale. La spatialisation est particulièrement utile pour associer chaque son à son origine dans la scène.

Module 2 : simulateur de grue

Conception mécanique et interactions XR

Le simulateur de grue repose sur un assemblage de joints physiques (fixed joints et configurable joints) permettant des rotations contrôlées sur des axes précis. Cette décomposition mécanique reproduit le comportement attendu d’un bras articulé : mouvements verticaux, rotation autour de la base et orientation de l’effecteur.

L’utilisateur agit au moyen de deux poignées VR saisissables, associées aux mains gauche et droite. Cette contrainte bimanuel est pertinente pédagogiquement, car elle simule une coordination motrice proche d’une tâche réelle de conduite d’engin.

Déplacement de la grue via les poignées VR.

Génération du parcours et calcul du score

Le parcours est activé via un bouton vert et désactivé via un bouton rouge. La ligne de guidage est générée aléatoirement entre 5 et 10 segments, ce qui limite l’effet de mémorisation et encourage l’entraînement sur des configurations variées.

Le parcours comporte un bloc de début et un bloc de fin. Le bloc de début initialise le score et signale l’entrée correcte dans la ligne. Durant le trajet :

Le bloc de fin met fin à l’épreuve et déclenche l’affichage du clavier virtuel pour l’enregistrement du score, avec une logique similaire à celle du module pneus.

Affichage de la ligne de guidage en rouge.

Retour sonore

Le module grue inclut un habillage sonore plus minimaliste, principalement axé sur le son de fin de parcours. Ce choix reste cohérent avec l’objectif de concentration motrice, mais pourrait être enrichi par des retours intermédiaires (alerte de sortie de ligne, confirmation de reprise de trajectoire, etc.).

Bilan global et perspectives

Le projet atteint ses objectifs principaux : proposer deux situations de formation VR interactives, reposant sur des mécanismes robustes (événements, triggers, persistance de données) et un retour utilisateur multi-modal. L’utilisation de scripts spécialisés et de points d’entrée clairs facilite la maintenance du code et la compréhension de la logique applicative.

Plusieurs axes d’amélioration ont toutefois été identifiés :

A moyen terme, des améliorations concrètes peuvent être envisagées : validation stricte des entrées clavier, meilleur traitement des doublons de pseudo, enrichissement des feedbacks sonores contextuels, et ajout d’indicateurs visuels d’aide à la correction en temps réel. Ces évolutions renforceraient à la fois la fiabilité technique et la valeur pédagogique du serious game.

Conclusion

Cette synthèse montre que le Serious Game VR constitue une base solide pour des scénarios de formation immersive. Les deux exercices sont complémentaires et exploitent efficacement les possibilités de la réalité virtuelle : manipulation naturelle, évaluation continue, et mémorisation des performances. Avec quelques ajustements techniques et ergonomiques, la solution peut évoluer vers un outil de formation encore plus précis, stable et adaptatif.