← Retour aux projets

GNFA POC

Stage Unity
Aperçu du projet

Ce projet, commandé par GNFA, consistait à développer un proof of concept (POC) en réalité virtuelle. L’objectif était de valider la faisabilité d’une formation immersive à la consignation d’un véhicule électrique, c’est-à-dire la mise en sécurité du véhicule avant toute intervention technique.

Bien que je ne sois pas intervenu dès le lancement du projet, celui-ci était initialement développé par mon tuteur Emile. J’ai été chargé de prendre le relais pour assurer les modifications successives à partir des retours clients. Ce fonctionnement m’a permis de travailler en autonomie, tout en échangeant régulièrement avec Emile en début de semaine afin de clarifier les ajustements à effectuer. En fin de semaine, il présentait les avancées au client lors des réunions de revue. Ce rythme hebdomadaire permettait de maintenir une boucle de feedback continue.

Les retours clients portaient à la fois sur des ajustements de gameplay, des ajouts de contenus 3D, des améliorations de lisibilité, ainsi que des corrections de bugs. Voici un aperçu des types de modifications que j’ai dû apporter :


Ajouts et ajustements de gameplay :

  • Poser le VAT avant l’attestation

Le client a demandé un réajustement du scénario afin que le message "Toucher l’attestation de consignation" n’apparaisse qu’après avoir reposé le VAT. J’ai ajouté une étape intermédiaire pour forcer cette action, garantissant ainsi un enchaînement logique.

Aperçu du projet

