Virtual City

Bonjour/Bonsoir à tous !

Nous sommes trois étudiants en deuxième année du cycle préparatoire de Polytech Angers. Dans le cadre de nos études futures, nous avons choisi ce projet pour travailler sur la réalité virtuelle afin d’améliorer nos compétences.

Dirigé par Monsieur Richard, “Virtual City”, développée sous Unity3D, a avant toute chose un but médical. Cet environnement virtuel sera utilisé par des personnes atteintes de troubles de la mémoire, le patient sera plongé dans la ville et devra suivre un trajet prédéfini où seront placés différents événements.

A la fin de la séance, nous recueillerons ce que le patient a pu retenir de cette expérience, il devra ainsi faire travailler sa mémoire.
Cahier des charges :

  • Installation du périphérique Oculus Rift.
  • Développer la ville en la rendant interactive et la plus réelle possible.

  • Se déplacer dans la ville via deux modes de transport différents.

  • Réalisation d’un menu pour faciliter le choix entre les différentes scènes.

Unity 3D :

Unity 3D est un logiciel, ou plus précisément, un moteur de jeu multi-plateforme en 2D ou 3D (console, smartphone, PC) développé par Unity Technologies. Cet outil permet de créer des jeux que cela soit pour les débutants ou pour les plus expérimentés avec plusieurs langages de programmation possibles : C++,C# et JavaScript. Ce logiciel gratuit (avec des fonctionnalités professionnels payantes) est aujourd’hui utilisé pour la création de minimum 50% des jeux vidéos.

Oculus Rift :

L’Oculus Rift est un casque de réalité virtuelle conçu par l’entreprise Oculus VR qui immerge totalement l’utilisateur dans des mondes virtuels. Projet lancé en 2012, la mise sur le marché mondial du produit se fait qu’en 2016. Une fois l’Oculus équipé, l’utilisateur pourra observer deux écrans (les mêmes)  pour chaque oeil, c’est ce système qui permet d’être immergé totalement. C’est grâce à un système de capteurs posé dans la pièce que le casque et les manettes se repèrent dans l’espace et c’est ainsi que nos mouvements se traduisent dans le jeu.

Réalisation du projet :

  1. Redesign complet de la ville et Création d’un menu

En premier lieu après avoir pris en main le logiciel, nous voulions finaliser l’apparence de la ville. Pour se faire nous avons ajouté de la verdure avec la création d’un parc en plein milieu de la ville. Nous avons refait le ciel et ajouter différentes météos comme un mode pluie ou un mode nuit par exemple. En parallèle, nous avons créé un menu pour nous permettre de switcher entre les différents modes de jeu, gérer l’audio du jeu,etc.

Menu principal du jeu

Menu principal du jeu

2.  Animation de la ville et ajout d’événements

Pour animer notre ville, nous avons organisé un trafic routier géré par un système de feux de signalisation. Nous avons ajouté des piétons qui circulent sur les trottoirs, des gens qui discutent. Au niveau du parc, nous avons fait un “jeu” qui consiste à ramasser un déchet pour le jeter dans une poubelle. Un acte citoyen ça fait pas de mal !

Vue de la ville à travers le parc

Vue de la ville à travers le parc

3. Installation du périphérique Oculus

C’est le moment déterminant de notre projet. On veut donner une expérience intéressante à ceux qui joueront à notre simulation. Nous avons aussi optimisé les déplacements de notre personnage en voiture ou à pied, le fait de pouvoir attraper des objets, etc.

4. Dernières modifications

Les dernières heures de travail, on s’est consacré aux détails comme remettre à échelle les objets, les personnages. Après plusieurs phases de test, nous avons corrigé certains bugs.

 

Conclusion

Ce projet a été très enrichissant pour nous, même si nous avons pas fait les mêmes types de travaux. Chacun a pu développer ses capacités et apprendre que cela soit humainement ou sur Unity. La répartition des tâches a été une clé pour bien finaliser notre projet dans les temps.

 

Virtual City

Matthieu MOREAU – Matthieu HIRON
Encadré par Paul RICHARD

Vue sur le parc

Vue sur le parc

