Virtual Bowling

INTRODUCTION

Nous sommes Lola, Alice, Marine et Louise ; étudiantes à Polytech Angers et dans le cadre de notre cycle préparatoire nous avons réalisé un projet. Ce projet a pour but de réaliser un bowling virtuel sur le logiciel Unity 3D. Nous avons choisi ce projet car, de notre point de vue, il sortait du lot. Nous voulions réaliser un projet amusant mais à la fois complexe.

Capture d’écran de notre bowling

LA PRISE EN MAIN DU LOGICIEL

La première étape du projet a été de se familiariser avec le logiciel qui était nouveau pour nous. Le logiciel utilisé est : Unity 3D. Il permet de concevoir du contenu ou des applications en 2D ou 3D ; comme des jeux vidéo.

Il fallait comprendre comment créer et ajouter les différents éléments de la piste et du décor. Pour cela nous avons dû penser à plusieurs paramètres.

  • Les matériaux utilisés pour les différents éléments.
  • Les dimensions des objets : il fallait faire en sorte que les quilles fassent tomber celles de derrière.
  • Bien penser aux forces qui pouvaient s’appliquer à la boule : qu’elle soit assez lourde...

Ensuite, il était nécessaire d’utiliser un langage de programmation : le C# (C sharp). Ce langage est spécialement utilisé pour développer des applications de bureau ou des jeux. Or nous ne l’avions jamais utilisé et avons dû nous y adapter. En effet, il était nécessaire de programmer certains éléments, par exemple :

  • Pour ajouter du son
  • Mettre des rebonds sur les bords des pistes...

Capture d’écran interface Unity

LA CONCEPTION de La piste

La première étape de notre conception a été la piste de bowling. Avec l’aide de notre professeur M. Richard, nous avons pu importer une piste de bowling qu’il avait créée. Ensuite, grâce à de la programmation C#, nous avons pu dupliquer cette piste et les espacer correctement.

Le bowling

L’étape suivante a été de créer la pièce du bowling. Concrètement, nous avons ajouté des murs, le sol et le plafond. Mais ce n’était pas si facile ; il fallait encore une fois programmer un script permettant de lier les cinq éléments ensemble. Nous avons ensuite ajouté de la couleur aux murs et au sol, et des petites lumières.

Les personnages

Pour rendre notre bowling plus réel, nous avons ajouté quelques personnages. Grâce au site internet Mixamo. Il fournit des personnages 3D animés compatibles avec Unity 3D. Il y avait un large choix de personnages et des animations variées que nous pouvions attribuer aux personnages.

Capture d’écran site Mixamo : Accéder au site

LA RÉALITÉ VIRTUELLE (VR)

La VR ne se contente pas d’afficher une image, elle remplace l’environnement réel par un environnement numérique à 360°. Le casque et les manettes permettent de suivre les mouvements de la tête et des mains, ce qui permet au joueur de se déplacer sur la piste et de mimer le geste du lancer de façon naturelle, ce qu’on appelle le Tracking (suivi).

De plus, pour que l’immersion fonctionne, tout doit être à la taille réelle. Par exemple, une quille de bowling mesure environ 38 cm. Si elle est trop grande ou trop petite dans Unity, l'utilisateur aura une sensation de vertige ou d'irréalisme.

La physique au cœur du jeu

Dans Unity, un objet sans moteur physique n'est qu'un "fantôme" : il n'a pas de poids et passe à travers les murs. C'est alors ici que le logiciel fait tout le travail avec 3 éléments cruciaux :

Le Rigidbody (corps physique) :

Chaque quille et la boule doivent posséder un composant Rigidbody. C'est ce qui indique à Unity que l’objet solide est soumis à la gravité.

Une boule de bowling est bien plus lourde qu'une quille. Si on donne la même masse aux deux, la boule rebondira sur les quilles au lieu de les renverser. Nous avons alors trouvé le bon équilibre afin de mettre un poids assez lourd pour faire tomber les quilles mais en restant réaliste pour avoir une meilleure qualité de jeu pour les joueurs.

Les Colliders (La zone de contact) :

Il s’agit de l’option qui définit la forme physique des objets. Pour que la boule puisse percuter les quilles, le moteur de jeu utilise des boîtes de collision (Colliders).

Imaginez que chaque objet est enveloppé dans une "armure" invisible, quand l'armure de la boule entre en contact avec celle d'une quille, le moteur calcule instantanément le point d'impact. C'est grâce à ces enveloppes que les objets ne s'interpénètrent pas et que le choc peut avoir lieu.

La détection du strike :

La physique sert également à compter les points. En effet, contrairement à la réalité où vos yeux voient que la quille est tombée, Unity doit le "savoir" par le calcul.

Nous avons considéré une quille comme tombée si son angle par rapport à la verticale dépasse un certain seuil, nous l’avons posé à 90°.

LES COMPLICATIONS ET LES SOLUTIONS

Le passage de l'idée à la réalisation sur Unity 3D n'a pas été sans embûches. La principale difficulté a résidé dans la prise en main du logiciel, qui présente une interface extrêmement riche et une logique de composants (Rigidbody, Colliders, Scripts) parfois surprenante au début.

Nous avons également rencontré des complications majeures lors du réglage de la physique. Au départ, notre boule de bowling traversait le sol ou faisait s'envoler les quilles de manière irréaliste à cause d'une mauvaise configuration des couches de collision et de masses mal proportionnées.

Pour régler les problèmes de collisions aberrantes, nous avons mis en place des Physics Materials personnalisés. En ajustant la friction et en réduisant le rebond des quilles, nous avons obtenu un comportement beaucoup plus lourd et réaliste.

LE CONCOURS BOWLING

Afin de présenter notre projet à nos camarades de promotion et de nous amuser, nous avons organisé un concours de bowling avec eux. C’était un moment de partage très sympathique et qui a amusé tout le monde. Nous avons pensé qu’organiser ce concours changeait des séances classiques de projets et permettait à nos camarades de faire une petite pause durant leur travail.

CONCLUSION ET REMERCIEMENTS

En définitive, ce projet nous a permis de développer de nombreuses compétences : en conception et programmation notamment. Mais il nous aura aussi appris à travailler en équipe avec des problèmes divers à résoudre, tout en s’amusant avec les différents éléments personnalisables sur le logiciel. Nous remercions grandement notre professeur : Monsieur Paul Richard, pour son aide, son implication et son enthousiasme tout au long de nos séances de projet, ainsi que nos camarades pour leur intérêt et participation à notre concours.