Unity

Ce moteur de développement permet de créer des environnements 3D facilement. Unity permet aussi l'intégration de plugin et d'interface de réalité virtuelles telle que l'Oculus Rift.

Oculus Rift

Le casque Oculus Rift permet une immersion plus importante de l'utilisateur. Celui-ci permet également un suivi des mouvements de tête.

Track IR

Le Track IR permet de suivre le mouvement de la tête de l'utilisateur. Ceci permet d'avoir des mouvements de caméra plus réaliste.

Le projet Virtual Shopping conciste à reprendre et améliorer un projet existant crée par des étudiants de l'année passée.

Notre Equipe

Paul Richard

Responsable projet

Pierre Gac

Etudiant EI4

Paulin Doux

Etudiant EI4
Le Projet

Projet existant

Le magasin virtuel à initialement été fait par des étudiants de l'année dernière. Le projet était déjà fonctionnel et comportait les options suivantes :

  • Gestion des menus
  • Sélection de la liste de courses
  • L'enregistrement de la session de jeu
  • La possibilité de relire un trajet
Notre mission a été de reprendre le projet et de l'améliorer. Les premières semaines ont été consacrées à la compréhension de ce dernier ainsi que du code des différentes fonctions.

L'intelligence artificielle

La première amélioration que nous avons effectuée est la mise en place d'une pseudo intelligence artificielle. Cette IA permet d'ajouter un certain réalisme ainsi que plus de crédibilité au projet. En effet, un supermarché virtuel sans entités autonomes (autres clients) n'est pas très logique sachant que ce projet à pour but l'étude comportementale. C'est pourquoi nous avons décidé de rajouter une IA.

Unity 3D permet de faire du pathfinding relativement facilement sans à avoir à passer par la case mathématiques, qui est assez compliqué. Le principe est le suivant :
Dans un premier temps, le magasin est découpé en plusieurs zones. Chaque zone est ainsi sauvegardée afin d'être utilisée par l'IA.
L'intelligence artificielle peut être placée sur n'importe quel objet 3D. Pour le magasin, nous avons mis un modèle de fille et un modèle de garçon. L'IA reste identique quelque soit le modèle. Chaque entité se voit assignée une zone. Le script est fait de façon à ce que chaque IA va chercher à aller dans le zone passée en paramètres.
On y a aussi ajouté des comportement plus évolués. Par exemple, chaque entité peut se déplacer de façon aléatoire dans n'importe quelle zone ou endroit du magasin. Ceci à pour but de casser la prévisilité des IA et surtout d'ajouter de l'aléatoire.
Étant donnée que le projet vise l'étude comportementale, nous avons ajouté d'autres options pour les IA afin de perturber le sujet. Une des possiblité est le fait de suivre le sujet. L'entité qui a ce mode va chercher à suivre le joueur (tout en gardant ses distances bien sûr). Ceci permet de voir le comportement vis à vis du fait de se faire constament suivre dans le magasin.
L'autre comportement de l'IA est le fait de toujours chercher à aller se positionner devant le caddie du joueur et le regarder. On essaye ici de simuler un obstacle "humain". Ce mode d'IA est intéressant car on peut voir si oui ou non le sujet va continuer sur sa lancée avec l'obstacle en face de lui.

Chaque IA est totalement paramétrable via les menus et est indépendante. De plus le comportement de chauqe IA peut être changé à la volée sans à avoir à toucher au code. Le tout est fait de manière dynamique. Cet aspect là sera détaillé dans la partie réservée aux menus.

Les perturbateurs

Nous avons aussi intégré à ce projet des perturbateurs afin de voir la réaction d'un enfant face à un évênement imprévu. Le premier type d'evênementsont les annonces sonores. en effet, nous avons intégré des annonces sonores telles que les annonces des promotions. Ce type de perturbateur à les mêmes paramètrdes que les IA. C'est à dire qu'ils sont localisés avec les mêmes zones que les IA. De plus, chaque evenement est timed de façon a faire en sorte que le son se déclenche uniquement à partir d'un certain temps. Le contenu sonore de l'annonce est géré par un moteur de "Text To Speech" (synthèse vocale). Ce moteur permet de retranscrire une phrase en son. Ceci permet de définir un texte personnalisé pour l'annonce. Personaliser le texte permet de tester plusieurs types de perturbation. Par exemple sur un enfant on peut tenter un message disant "Super promotion au rayon bonbons" et un autre disant "Promotion sur la lessive", on peut ainsi supposer que l'enfant sera plus réceptif au premier message qu'au deuxième.
Les IA interragissent elles aussi avec les annonces. En effet, lors de chaque annonce, ces dernières vont converger vers la zone de l'annonce. On peut ainsi voir si l'effet de foule à un effet sur le sujet

L'autre type de perturbateur est la chute d'un produit d'un étalage. En effet, cet évenement se produit lorsque le sujet arrive dans une zone précise. Lorsque cette condition de position est remplie, on fait tomber le produit et on joue un son afin d'attirer l'attention à l'endroit de la chute.

L'intégration dans les menus

Afin de pouvoir correctement paraméter les IA ainsi que les perturbateurs, nous avons dû ajouter des menus. Le système de menus à été assez compliqué à comprendre. Cependant, une fois le système compris, nous avons pu réaliser les 3 différents menus dont nous avons besoin. Le premier est celui des IA. Ce menu permet d'ajouter et de praraméter les IA présentes dans la scène. On peut y sélectionner les différents modes ainsi que le modèle 3D de l'IA. Le menu de perturbateurs permet, pour le moment l'ajout de perturbateur permet uniquement de gérer la chute d'objet. La chute est paramétrable par zone tout comme les IA ou les sons. Pour ce qui est des annonces sonores, e proncipe est le même que pour les IA ou les parturbateurs. On choisi la zone, le temps à partir duquel on autorise le déclenchement ainsi que le texte qui sera interprété par le moteur TTS

La scène de familliarisation

La scène de familiarisation est le même magasin que la scène normale, sauf que cette dernière ne comporte pas d'objets ni de perturbateurs. Cette scène permet à l'utilisateur de se familliariser avec l'interface ainsi que les commandes. L'environnement est donc volontairement vide afin que le sujet ne repère pas les lieux ainsi que la position des objets à l'avance. Nous n'avons pas encore eu le temps d'intégrer complètement la scène, il reste des problèmes d'éclairage et de menus

Le menu Display Motion

Un module de replay est aussi disponible afin de revoir la session de jeu. Ce module était déjà présent, cependant, avec l'ajout des IA au projet nous avons dû rajouter en plus de la position du joueur la position des Ia afin de mieux comprendre le trajet du joueur. Le cône de vision de chaque IA est aussi représenté.

Images
>
Vue d'ensemble du magasin
IA du magasin
Selection d'un item
Vue d'ensemble du magasin
Menu Display Motion
Menu Display Motion