Notre projet consistait à créer une ville virtuelle à l’aide d’un logiciel de jeu création de jeu : unity 3D. Le but était de créer un joueur suivant un parcours précis. Sur ce parcours, on trouve une ribambelle d’événements. Le joueur qui suit le parcours peut regarder où il veut à l’aide d’un casque de réalité virtuelle. A la fin du parcours, il doit se rappeler quels événements il a rencontré et leur ordre d’apparition. Cette activité est très utile pour les personnes atteintes de maladies entraînant une perte de mémoire aussi bien à court terme qu’à long terme. On pense notamment à la maladie d’Alzheimer par exemple.

On y trouve même un aéroport !

On y trouve même un aéroport !

La conception de notre projet s’est effectuée en 3 grandes phases :

DOCUMENTATION
Dans un premier temps, nous avons eu une longue phase de documentation et de recherche sur l’utilisation du logiciel Unity que nous ne connaissions pas du tout. Nous avons notamment regardé de nombreux tutoriels pour découvrir aussi bien le fonctionnement général du logiciel que certaines fonctionnalités plus spécifiques. Nous avons également fait quelques recherches au cours de la conception du projet lorsque que nous avions besoin de fonctions particulières pour la programmation en C#.

ETUDE
Une fois que nous avions les bases du logiciel, nous savions ce qui était réalisable avec ce dernier. Nous avons pu établir un plan de la ville que nous voulions créée. Ce plan a toutefois été adapté au fil de la conception puisqu’il était parfois difficilement applicable en réalité. Ensuite, nous avons cherché sur “l’Asset Store” d’Unity des packs de bâtiments, véhicules, personnages…

Représentation en couronnes de la ville que nous voulons créée

Représentation en couronnes de la ville que nous voulons créée

CONCEPTION
La phase de conception s’est déroulée en 2 partie : une partie création de la ville et une partie programmation afin d’animer les véhicules, le parcours du joueur, les évènements… Cette phase a été plutôt intuitive, même pour la programmation en C#. Une fois cette phase finie, nous avons donc un joueur qui suivait un parcours à travers la ville et qui pouvait observer tout autour de lui. Nous allons aborder un peu plus en détail l’aspect du développement.

Le centre ville

Le centre ville

La conception de la ville s’est effectuée grâce aux “assets” sur Unity. Certains sont gratuits mais plus la qualité augmente, plus les assets sont coûteux. Nous avons choisi de nous diriger vers des textures low-poly, des modèles 3d avec peu de polygones, car c’est plus simple à concevoir et assembler, ce qui nous facilite le travail étant donné que nos compétences étaient plutôt basiques au départ. Cela limite l’aspect réaliste du projet mais ce n’était pas un des objectifs premiers.
Nous sommes partis d’un modèle de ville que nous avons obtenu d’un Asset et nous l’avons modifié et avons ajouté certains aspects pour la rendre plus réaliste et plus compatibles avec nos idées.

Phase de développement sous Unity - On y voit les contours de la ville

Phase de développement sous Unity. On peut remarquer les montagnes installées autour

Pour finir, nous avons installé un “joueur” symbolisé par un point de vue fixé à un scooter. Nous avons choisi un scooter pour que le déplacement de notre joueur soit plus rapide et puisse ainsi découvrir plus de parties de notre ville. La programmation était plutôt intuitive et rapide à l’aide des différents scripts à notre disposition.

Illustration du sytème de noeud, la technique pour programmer les déplacements du scooter

Illustration du sytème de noeud, la technique pour programmer les déplacements du scooter

Une fois le trajet du joueur définit, il restait à positionner les différents évènements comme une cabine téléphonique qui sonne, un chien qui aboie, sur le chemin et déclencher le dit-événement au passage du joueur.
Par manque de temps, nous n’avons pas pu rendre notre jeu jouable au casque de réalité virtuelle. Il n’est jouable que sur pc mais nous avons pour objectif de continuer son développement afin de le rendre le plus efficace possible, le but ultime étant de pouvoir le tester avec des personnes malades.

Voici le trajet du joueur en bonne qualité :

Vous l’aurez compris, c’est un véritable “Serious Game” que nous avons eu l’occasion de développer. Remerciements à Monsieur Richard pour son aide précieuse qui nous a permis de réaliser ce projet.