Projet 2013 : HIT THE MOLE Florent GRUÉ, élève de, en collaboration avec Julien ALLANIC, élève de. Membre de l'équipe pédagogique : - Jérôme CANTALOUBE - Laurent BERNARD - Yann BERTRAND Dossier : Projet d'i.s.n Page 1 / 11
Table des matières I. Présentation du Projet...3 Problématique : Comment exploiter l'aspect ludique de la réalité augmentée?...3 Les solutions existantes :...3 II. Notre cahier des charges :...4 Notre environnement de travail et nos source d'informations :...4 III. La répartition des tâches :...5 IV. Ma démarche et mon travail personnel :...6 V. Intégration et Validation...9 VI. Bilan et perspectives :...10 Dossier : Projet d'i.s.n Page 2 / 11
Présentation du Projet Problématique : Comment exploiter l'aspect ludique de la réalité augmentée? Le projet «Hit The Mole»,vous est présenté par les élèves Florent GRUÉ et Julien ALLANIC en classe de Terminale S4. «Hit The Mole» est parti de la découverte de la réalité augmentée au début de l'année. Nous avons tout de suite été captivé par son énorme potentiel ludique, déjà partiellement utilisé par de nombreux développeurs. Fort de son caractère innovant et ludique nous avons saisi l'occasion, offerte par les projets de cette nouvelle matière,afin de travailler sur la réalité augmentée. Nous avons alors eu l'idée de créer un jeu basé sur ce thème. Il repose sur un principe très simple, le joueur doit taper sur la sphère présente sur un des marqueurs alignés devant vous afin qu'elle apparaisse le moins de temps possible sur l'écran. Ce jeu a été créé pour tester votre rapidité, son but est donc d'affiner vos sens et vos réflexes. Par souci d'ergonomie, on a préféré disposer les marqueurs en arc de cercle autour de l'utilisateur. Malheureusement nos premières ambitions dépassaient de loin nos compétences et pour réaliser le projet dans le temps imparti, nous avons du amputer certaines parties du projet pour assurer une production finale décente. Les solutions existantes : De nos jours, il existe de nombreuses applications de la Réalité Augmentée qui est exercé dans des domaines divers et variés. En effet, on retrouve l'utilisation de la Réalité Augmentée dans le domaine de l'industrie ( qui permet par exemple l'insertion de prototypes automobiles n'existant Dossier : Projet d'i.s.n Page 3 / 11
que dans des décors réels filmés et de les faire interagir avec les éléments afin de visualiser l'intégration du modèle dans le paysage réel ), de la communication et des jeux vidéos. Notre cahier des charges : Notre idée directrice était de créer un jeu de réflexe sur ordinateur exploitant la réalité augmentée à la portée de tous. Pour cela, nos contraintes sur ce projet était de répondre à 7 besoins principaux : Faciliter l'accès au jeu Proposer une interface graphique et auditive originale Afficher un flux vidéo Exploiter la réalité augmentée Créer une interaction entre l utilisateur et les marqueurs Programmer le jeu sous Processing Jouer sur les réflexes de l'utilisateur Notre environnement de travail et nos source d'informations : Nous avons travaillé sur Processing que nous avons découvert cette année avec l'utilisation de nouvelle librairie telle que GSvideo, OBJloader Nous avons également utilisé une caméra pour assurer un flux vidéo avec une bonne qualité et des marqueurs pour l'exploitation de la réalité augmentée. Les moyens que nous avons mis en œuvre, afin de réussir ce projet sont un travail assidu en cours, puis, en vue de la complexité du projet, nous avons pris la décision de prendre des heures supplémentaires sur notre temps personnel dans le but de finir notre projet dans le temps imparti. Nous nous sommes appuyé sur des solutions existantes pour la partie détection et un principe de jeu connu de tous où le joueur doit frapper sur les taupes qui apparaissent successivement devant lui. Dossier : Projet d'i.s.n Page 4 / 11
La répartition des tâches : Tâches Planning (10 séances) Noms Création d'un menu et des options permettant de quitter le jeu 2 Julien Allanic Apparition des objets 3D 1 Florent Grué Détection des patterns 3 Florent Grué Système de points 2 Florent Grué Recherche d'un logiciel adéquate pour exploiter la réalité augmentée. 3 Julien Allanic et Florent Grué Élaboration des règles 2 Julien Allanic Insertion de contenus audios 2 Julien Allanic Alternance des marqueurs 1 Florent Grué Insertion du programme de détection et du flux vidéo dans le projet final 1 Julien Allanic Nous avons collaboré en utilisant la plate-forme github ainsi qu'étherpad afin de partager nos programmes, nos remarques et les modifications apportés. De plus, lors de notre travail personnel, nous avons travaillé en utilisant les communications téléphoniques et plus récemment, Google Drive. Dossier : Projet d'i.s.n Page 5 / 11
Ma démarche et mon travail personnel : Tout d'abord, lors de mes premières séances, j'ai essayé de trouver avec mon collaborateur, une librairie fonctionnant sous Processing permettant d'exploiter la réalité augmentée au moyen d'une simple webcam. Nous avons du en changer à chaque nouvelle séance pendant trois semaines, et à chaque fois, retrouver nos marques sur de nouvelles librairies. Nous avions en effet des problèmes avec l affichage de la vidéo sur Processing,et avec la détection de la caméra, ce qui nous a fait perdre pas mal de temps. Nous avons enfin sélectionné Nyar4psg et GSVideo, que j'avais pu valider sur mon ordinateur portable et qui fonctionnaient parfaitement et permettaient une détection des marqueurs de qualité. Nyar4psg, particulièrement offrait des sketchs de test MultiMarker, que mon partenaire a pu réutiliser pour sa partie sur la détection des marqueurs. Après ce léger retard accumulé, j'ai commencé la création de mon menu afin de rendre le jeu plus structuré et de créer une atmosphère joyeuse. Nous nous sommes mis d'accord avec mon collaborateur sur la taille de notre application, et j'ai commencé à coder les différentes touches nécessaires à mon menu. J'ai créer une variable «b» et je l'ai l'associé à chacune des touches du menu grâce à la fonction mousepressed. En effet lorsque «b=0» le programme charge le menu principal et ses différentes animations : void menu() Lorsque «b= 1», le programme lance la vidéo et le jeu peut alors commencer : void play() Lorsque «b=2», les règles détaillées du jeu sont alors affichées afin d'expliquer les bases de Hit the mole au joueur : void aide() Et enfin lorsque «b=3», le jeu présente son écran de fin et ferme l'application au bout de quelques secondes : void quitter() Dossier : Projet d'i.s.n Page 6 / 11
Avec la création des touches, j'ai inséré divers effets dans la page du menu tel que le changement du curseurs en une image : rene =loadimage("renee.png"); // charge l'image : Renee.png cursor(rene,0,0); // définit l'image rene comme curseur le déplacement d'une petite taupe sur le côté droit de l'arrière plan : y = y + speed; // incrémente la variable y de la valeur speed if (y > width-300 ) { // lorsque y est inférieur à une certaine valeur y = -200; // Il retourne à la valeur 200 } image(taupe, x, y, 220, 350); // l'image taupe suit les coordonnées x et y J'ai eu du mal a créer le mouvement par rapport à la largeur de la fenêtre mais après plusieurs essaies j'ai réussi à créer un mouvement fluide.le déplacement de la taupe ayant un effet sur l'arrière plan.mais j'ai compris que si je voulais assurer de la fluidité à mon projet, tout en gardant le contenu, je devais utiliser mon ordinateur portable personnel légèrement plus puissant. J'ai également retrouver le problème du nombres d'opérations réalisé par l'ordinateur lors des tempos. Voici l'écran du menu : curseur de la souris Un des boutons du menu Taupe se déplaçant verticalement Dossier : Projet d'i.s.n Page 7 / 11
r J'ai également eu quelques difficultés à deux autres moments du projet. Le premier étant le fait d'insérer une tempo, après m'être renseigné sur de nombreux forums sur le sujet, j'ai finalement trouvé une solution.elle consiste a créer une variable et à l'incrémenter à chaque tour dans la void draw().cela me permet de faire des pauses d'une durée infini mais la longueur de celles-ci sont fluctuantes, elles dépendent également de la puissance de l'ordinateur.mais cette solution était la seule à marcher. Grâce à cette tempo j'ai pu créer des fondus entre les différentes issues du menu de forme différentes.j'ai également trouvé une utilité à cette tempo, au niveau de l'écran de fin. En effet le programme se ferme lors de l'appuie sur la touche et d'un certain temps d'écoute de la musique de fond. Le second étant de trouver comment intercaler les différentes pistes audio sans interférences les unes entre les autres.en effet pour les insertions de sons j'utilise la librairie par défaut de Processing,Minim audio.très facile d emploi, elle n 'offre néanmoins pas un contrôle facile des différentes pistes audio utilisés.je devais alors arrêté le son à l' écoute sans arrêter tout le processus. Il me fallait donc placer les (nom du son).close() au bon endroit dans le code. J'ai choisis de les mettre dans les mousepressed afin d'être sur de ne les appeler qu'une seule fois à chaque fois que la souris est enfoncé. Les règles ont été faite sur mesure pour notre jeu, après approbation du texte par mon collaborateur, et grâce à la fonction texte de Processing,j'ai pu les insérer dans mon programme afin de guider le joueur débutant vers son premier défi, le tout dans un univers très sobre, contrastant avec les autres issues. En résumé je me suis occupé de tout ce qui était autour du jeu afin de le rendre moins fade. Dossier : Projet d'i.s.n Page 8 / 11
Intégration et Validation Voici le point de jonction de nos travaux : Nos travaux se complètent totalement, un jeu sans interface est sans goût, tandis qu'un menu sans jeu n'a aucun sens.j'ai toujours travaillé dans l'idée de mettre en valeur le travail de mon collaborateur grâce à mes quelques effets de style. Nous avons tous deux respecter le cahier des charges, en programmant ce jeux chaque aspect à été traité part l'un d'entre nous.a part le manque de taupes apparaissant sur nos marqueurs,nous n'avions juste pas pu finir ce point-là. Notre projet valide donc notre cahier des charges et mon collaborateur et moi même n'avons jamais cesser d'échanger au sujet de celui-ci notamment pour les règles. J'ai personnellement réaliser les différents test sur mon interface tel que le test de détection touches, des sons et les nombreux test pour calibrer ma tempo. Les résultat étant satisfaisant, je ne m'inquiète pas. Dossier : Projet d'i.s.n Page 9 / 11
Bilan et perspectives : Le projet cette année en I.S.N m'a beaucoup appris. En effet, j'ai pu développer ma compréhension de la programmation sous Processing, en utilisant de nouvelles librairies par exemples. La découverte du son et de la vidéo sur Processing était une nouveauté pour moi et j'ai pris beaucoup de plaisirs à utiliser Minim. J'ai également approfondi ma connaissance de certains logiciels tel que Audacity ou paint.net.ce projet m'appris à être plus rigoureux dans ma méthode de travail, j'ai toujours chercher à améliorer mon programme, je ne me suis jamais contenter de ce que j'avais accomplie. Et finalement ce projet à réussi à m'apporter une motivation supplémentaire afin de réussir ma fin d'année. Le travail en équipe quand à lui, a également été très important pour la réussite de nôtre projet. Lorsque nous avions le moindre doute sur un code ou une fonction, nous étions prêt à nous aider et nous corriger mutuellement lorsque par exemple, nous oublions des détails ou lorsque nous nous écartions du cahier des charges.de plus l'utilisation de Github et d'étherpad a réellement facilité la communication et l'échange de programme au sein du groupe. Je pense que tout seul, le travail n'aurait pas été aussi bien réalisé car pour deux nombreuses questions, deux avis valent mieux qu'un. J'ai également à plusieurs évolutions possibles tel que : -L'insertion d'une mini-jeu dont l'accès se fera par le menu, afin de casser la routine de ce jeu et donner plus de contenue aux joueurs.ce mini-jeu utilisera si possible la réalité augmentée afin de rester dans l'esprit du jeu _ Amélioration du menu, afin de le rendre plus dynamique, plus chaleureux. _Pouvoir exporter le jeu sous d autres plates-formes _Créer une touche option permettant de modifier à son bon vouloir l'interface Dossier : Projet d'i.s.n Page 10 / 11
Diffusion du projet : Voici le lien de nôtre Github :https://github.com/codelab-info/allagru/ Notre creative commons : Vous êtes libres de: - Partager reproduire, distribuer et communiquer l œuvre Selon les conditions suivantes : - Paternité Vous devez attribuer l œuvre de la manière indiquée par l auteur de l œuvre ou le titulaire des droits (mais pas d une manière qui suggérerait qu ils vous soutiennent ou approuvent votre utilisation de l œuvre). - Pas d utilisation commerciale Vous n avez pas le droit d utiliser cette œuvre à des fins commerciales. - Pas de travaux dérivés Vous n avez pas le droit de modifier, de transformer ou d adapter cette œuvre. Dossier : Projet d'i.s.n Page 11 / 11