• Tamagotchi

     

    ・゚: *✧・゚:* TAMAGOTCHI *:・゚✧*:・゚✧ 

     

    Lucie AMARA et Sousada BOUALAPHA 

    L2 EVMAN

     

     

    ⭒☆━━━━━━━━━━━━━━━☆⭒ 

     

    Description du projet

    Nous voulions réaliser un dispositif interactif comportant des capteurs avec un concept simple dans sa réalisation sans pour autant valuer la qualité esthétique ou divertissante du dispositif. Nous avons donc eu l’idée de baser notre projet sur un jouet qu’on a pu côtoyer durant notre enfance : le tamagotchi. Le concept de base est simple : s’occuper d’un petit animal virtuel (le nourrir, laver, jouer avec, l’éduquer etc.) pour qu’il puisse grandir et vivre le plus longtemps possible. Et comme tous les tamagotchis qui se respectent… ceux-ci tombent malades et meurent beaucoup trop facilement et rapidement. Il faut donc bien s’en occuper et être attentif.

    Notre but était donc de créer un dispositif interactif reproduisant le concept de base du jeu. Nous avons décidé que le jeu disposerait de 3 jauges régulant la santé de la petite créature dont le joueur devait s’occuper : la faim, l’hygiène et le divertissement. Un capteur serait associé à une jauge qui baisse dans le temps ; l’action d’un de ces capteurs ferait augmenter la jauge correspondante. Si l’une des jauges se vide complètement alors une fenêtre popup apparaîtrait signalant au joueur avec un son d’alarme que la créature est tombée malade. Le joueur dispose d’un délai réduit afin d’appuyer sur un bouton pour le soigner et ainsi reprendre la partie après que les jauges se soient réinitialisées au maximum. Cependant, si le joueur n’appuie pas sur le bouton à temps - et donc ne soigne pas la créature – alors celle-ci meurt laissant le joueur devant une image affichée à l’écran montrant la tombe ainsi que le fantôme de la créature, le tout avec une musique triste en fond. Le joueur peut recommencer l’expérience en rappuyant sur un bouton.

    Nous avons ainsi pensé notre dispositif tel quel : nous allions créer l’interface graphique sur Processing et le coupler avec notre patch Max à l’aide d’une communication OSC. Les capteurs seraient disposés devant l’ordinateur qui afficherait les images du jeu à l’écran.

    Afin de recréer l’ambiance générale rétro du jeu, nous avons repris des décors du jeu Tamagotchi On ainsi que des musiques venant de la version Game Boy du jeu Tamagotchi. Les sprites de la créature ont été réalisés par Lucie.

     

    Tamagotchi

      

     Répartition du travail

    Lucie : conception du jeu, sprites de la petite créature, code Processing

    Sousada : conception du jeu, code Processing, patch Max

     

     Schéma fonctionnel

    Avant de passer à la phase de réalisation du jeu, nous avons établi un schéma fonctionnel du dispositif qui se présente comme ceci :

     

    Schéma fonctionnel Tamagotchi

     

     Explication technique

    N’ayant pas des connaissances très élaborées en ce qui concerne Max et Processing, nous nous excusons par avance des possibles immondices dont vous allez être témoins en voyant notre code. Nous avons fait tout ce qu’on a pu avec les ressources dont nous avons pu disposer et notre compréhension générale de la programmation. En espérant que notre explication sera claire... (it ain't much, but it's honest work)

     

    Tamagotchi 

    Vue d'ensemble du patch 

    Tamagotchi

    Détail du patch et code Processing

     

    Ici, nous pouvons voir les parties du patch qui régulent les barres de faim et d’hygiène ainsi que le soin (dont on expliquera le fonctionnement plus loin).

    En ce qui concerne la barre de faim (la partie orange du patch), les données du capteur sont reçues à travers l’objet ctlin. Lorsque le capteur est détecté, le slider réglé à un seuil de maximum de 0.2 (vous verrez que cela va nous poser problème plus tard) s’active et envoie cette valeur de 0.2 à la valeur ‘plus_faim’ qui sera utilisé dans la partie du code Processing (dans ‘public void setBar_1’) et qui fera augmenter la barre de faim de 0.2 (sur 100).

    À noter que nous utilisons la méthode ‘osc.plug’ pour faire communiquer Processing et Max entre eux ; toutes les données utilisées dans Max sont envoyés sur Processing à travers l’objet ‘upsend localhost 8000’ et reçues dans les public void correspondantes.

    Cette même valeur est utilisée afin de changer le décor du jeu. En effet, nous avons ajouté une condition qui, lorsque que l’objet int en dessous du slider est strictement égal à 0.2, alors l’objet int en dessous de la condition envoie la valeur de 1 à ‘bg_cuisine’ afin de changer le décor - qui est réglé par défaut sur Processing au bg[0] (correspondant à la chambre) - à bg[1] (correspondant à la cuisine) dans le ‘public void setBg_1’. De plus, ‘bg_cuisine’ permet aussi de remplacer les sprites de la créature neutre en la créature mangeant une pomme.

    Le procédé est le même pour la barre d’hygiène et de divertissement.

     

    Tamagotchi 

    Détail du code pour l'incrémentation des barres et du changement de décor

     

    Pour la partie soin (la partie verte du patch), lorsque le bouton est activé, le slider réglé de 0 à 1 envoie la valeur 1. Selon la condition présentée dans cette partie du patch, si l’objet int est strictement égal à 1 alors la fonction pour soigner la créature est activée (réinitialisation des barres de faim, d’hygiène et de divertissement, retour au décor de base) sinon il ne se passe rien et l’écran passera à l’image de la mort de la créature après que le délai soit passé.

     

    Tamagotchi

    Code pour l'apparition de la popup de maladie et des soins

     

    Tamagotchi

    Code pour l'apparition de l'écran de la mort de la créature

     

    Mais alors, quel est le problème que pose les sliders réglés à 0.2 maximum ?

     

    En réglant ces objets sur un seuil très réduit, lorsque l’on installe les capteurs, ceux-ci deviennent extrêmement sensibles et un brin de mouvement peut activer le capteur. Le capteur peut même s’activer tout seul sans qu’on ne fasse rien vu que le seuil du slider n’est pas réglé correctement.

    C’est ce qu’il s’est passé avec notre capteur de mouvement pour la barre de divertissement qui ne baissait absolument pas et actionnait le décor correspondant au divertissement à tout va car le capteur était devenu « hypersensible » à cause de ces mauvais réglages de slider (et possiblement mauvais codage par rapport à Processing mais c’est un autre sujet).

     

    Tamagotchi

    Partie du patch pour la barre de divertissement corrigée

     

    Nous avons donc eu recours à l’aide de Mme Chiri pour corriger nos problèmes de dérèglements de capteur, slider etc.

    La solution à ce problème était, tout d’abord, de réinitialiser les valeurs du slider pour qu’il ait un comportement normal puis d’ajouter un seuil afin qu’il envoie la valeur de 0.2 lorsque ce seuil est dépassé. Ici, si la valeur du slider dépasse 68 (sur 127) alors on envoie la valeur 0.2 à la valeur ‘plus_activite’ ainsi qu’à la condition pour incrémenter la barre de divertissement de 0.2 et pour changer le décor et sprites de la créature à ceux correspondant au divertissement sur Processing.

    Cette solution aurait très bien pu être appliquée sur les deux autres parties du patch correspondant à la faim et à l’hygiène mais par manque de temps, nous nous en sommes tenues au patch que nous avons actuellement.

     

     Liste des capteurs

    Nous avons eu besoin :

    • du capteur capacitif branché à une orange pour simuler la faim

    • du capteur de frottement pour simuler le fait de laver la créature

    • du capteur de mouvement pour simuler l’activité/le divertissement

    • du bouton qui sert à soigner la créature et à recommencer le jeu

     

     Schéma des branchements matériels et photo du dispositif

     

    Tamagotchi

     

     Vidéo de démonstration

     

    « Radio Libre 2.0John Punch »

    Tags Tags : , , , , , , , ,
  • Commentaires

    Aucun commentaire pour le moment

    Suivre le flux RSS des commentaires

    Vous devez être connecté pour commenter