Le VAT (vérificateur d'absence de tension) est un appareil permettant de vérifier, après coupure de l'installation électrique, que celle-ci est bel et bien coupée, en contrôlant qu'il n'y a effectivement plus de tension.

  • Ajout de consigne intermédiaire

Pour guider l’utilisateur, j’ai intégré des consignes intermédiaires entre 2 étapes pour rendre les choses plus claires. Par exemple une fois que l’on a équipé les EPI. Nous avons la consigne qui nous dit de nous déplacer vers le capot de la voiture. J’ai donc rajouté une consigne intermédiaire qui dit que nous avons vérifié l’état de nos EPI et qu’ils sont en bon état.

Aperçu du projet

  • Modification de certains text

J’ai dû modifier quelques textes que le client voulait modifier. Souvent c’était des rajouts pour clarifier les choses et des compléments dans les sous-titres.

  • Indicateur de progression

Le client voulait un moyen de voir l'avancée du scénario et des étapes. Pour cela j’ai mis sur le dos de la main gauche le pourcentage de l’avancement du scénario. Il se met à jour à chaque étape réalisée.

Aperçu du projet

  • Suppression d’une étape

Quand on prend le VAT en main on doit réaliser 2 tests de tension avec. Le premier est avant de tester la tension sur le véhicule et le deuxième est après ce même test. Pendant ses tests de tension, il y avait une étape qui était de presser un bouton sur chaque manette en plus de faire se toucher les 2 tiges métalliques, ce qui validait le test. Mais il a été décidé de supprimer cet appui des 2 boutons pour juste laisser les 2 tiges qui se touchent.

Aperçu du projet

  • Ajout d’un menu pour lancer le scénario

Le client voulait avoir la possibilité de pouvoir lancer le scénario manuellement sans qu’il se lance tout seul en lançant l’application dans le casque. Ils voulaient aussi que quand on termine le scénario on ai un message qui nous félicite et que l’on puisse relancer le scénario. J’ai donc utilisé l’espace présent dans le garage devant la voiture pour y placer le menu. Je n’ai pas fait une autre scène mais j’ai utilisé celle qui existait déjà. Au lieu de lancer une scène quand on clique sur le bouton je désactive le menu, je téléporte l’apprenant et je lance le scénario. Une fois le scénario fini on recharge la scène ce qui nous remet devant le menu. Cependant pour savoir si nous avons déjà terminé le scénario au moins une fois, je stocke une variable de type boolean dans un script présent en DontDestroyOnLoad qui est un scène qui reste tout le temps activé. J’ai juste à modifier cette variable avant de relancer la scène.

Aperçu du projet Aperçu du projet

Amélioration visuelles et UI :

  • Changement du sens de rotation des flèches

Au moment de dévisser la batterie, quand on pose la clé, une animation est jouée. La clé tourne pour dévisser l’écrou de la batterie et une flèche tourne sur elle-même pour montrer le sens de rotation. Mais il était dans le mauvais sens donc je l’ai modifié (avant sens horaire).

Aperçu du projet

  • Changement de certain visuels

Il fallait modifier certains modèles 3D qui ne correspondaient pas. Le plus souvent c’était des assets réutiliser d’ancien projet et donc qu’il fallait adapter. Par exemple, le tournevis ne convenait pas puisqu’il faut utiliser un tournevis isolé, de même pour la clé, il fallait qu’elle soit aussi isolante. Il y avait d'autres changements esthétiques comme changer la couleur d’un objet. Ce n'est pas moi qui ai modifié ses assets mais un artiste 3D dans l’équipe d'artistes. Je me suis juste occupé d’appliquer les modifications dans unity.

Aperçu du projet

  • Ajout d’une boîte métallique

Pour l’étape de déposer la clé de la voiture sur la table, il fallait ajouter une boîte métallique pour que l’on enferme la clé à l’intérieur. C’est encore une fois la même personne qui a réalisé la modélisation de cette boîte. Je l’ai donc ajouté dans la scène et fait en sorte qu’elle se ferme une fois la clé déposée à l’intérieur.

Aperçu du projet Aperçu du projet

  • Repositionner les EPI

Pour les EPI ils étaient mal placés. En effet certains étaient pas dans le bon sens, il fallait les mettre de tel sorte que l’on puisse lire ce qu’il y avait écrit dessus. Et il fallait aussi changer leurs ordre pour qu’on les enfile dans le bon ordre.

Aperçu du projet Aperçu du projet

  • Sac isolants

Il fallait ajouter une étape après avoir dévissé chaque visse de la batterie (la borne moins et la borne plus). On devait mettre un sac isolant sur les câbles après avoir mis le bouchon isolant. Ils ont donc été modélisés par un artiste 3D puis je les ai ajoutés à la scène. J’ai ajouté l’étape pour les récupérer et l’étape pour les placer.

Aperçu du projet Aperçu du projet

  • Changement couleur des gens

Après avoir enfilé les EPI il fallait pouvoir le voir physiquement. J’ai donc modifier la couleur des mains pour qu’ils aient la même couleur que les gants des EPI. La couleur ne change qu’une fois l’étape des EPI terminée.

Aperçu du projet Aperçu du projet

  • Modification visuel des sous-titres

Certain retour était sur la difficulté à lire les instructions écrites à l’écran. Il fallait trouver le juste milieu entre assez grand pour que ce soit lisible et pas que ça ne prenne trop de place pour que l’on puisse continuer à observer l’environnement. Cela à pris du temps pour que chaque semaine ce soit un peu mieux.

Aperçu du projet

Effets sonores et feedbacks :

  • Effets sonores

Nous avons ajouté des effets sonores pour un meilleur ressenti. Il y avait par exemple le bip de quand on réalise le test du VAT et que les tiges se touchent, le bruit de la portière qui s’ouvre et qui se ferme.

  • Fond sonore

Nous avons aussi mis un bruit de fond dans l’atelier pour faire moins silencieux et plus réaliste.

  • Led du VAT

Nous avons aussi ajouté un feedback visuel pour le test du VAT. Maintenant les leds du VAT s'allument au contacte des tiges. Pour simuler la lumière sans en mettre pour ne pas rendre plus gourmand le calcul du casque, mon tuteur m’a montré une petite technique. Nous utilisons un objet 2D en forme d’ovale avec une texture de lumière. Nous le faisons pivoter pour qu’il soit toujours face à la caméra. Cela simule la lumière tout en réduisant les calculs à effectuer.

Aperçu du projet

Résolution des bugs :

  • VAT scindé en deux objets

Il y avait un bug lié au VAT. En effet, il y avait une zone pour la tige noire sur le côté droit du VAT. Et parfois la tige revenait dedans au lieu d’aller là où on l’avait posée. En fait cela venait du fait que la tige était un enfant du VAT ce qui causait plusieurs bugs. Pour les résoudres j’ai détaché l’enfant de son parent et maintenant j’ai 2 objets distincts.

  • Téléportation quand le casque est enlevé

Un bug gênant empêchait parfois l’apprenant de poursuivre le scénario : il était téléporté en dehors de la zone de travail, sans possibilité de revenir manuellement, le déplacement libre n’étant pas autorisé dans cet environnement VR. Après investigation, nous avons identifié que le problème survenait lorsque l’utilisateur retirait puis remettait son casque.

Pour contourner ce bug, j’ai mis en place un système qui vérifie en continu la distance entre la position actuelle de la caméra (représentant la tête de l’utilisateur) et le dernier point de téléportation valide. Si cette distance dépasse un certain seuil, l’utilisateur est automatiquement ramené à ce point de téléportation.

J’avais initialement envisagé de détecter directement le retrait et la remise du casque via différentes méthodes, mais aucune ne s’est révélée suffisamment fiable ou compatible avec notre configuration. La solution par vérification de distance s’est donc imposée comme une alternative efficace et robuste.

  • Bug de zone de collision

Voici un exemple de bug assez commun que nous avons eu. Quand on voulait sélectionner les EPI, il arrivait que 2 disparaissent alors que nous n'en avons sélectionné qu'un seul. Cela était tout simplement dû au fait que la zone de détection était trop grande et donc la manette pouvait être dans deux zones en même temps. Il a juste fallu réduire la taille de cette zone.