Loup Garou Manager
Transcription
Loup Garou Manager
Loup-Garou Manager Un créateur d'ambiance pour le jeu de rôle "Les Loups Garous de Thiercelieux" 1 Sommaire Introduction ............................................................................................................................... 4 I. Les loups garous de Thiercelieux ............................................................................................ 5 1. Univers du jeu .................................................................................................................... 5 2. Déroulement d'une partie ................................................................................................. 5 a. La préparation ................................................................................................................ 5 b. La nuit ............................................................................................................................ 6 c. Le jour ............................................................................................................................ 6 d. La fin de la partie ........................................................................................................... 6 3. Ambiance du jeu et cahier des charges sonores. ............................................................... 7 II. Les outils utilisés .................................................................................................................... 8 1. Guitar Pro 6 ....................................................................................................................... 8 2. MidiYoke ............................................................................................................................ 8 3. Kontakt 3 ........................................................................................................................... 9 4. East West Quantum Leap .................................................................................................. 9 5. SAVIHost ............................................................................................................................ 9 6. Adobe SoundBooth CS5 ................................................................................................... 10 7. Montage sonore final....................................................................................................... 10 8. Adobe Flash Builder CS5 .................................................................................................. 11 III. Le travail sonore ................................................................................................................. 12 1. Généralités sur la composition musicale ......................................................................... 12 2. Écran titre ........................................................................................................................ 12 3. Le thème de la nuit et ses variantes ................................................................................ 13 a. Le thème de base ......................................................................................................... 14 b. Les Loups Garous ......................................................................................................... 14 c. La Voyante ................................................................................................................... 15 d. La Sorcière ................................................................................................................... 15 e. Cupidon et les Amoureux ............................................................................................. 17 f. Le Salvateur .................................................................................................................. 17 g. La Petite Fille ................................................................................................................ 18 h. Le Simple Villageois...................................................................................................... 19 4. Les thèmes du jour .......................................................................................................... 19 a. Vote classique .............................................................................................................. 19 b. Vote serré .................................................................................................................... 20 2 5. Les thèmes de victoire ..................................................................................................... 21 a. La victoire des Villageois .............................................................................................. 21 b. La victoire des Loups Garous ....................................................................................... 21 c. La victoire des Amoureux ............................................................................................. 22 d. L'égalité........................................................................................................................ 22 IV. Développement du logiciel ................................................................................................. 23 1. Méthodes de programmation .......................................................................................... 23 a. Gestion des personnages ............................................................................................. 23 b. Gestion des joueurs et programmation événementielle ............................................. 25 c. La gestion d'une partie : la classe Village ..................................................................... 27 d. La gestion des sons : les classes SoundManager, SoundData et les SoundEvents ....... 30 e. La classe Game ............................................................................................................. 32 V. Analyse du rendu final ......................................................................................................... 33 1. Comparaison avec le cahier des charges ......................................................................... 33 2. Améliorations futures ...................................................................................................... 33 3. Apports personnels .......................................................................................................... 34 Conclusion ............................................................................................................................... 35 Table des figures ...................................................................................................................... 36 3 Introduction Dans le cadre de l'UE Son et Musique, mon projet a été de créer un créateur d'ambiance pour le jeu de rôle "Les Loups Garous de Thiercelieux". Étant un joueur plutôt régulier de ce jeu, créer un ambianceur était un projet que j'avais déjà en tête depuis longtemps, mais que je n'avais jamais pu réaliser, faute de temps. Pourtant, l'impact de l'ajout de musiques pour mettre les joueurs dans l'ambiance est indéniable, et, lors de nos parties, nous n'hésitions pas à lancer une playlist de morceaux choisis pour l'occasion. Cependant, les limites de ces musiques étaient qu'elles ne collaient pas toujours à la situation : une musique calme et angoissante n'encourageait pas les débats endiablés qui se déroulaient autour de la table. La nécessité d'un ambianceur s'est donc fait sentir, et un tel outil étant totalement introuvable sur internet (le jeu ayant pourtant une énorme communauté), j'ai profité de ce cours de Son et Musique pour le créer. Étant moi-même passionné par la musique, et compositeur à mes heures perdues 1, ce projet est également pour moi l'occasion de faire juger mes compositions par des professionnels de la musique, et recevoir des conseils afin de m'améliorer. C'est d'ailleurs pour cette raison que, malgré les conseils des professeurs, je me suis lancé seul sur ce projet : je n'utilise pas des méthodes de travail conventionnelles car j'ai pris l'habitude d'utiliser mes outils, que je présenterai dans ce rapport. Voulant être jugé sur ma musique afin de m'améliorer, j'ai préféré continuer à les utiliser, plutôt que d'être bridé par un logiciel que je ne maîtrise pas, et donc être jugé sur un résultat qui n'aurait pas reflété mon réel niveau. De plus, ce projet étant quelque chose qui me tenait à cœur, je ne me voyais pas travailler avec d'autres personnes, qui n'auraient pas été aussi proches du sujet que moi. Dans ce rapport, nous allons dans un premier temps expliquer l'univers et les règles du jeu, afin de cerner l'ambiance à donner. Nous allons ensuite présenter les outils que j'ai utilisés, avant de nous attarder sur une analyse de chacune des musiques que j'ai créées pour ce projet. Une fois les musiques expliquées, une partie sera consacrée au développement et à la strcuture du logiciel. Enfin, nous conclurons sur les problèmes qui se sont posés lors de la réalisation de ce projet et les améliorations futures possibles. 1 Et certaines mauvaises langues pourraient prétendre que j'en perds énormément... 4 I. Les loups garous de Thiercelieux Les loups garous de Thiercelieux est un jeu de rôle se jouant avec des cartes spéciales, chacune désignant l'identité d'un joueur. Les règles de ce jeu sont relativement simples, mais le jeu en lui-même peut parfois être très complexe de part sa dimension stratégique et psychologique. Dans cette partie du rapport, nous allons expliquer l'univers et les règles du jeu, afin de pouvoir ensuite en extraire les différentes phases de jeu et leur trouver une ambiance convenable. 1. Univers du jeu L'histoire du jeu se déroule dans le petit village de Thiercelieux, un hameau paisible par le passé, mais qui est aujourd'hui atteint d'une terrible malédiction : certains de ses habitants, aussi sympathiques qu'ils soient en journée, profitent de la tombée de la nuit pour se transformer en lycanthropes mangeurs de chair humaine, et dévorer un des villageois afin de satisfaire leur appétit nocturne. Devant ce problème, le maire du village de Thiercelieux à décidé que chaque jour, au lever du soleil, un débat réunissant tous les habitants encore vivants allait être tenu. Durant celui-ci, chaque villageois doit voter pour une personne qu'elle pense être un loup garou. La personne ayant le plus de voix contre elle est alors exécutée sur la place du village, pendant que le reste du village retourne se coucher, le cœur serré en espérant avoir fait le bon choix. Figure 1 : Le dos de chaque carte de personnage. 2. Déroulement d'une partie Le jeu se joue avec un minimum de 9 personnes : 8 joueurs et un maître du jeu. Le rôle du maître du jeu est de guider les joueurs et lancer les différentes phases de jeu. Une partie est divisée en 4 étapes : la préparation, la nuit, le jour, et la fin. Nous allons décrire rapidement chacune de ces étapes afin de mieux comprendre le jeu en lui-même. a. La préparation Le maître du jeu dispose de plusieurs cartes représentant chacune une identité. Ces identités peuvent être un Loup Garou ou un Simple Villageois, par exemple, mais nous verrons plus tard qu'il existe de nombreux autres personnages. Durant la phase de préparation, le maître du jeu doit mélanger les cartes et les distribuer, face cachée, à chacun des joueurs, qui la regarde et la retient 5 sans la montrer aux autres : un joueur ne connaît que sa propre identité, c'est là tout l'intérêt du jeu. Les Loups Garous sont en très grande infériorité numérique par rapport aux villageois : il y a en moyenne un Loup Garou pour quatre Villageois. Lorsque les cartes distribuées, les joueurs doivent élire un Maire du village, qui aura la tâche de départager les joueurs en cas d'égalité lors du vote du village. Si le Maire du village meurt, il doit désigner un nouveau Maire qui assurera cette fonction jusqu'à la fin de la partie (ou jusqu'à sa mort). b. La nuit Une fois la phase de préparation terminée, le maître du jeu annonce la tombée de la nuit. Tous les joueurs doivent alors fermer les yeux, et les garder ainsi jusqu'à ce que le maître du jeu leur demande de se réveiller, ou que le jour se lève. Le maître du jeu appelle successivement toutes les identités qui doivent être réveillées pendant la nuit, comme les Loups Garous, qui doivent désigner la cible de leur fringale nocturne, ou la Voyante, un personnage qui à le don de pouvoir connaître chaque nuit l'identité d'un joueur en demandant au maître du jeu de retourner sa carte pendant que le reste du village est endormi. Les identités sont réveillées séparément, de manière à ce que personne ne puisse savoir qui est qui. Ainsi, lorsque la Voyante se réveille, elle est la seule à avoir les yeux ouverts. Par contre, les Loups Garous se réveillent tous en même temps, afin de se reconnaître et de prendre une décision collective. c. Le jour Une fois que toutes les identités ont été appelées, tous les habitants du village se réveillent à l'appel du maître du jeu, et on découvre qui a été dévoré pendant la nuit. Chaque joueur doit alors exposer son point de vue et ses suspicions, tout en essayant de se faire discret : les Loups Garous redevenus humains participent également au débat, en envoyant de fausses pistes, et ont tout intérêt à dévorer les personnes un peu trop bavardes à la prochaine nuit. A la fin du débat, chaque joueur vote pour une personne qu'il pense être un Loup Garou. La personne qui a le plus de votes contre elle est éliminée, et on retourne sa carte pour dévoiler son identité. Cette personne a alors le droit d'assister au reste de la partie en gardant les yeux ouverts, mais il lui est interdit de dire le moindre mot, ou de donner des indices aux joueurs encore vivants. Une fois la cible des votes exécutée, la nuit retombe, et tout le village doit se rendormir. On recommence alors la phase de nuit. d. La fin de la partie Le cycle jour/nuit décrit plus haut se déroule jusqu'à ce que l'un des clans à éliminé l'autre : les Loups Garous gagnent lorsqu'ils ont éliminé tous les Villageois, et inversement, les Villageois remportent la partie lorsqu'ils ont éliminé tous les Loups Garous. Cependant, lorsque nous allons 6 présenter les personnages, nous allons voir qu'il peut exister d'autres clans, et que la partie peut se terminer sur une situation d'égalité. 3. Ambiance du jeu et cahier des charges sonores. L'atmosphère générale du jeu se veut donc plutôt sombre et stressante, et les musiques devront aller dans ce sens. Comme nous venons de l'expliquer, il y a 4 phases de jeu à ambiancer. La phase de préparation sera constituée d'une musique simple qui passera en boucle du démarrage du jeu au lancement de la partie. Le rôle de ce thème sera de plonger les joueurs dans l'ambiance oppressante et pleine de suspense du jeu. Pour la phase de nuit, j'ai pensé à l'utilisation d'une musique sera dynamique. En effet, plusieurs personnages se réveillent les uns après les autres, et chacun devront avoir leur thème qui leur est propre, afin de donner à la musique un côté informatif. Cependant, ces thèmes devront malgré tout suivre une ligne directrice identique, afin de garder l'idée d'une situation identique pour chacun. Il devra donc y avoir une piste générale pour le thème nocturne, qui sera jouée pendant l'intégralité de la phase de nuit, mais une seconde piste, propre à chaque personnage, sera jouée par dessus. De plus, afin d'animer le réveil de chaque personnage, un bruitage leur correspondant devra également être joué. La phase de jour sera composée de deux musiques, jouées selon la situation du village : une musique sera dédiée à un débat dans des conditions normales, et une autre, plus dynamique, prendra le relais lorsque la partie sera plus serrée, et que le résultat du vote risque d'être capital pour la suite de la partie. Enfin, pour la phase de fin, il faudra un thème musical pour chaque cas de victoire, qui sont, comme nous allons le voir, au nombre de 4. 7 II. Les outils utilisés Comme dit dans l'introduction, les outils utilisés dans ce projet sont différents de ceux vus en cours. En effet, ayant l'habitude d'utiliser certains outils, et voulant avoir un avis professionnel sur mon travail, j'ai préféré continuer à les utiliser afin de ne pas être bridé dans ma composition, et avoir un jugement révélateur de ce dont je suis capable. Ces logiciels ne sont sûrement pas les meilleurs, mais j'y suis habitué. Dans cette partie, nous allons donc présenter les différents outils utilisés dans la conception des musiques et des sons. 1. Guitar Pro 6 2 Figure 2 : Le logo de démarrage de Guitar Pro 6 Guitar Pro 6 est un logiciel de création et d'édition de tablatures et de partitions virtuelles, développé par Arobas Music. Initialement créé pour gérer des partitions et tablatures de guitare, il s'est, au fil de ses versions, ouvert aux autres instruments. Il permet également de jouer les morceaux que l'on compose en utilisant soit sa propre banque de sons, soit en envoyant le son MIDI sur d'autres gestionnaires d'instruments virtuels. Cependant, cette dernière fonctionnalité n'est pas incluse directement dans le logiciel, et il faut passer par des câbles MIDI virtuels pour que cela fonctionne. 2. MidiYoke MidiYoke est un driver MIDI virtuel qui permet de connecter deux applications ensemble via un câble MIDI virtuel, afin qu'elles puissent communiquer alors que ce n'est pas leur fonction première. MidiYoke permet de rediriger jusqu'à 16 canaux MIDI via une entrée virtuelle située dans un programme (OutToMidiYoke) jusqu'à sa sortie dans un autre programme (InFromMidiYoke). 2 Pour certains morceaux, c'est la version 5 du logiciel qui a été utilisée. Chaque version à ses points forts et ses points faibles, et l'utilisation de l'un ou l'autre dépend du résultat que l'on souhaite. Cependant, le procédé général reste le même quelque soit la version utilisée. 8 3. Kontakt 3 Figure 3 : Le logo de Kontakt 3 Kontakt 3 est un sampler développé par Native Instruments, qui permet de manipuler des instruments virtuels (VSTi). Son rôle est d'attribuer chaque instrument à un canal MIDI, afin qu'à la réception d'un son MIDI multicanaux, chaque piste soit jouée par le bon instrument virtuel. Kontakt 3 met également à disposition ses propres VSTi de plusieurs instruments, comme Akoustik Piano, utilisé dans ce projet. 4. East West Quantum Leap Figure 4 : Les logos respectifs de Symphonic Orchestra et Voices of the Apocalypse Afin de compléter les banques de sons de Kontakt 3 et avoir à disposition tous les instruments d'un véritable orchestre symphonique, deux banques de sons externes ont été utilisées : Symphonic Orchestra, pour tout un ensemble d'instruments symphoniques, et Voices of the Apocalypse, pour les chants des chœurs et autres bruits de voix. Ces deux banques de sons ont été développées par la société East West, et tirées de leur collection Quantum Leap. 5. SAVIHost Figure 5 : Le logo de SAVIHost SAVIHost est un petit programme qui permet de charger un VST de manière autonome, c'està-dire dans l'aide d'un logiciel externe qui l'acceptera comme plug-in. Il dispose également de plusieurs outils permettant de configurer facilement les entrées et sorties MIDI à utiliser, et d'enregistrer au format WAV le son joué par le VST qu'il héberge. 9 6. Adobe SoundBooth CS5 Figure 6 : Le logo de SoundBooth Soundbooth est le logiciel de montage de sons développé par Adobe. Il permet d'enregistrer, de modifier, de manipuler et de sauvegarder des sons et des musiques sur une ou plusieurs pistes. Il fournit également tout un panel d'effets et d'outils à appliquer sur les différents sons. 7. Montage sonore final Figure 7 : Schéma du montage sonore final et lien entre les outils Lors de la lecture de la partition par Guitar Pro, le MIDI ainsi généré est envoyé vers Kontakt, hébergé en mode autonome par SAVIHost, via le cable MIDI virtuel MidiYoke. Kontakt attribue chaque piste à un instrument de la banque de son d'East West afin de transformer le son MIDI en son WAV réaliste. Ce WAV est ensuite monté dans SoundBooth pour l'édition, pour finalement être exporté en MP3 pour son intégration dans le projet. 10 8. Adobe Flash Builder CS5 Figure 8 : Le logo de Flash Builder J'ai choisi de coder mon ambianceur dans le langage Flex, utilisant ainsi Adobe Flash Builder, l'environnement de développement fournit par Adobe. Basé sur l'IDE Eclipse, Flash Builder permet de développer des applications Flex en ayant accès à plusieurs outils destinés à simplifier le travail du développeur. Mon choix s'est porté vers ce langage car Flex est un langage permettant de développer rapidement et simplement des logiciels à interfaces graphiques. Cependant, les contraintes d'un tel langage sont assez fortes au niveau musical, puisqu'il m'a été impossible d'utiliser le logiciel FMOD Designer vu en cours, Flex ne disposant pas d'une librairie permettant de lire les fichiers générés par FMOD. J'ai donc du coder moi-même un petit gestionnaire de sons afin de réaliser ce projet, mais nous expliquerons tout cela plus en détail dans la partie dédiée au développement du logiciel. 11 III. Le travail sonore Maintenant que nous avons décrit les différents outils, intéressons nous au travail sonore qui à été réalisé pour ce projet. Afin d'illustrer chaque musique que nous allons analyser, les sons au format WAV et leurs partitions sont disponibles dans le fichier ZIP dans lequel se trouvait ce rapport. L'explication de chaque musique est précédée de son titre afin que vous puissiez l'écouter. En ce qui concerne les partitions, elles ne correspondent pas toujours exactement à leur rendu, pour des raisons qui sont expliquées dans le fichier readme.txt. 1. Généralités sur la composition musicale La quasi-totalité des morceaux présents dans ce jeu ont été composés en Mi Majeur (ou sa relative mineure, Do mineur). Cette tonalité est celle avec laquelle je me sens le plus à l'aise actuellement, et j'ai donc tendance à, par défaut, jouer avec ces trois bémols à la clef. Les quelques fois où je m'en éloigne (une seule fois dans ce projet), c'est pour composer en Si Majeur, ce qui, j'en conviens, ne représente pas une prise de risque énorme. Toutes les musiques réalisées pour ce projet ont été composées avec l'idée que chaque instrument correspond à un personnage. Ainsi, les musiques peuvent raconter une histoire mettant en scène chaque personnage du jeu. Cette idée s'entend de manière flagrante dans les thèmes de chaque personnage, mais est présente dans toutes les autres musiques. 2. Écran titre La musique de l'écran titre est intitulée "De cette réalité caduque et de ses mensonges". Cette musique est là pour accompagner la phase de préparation, pendant laquelle le maître du jeu entre le nom des joueurs et distribue les cartes. Le but de cette musique est de plonger les joueurs dans l'ambiance sombre du jeu, et de faire monter petit à petit la pression, tout en prenant en compte le fait que la malédiction de Thiercelieux ne s'est pas encore manifestée, la partie n'ayant pas encore commencé. Figure 9 : L'écran titre de l'application 12 On peut distinguer deux phases dans cette musique : la première moitié, du début à 2:13, qui joue beaucoup avec les nuances et les coupures soudaines, et la seconde moitié, plus répétitive et plus constante au niveau du volume. Le but de la première partie et de susciter de l'inquiétude chez la personne qui l'écoute, provoquer en lui le sentiment qu'un mal rode, et qu'il est prêt à frapper. L'instrument dominant de cette première partie, et celui qui est la cause des crescendos brutaux qui essayent de provoquer un certain malaise, est le violon. Cet instrument, nous le verrons plus tard, est celui qui caractérise les Loups Garous. Ce thème est donc également là pour poser une base de l'ambiance, à savoir que le violon désigne le mal dont il faut se méfier3. La deuxième partie prend ensuite le relais, en commençant par une petite mélodie de glockenspiel seule, apaisant soudainement le morceau en arrêtant les autres instruments, qui reviennent ensuite. Cet instrument désigne également un autre personnage, la Voyante, ce qui la définit ainsi donc comme un personnage important et capable de ramener la paix au village : la Voyante est un atout vital pour les Villageois. L'interprétation finale que j'ai en écoutant cette musique, et donc celle que j'ai voulu susciter à un joueur qui à déjà joué au jeu et qui sait quel instrument correspond à quel personnage, est que ce morceau raconte un rêve que fait la voyante la veille de la manifestation de la malédiction de Thiercelieux. Une vision prophétique des Loups qui rodent, porteurs d'un terrible destin pour le village, et qu'elle est la seule à anticiper. C'est d'ailleurs ce qu'il se passe dans le jeu. 3. Le thème de la nuit et ses variantes Afin de donner à la musique un côté informatif, et contribuer en même temps à l'ambiance du jeu, le thème de la nuit, intitulé "Une nuit de pleine lune" est une musique dynamique composée d'une piste de base et de plusieurs autres pistes, jouées en même temps que celle de base, qui représentent chacune un personnage. Ainsi, la piste de base accompagne les joueurs pendant toute la nuit, et, selon le personnage qui doit se réveiller, une deuxième piste correspondant au personnage est jouée pour l'accompagner. En plus de leur thème respectif, chaque personnage dispose également d'un bruitage qui lui est propre, et qui est joué au moment de son réveil. Dans cette partie, nous allons présenter successivement le thème de base, puis chacun des personnages, en expliquant d'abord leur pouvoir nocturne, afin de compléter les règles du jeu énoncées dans la première partie, et expliquer la composition de leur thème musical, et la création du bruitage qui est associé à leur réveil. Dans le ZIP qui contenait ce rapport, vous pourrez trouver les pistes de chaque personnage accompagnées du thème de base, mais j'ai aussi fourni les pistes seules, sans le thème de base (dans le dossier "Une nuit de pleine lune - Solo tracks"). 3 Je tiens à noter que je n'ai absolument rien contre le violon. Au contraire, j'ai toujours énormément aimé cet instrument, et ai toujours rêvé d'apprendre à en jouer, mais mes professeurs de musique de l'époque m'en ont dissuadé. S'il y avait un psychologue dans la salle, il pourrait dire que, pour moi, ce ne sont pas les violons en eux même qui représentent le mal, mais qu'ils sont simplement le symbole d'une frustration que j'ai enfoui au fond de moi. Mais il n'y a pas de psychologue, n'est-ce pas ? 13 a. Le thème de base Le thème de base avait comme contrainte d'être relativement simple, puisqu'il était destiné à être accompagné par d'autres pistes. Il devait donc représenter une sorte de support sur lequel les prochaines pistes allaient pouvoir être composées, tout en posant les bases de l'ambiance pesante nocturne. Ce thème est une boucle d'une longueur assez moyenne. En effet, le temps de réveil de chaque personnage étant relativement court, et je compte sur la diversité des thèmes des personnages pour éviter que la musique ne soit trop répétitive. Le thème de base est composé de trois types instruments : des violoncelles, des cors d'harmonie et des timbales. Je n'ai que choisi des instruments aux sons plutôt graves afin de laisser les thèmes de chaque personnage compléter le morceau en y ajoutant des instruments plus aigus. La mélodie de la base est très simpliste, mais donne toutefois une direction que devront suivre les pistes des personnages. Le tempo de 110 bpm de ce morceau est une vitesse assez moyenne, mais la mélodie est plutôt calme afin d'évoquer l'idée que tout le monde dort, ou plutôt est censé dormir. Ce sont les pistes des personnages qui devront amener un peu de dynamisme, ce qui symbolisera le fait qu'un des joueurs doit se réveiller. Malgré tout, le thème, bien que simple, est également là pour poser une ambiance un peu angoissante, car les joueurs savent très bien ce qui les attend durant la nuit. Au début du morceau, les timbales ressemblent à des battements de cœur très espacés. En effet, lors des différentes phases du sommeil de l'être humain, le rythme cardiaque à tendance à décélérer (sauf en phase de sommeil paradoxal, mais elle ne représente qu'une petite partie du temps de sommeil total), j'ai donc choisi de donner aux percussions une impression de rythme cardiaque lent pour rappeler l'endormissement du village. b. Les Loups Garous Figure 10 : La carte d'un Loup Garou Les Loups Garous sont les grands ennemis du jeu (mais pas les seuls, comme nous allons le voir). Chaque nuit, ils se concertent discrètement et se mettent d'accord pour dévorer un villageois. Si les Loups Garous ne peuvent pas se mettre d'accord sur une victime, personne ne sera dévoré pendant la nuit. La piste des Loups Garous est composée de deux types d'instruments : des violons, qui dominent, et un chœur d'hommes pour les accompagner. Le thème doit susciter la peur chez les joueurs, car ce tour signifie que l'un d'entre eux va mourir. Durant cette phase, en temps que 14 Villageois, on a souvent l'impression désagréable d'être pointé du doigt par les Loups, et la musique devait renforcer ce sentiment de malaise. Ainsi, les violons sont certes dynamiques, mais chaque accord est joué staccato, pour que chaque note paraisse sèche et soudaine, à l'image des coups de crocs des Loups sur leur victime. Le son de réveil des Loups Garous est un cri d'homme qui se transforme progressivement en hurlement de Loup. Le cri à été modifié de manière à ce que sa hauteur corresponde à celui du hurlement, afin que le mélange semble plus naturel. c. La Voyante Figure 11 : La carte de la Voyante La Voyante est un personnage qui se réveille avant les loups garous et qui à le don de pouvoir connaître l'identité d'un joueur qu'elle désigne au maître du jeu. Elle peut donc, chaque nuit, découvrir le rôle d'une personne différente, et donc voter en conséquence lors du vote du village. Le thème de la voyante est une simple mélodie de glockenspiel. J'ai utilisé cet instrument car il donne un côté un mystique qui colle avec le personnage de la voyante, et qu'il est facilement reconnaissable. Le thème en lui-même contraste légèrement avec l'ambiance sombre donnée par le thème de base, en adoptant un air un peu moins stressant. La Voyante est en effet la pour combattre les Loups Garous, et son pouvoir fait qu'elle est un allié puissant pour les Villageois. Il fallait donc que son thème amène une sensation d'apaisement, car les Villageois n'ont rien à craindre lorsque c'est elle qui se réveille. Le son de réveil de la Voyante est un bruit de carillon joué par-dessus un son de frottement d'un verre en cristal. Le son du verre évoque la boule de cristal, symbole des voyantes, tandis que les carillons donnent un effet mystique au son. d. La Sorcière Figure 12 : La carte de la Sorcière 15 La Sorcière est un personnage qui se réveille après les Loups Garous. Lorsqu'elle se réveille, le maître du jeu lui désigne la personne qui a été dévorée pendant la nuit. Elle dispose, pendant toute la partie, de deux potions : une potion de soin qui lui permet de soigner la pauvre victime, et une potion de mort qui lui permet de tuer un autre joueur. Elle peut faire ce qu'elle veut de ses potions : n'en utiliser qu'une, utiliser les deux en une nuit, ou les économiser pour la nuit prochaine. Pour faire comprendre au maître du jeu ce qu'elle désire faire sans se faire repérer, elle communique par signes : pouce vers le haut pour soigner la victime des Loups Garous, pouce vers le bas pour tuer quelqu'un d'autre, pouce horizontal pour ne rien faire. Elle ne peut utiliser ses potions que pendant la nuit, et non pas pendant le vote du village. La Sorcière est l'un des personnages (et le seul dans cette version du logiciel) qui peut créer une situation d'égalité : si pendant une nuit, il ne reste qu'un loup garou et une sorcière n'ayant qu'une potion de mort, les deux joueurs s'entre-tuent et la partie se termine sur un village désert. Tout comme la Voyante, la Sorcière est un personnage que l'on peut catégoriser comme "mystique". Il fallait donc que son thème rappelle cette dimension mystique, mais en restant quand même éloigné du thème de la Voyante. Pour garder ce sentiment, j'ai utilisé des sons de crotales, des percussions qui ressemblent légèrement au glockenspiel, mais dont le timbre est suffisamment éloigné pour ne pas les confondre. Les crotales rappellent également le tintement des fioles de potions dont dispose la sorcière, ce qui correspond à son personnage. En plus des crotales, j'ai utilisé un son de hautbois car ce n'est pas un instrument que l'on entend souvent d'une manière générale. Les gens ont en effet plus l'habitude des trompettes et des clarinettes, par exemple, et la sonorité d'un hautbois peu paraître inhabituelle. Étant donné que j'imagine la Sorcière comme étant un personnage un peu étrange et en marge de la société, utiliser des sonorités méconnues m'a semblé être une bonne idée pour renforcer cette impression. Le thème en lui-même est plus stressant que celui de la Voyante, et on retrouve des crescendos un peu comme ceux du thème du menu principal. De plus, on peut noter que les crotales et le thème en lui-même sont parfois légèrement dissonants. Cela est dû au fait que la Sorcière est un personnage qui, de par son pouvoir, est à double tranchant. Elle est, certes, du côté des Villageois, mais elle peut très bien tuer un de ses alliés, qu'elle pensait être un Loup Garou, avec sa potion, ou sauver une personne qui se retournera contre elle. Contrairement au tour de la Voyante, qui est un tour pendant lequel les Villageois sont confiants, le tour de la Sorcière est quand même angoissant pour tous les autres joueurs, car une Sorcière est non seulement imprévisible, mais peut en plus faire basculer la partie. Son thème a donc pour but de mettre en place cet aspect double de la Sorcière. Le son de réveil de la Sorcière est un son de liquide remplissant un récipient, ce qui provoque une explosion, le tout surplombé de discrets carillons qui évoquent le tintement des fioles les unes contre les autres. Le bruit de l'explosion a été modifié de manière à la rendre moins naturelle et plus étrange, renforçant ainsi le caractère anormal de la Sorcière. 16 e. Cupidon et les Amoureux Figure 13 : La carte de Cupidon L'ange de l'Amour se ne se réveille qu'une seule fois, en tout premier pendant la première nuit. Il désigne deux personnes qui seront amoureuses jusqu'à la fin de la partie. Le maître du jeu réveille ensuite les amoureux (à qui il a préalablement touché la tête pour qu'ils sachent qu'ils se sont fait toucher par la flèche de Cupidon) pour qu'ils se reconnaissent. A partir de ce moment, le but des Amoureux est de pouvoir vivre leur amour tranquillement. S'ils sont tous les deux villageois ou loups garous, les Amoureux gagnent en même temps que leur équipe. Cependant, si le couple est composé d'un Villageois et d'un Loup Garou, ils deviennent une troisième équipe, et doivent éliminer tous les autres joueurs pour terminer ensemble. Hélas, leur amour est tellement fort que si l'un vient à mourir, l'autre ne pourrait le supporter et se suiciderait. Ils doivent donc chacun veiller sur l'autre, et ne pas attirer les soupçons. Pour correspondre à son pouvoir, le thème de Cupidon devait donc évoquer l'amour, mais en ajoutant un petit côté divin afin de rappeler son statut d'ange. J'ai donc utilisé un son de harpe d'une part, et des chœurs féminins d'autre part. La musique en elle-même couvre légèrement l'aspect stressant, grâce à un thème un peu plus joyeux et dynamique à la harpe : Cupidon ne se réveillant que la première nuit et avant les loups garous, la malédiction de Thiercelieux n'a pas encore frappé. Le son de réveil de Cupidon est composé de bruissement d'ailes, de rire d'enfants et du bruit de départ d'une flèche. Le rire des enfants à été modifié au niveau de leur hauteur et de leur réverbération afin de leur donner un aspect plus "divin". f. Le Salvateur Figure 14 : La carte du Salvateur Le Salvateur se réveille après la Voyante, et avant les Loups Garous. Il a le pouvoir de protéger une personne de l'attaque des Loups Garous : s'ils essayent de dévorer un joueur protégé 17 par le Salvateur, leur attaque sera vaine et ils devront se résigner à choisir une autre victime. Cependant, la protection du Salvateur ne dure qu'une seule nuit, et il lui est impossible de protéger la même personne deux nuits de suite. Par contre, il est tout à fait possible qu'il se protège lui-même une nuit sur deux. J'imagine personnellement le Salvateur comme une sorte de chaman tribal, vêtu d'une peau d'ours. Afin de traduire cette impression dans son thème, je me suis orienté vers des sons plus primaires, comme des cris d'homme inintelligibles et un redoublement des percussions. Ce thème à ainsi la particularité de ne pas essayer de se superposer par-dessus le thème de la nuit en apportant une nouvelle musique, mais plutôt de simplement l'accompagner, tout en donnant au thème l'identité du Salvateur. Le son de réveil du Salvateur est un son de champ de force duquel émane un bruit de tambour. Les tambours ont été modifiés de manière à ce que l'on ait l'impression qu'ils soient derrière le champ de force, protégés, pour rappeler le rôle du Salvateur. g. La Petite Fille Figure 15 : La carte de la Petite Fille La Petite Fille est un personnage assez particulier, car elle n'a pas de tour désigné. Elle a simplement le droit d'ouvrir les yeux discrètement pendant le tour des Loups Garous pour les espionner, sans avoir le droit de se faire passer pour l'un d'entre eux. C'est un rôle très stressant, mais très puissant si on arrive à bien le jouer. Étant donné qu'elle se réveille en même temps que les Loups Garous, son thème doit être compatible non seulement avec le thème de base, mais aussi avec celui des Loups Garous, car il sera joué en même temps que ces deux musiques. Le thème de la Petite Fille est une simple mélodie chanté avec une voix féminine qui émane discrètement du thème des Loups Garous. Le chant n'est pas mis en avant, mais reste plutôt discret, car la Petite Fille ne doit pas attirer les soupçons, au risque de se faire repérer. Pour cette raison, la Petite Fille n'a pas de son de réveil qui lui est propre. 18 h. Le Simple Villageois Figure 16 : La carte du Simple Villageois Le dernier personnage jouable est le simple villageois, qui ne se réveille pas du tout la nuit. Par conséquent, il ne dispose ni de thème, ni de bruitage de réveil. Il ne se réveille que le jour, pour participer au vote. 4. Les thèmes du jour Lorsque le village se réveille et découvre la victime des Loups Garous, les joueurs doivent débattre afin de déterminer, d'après eux, qui sont les Loups Garous. Deux musiques ont été composées à cette occasion, et sont jouées selon l'état de la partie, et l'importance du vote. Ce sont ces musiques que nous allons maintenant analyser. a. Vote classique Par défaut, la musique qui est jouée durant les votes est intitulée "Aversion Collective". Elle est totalement à l'opposé de la musique de la nuit de par sa longueur et sa vivacité : le tempo de ce morceau est de 150 bpm, et son rythme est plus soutenu. Son rôle est de dynamiser le débat et les accusations entre joueurs. Elle est plus longue que la musique de la nuit, car cette phase de jeu est souvent plus longue que le temps de réveil d'un personnage. Mon idée initiale pour cette musique était de reprendre tous les instruments qui symbolisent des personnages (glockenspiel pour la Voyante, hautbois pour la Sorcière, etc...) et de les faire jouer ensemble, pour symboliser le fait que tous les rôles étaient présents et débattaient ensemble, mais deux choses m'ont gênées dans ce projet. La première était qu'il aurait été alors logique de ne jouer que les pistes des personnes encore en vie, or cela aurait potentiellement altéré au dynamisme de la musique selon les pistes à supprimer. La deuxième était que lorsque le jour se lève, tous les joueurs sont à égalité : il n'est plus question des identités, ils n'ont plus de pouvoirs, et il leur est facile de se faire passer pour un personnage qui n'est pas le notre simplement pour faire accuser un ennemi ou se sortir d'une accusation délicate. Rassembler tous les instruments des personnages n'allait pas vraiment dans ce sens, et j'ai préféré simplement mettre en avant le sujet du débat, les Loups Garous, en donnant une importance aux violons, et en utilisant au maximum des instruments neutres, c'est-à-dire soit ceux utilisés juste pour le thème de la nuit, soit des nouveaux, comme la caisse claire ou la trompette. Malgré tout, j'ai quand même utilisé des chœurs masculins (les mêmes que ceux du thème des Loups Garous) et des chœurs féminins (les mêmes que ceux du thème de la 19 Petite Fille), mais j'ai essayé de les utiliser de manière suffisamment différente pour qu'on ne puisse pas faire de rapprochement : par exemple, les chœurs féminins ont plusieurs voix et chantent des accords, alors que dans le thème de la Petite Fille, il n'y a qu'une seule voix. Pendant la première partie du morceau, on retrouve donc les "violons Loups Garous", accompagnés de quelques percussions et de violoncelles. Au fur et à mesure que le morceau progresse, d'autres instruments se joignent à eux, petit à petit. Cela permet de donner l'impression que le village s'éveille, et que pendant que les villageois découvrent ce qu'il s'est passé, les Loups Garous se mêlent discrètement à eux. La musique bascule ensuite sur un solo de violons, accompagnés de violoncelles et de percussions en crescendo destiné à faire monter la pression et à mettre du suspense. Ce genre de passages sont des accroches possibles au maître du jeu, et peuvent lui permettre d'intervenir pour contribuer à l'ambiance si la situation s'y prête. Ainsi, si, à ce moment du morceau, le vote est presque terminé, cela donne au maître de jeu l'occasion de faire durer le suspense en étant synchronisé avec la musique, en demandant, par exemple, à quelques joueurs s'ils sont sûrs de leur vote. On retrouve une accroche légèrement semblable à la fin de la boucle, où seuls les violons et les percussions jouent. Il était important pour moi de laisser des occasions pour le maître du jeu de prendre ainsi la parole, car bien que le logiciel contribue à l'ambiance de la partie, c'est le duo maître du jeu/ambianceur qui garantit une ambiance optimale. Le logiciel n'a absolument pas la prétention de remplacer le maître du jeu, mais simplement de l'épauler. Enfin, le morceau est constamment rythmé par des caisses claires, ce qui donne au thème un petit côté militaire. J'ai fait ce choix pour montrer que le vote oppose deux camps opposés qui sont, en quelque sorte, en guerre, même si ce n'est pas vraiment une guerre au sens où on l'emploi d'habitude. b. Vote serré Lorsque la partie devient très serrée et que le vote actuel est capital pour la suite de la partie, une autre musique est lancée. On reconnaît une partie serrée au nombre de villageois par rapport aux Loups Garous : à partir du moment où il y a presque autant de villageois que de Loups Garous, les prochains votes risque d'être capitaux. En effet, s'il y a plus de Loups Garous que de Villageois, alors tous les Loups Garous peuvent voter pour un même villageois pour qu'il soit exécuté, ce qui entraîne une situation d'échec et mat pour les Loups Garous, puisque plus rien ne peut les tuer. S'il y a autant de Loups garous que de Villageois, alors cela dépend du Maire du village, qui décide de qui tuer en cas d'égalité. Si le Maire est Loup Garou, alors on se retrouve dans la première situation, et s'il est Villageois, les Loups Garous pourront le dévorer en espérant récupérer l'insigne de maire. On peut donc considérer une partie comme serrée un tour avant de se retrouver dans cette situation, donc lorsqu'il y a un Villageois de plus que les Loups Garous. On ne tient pas compte des pouvoirs des villageois restants, ni de la présence des amoureux dans ce calcul, afin de ne pas trop aiguiller les joueurs : à aucun moment le maître du jeu ou le logiciel ne doit dévoiler le moindre indice sur la partie. Le thème des votes serrés est intitulé "Misanthropie Émergente". Cette musique possède un tempo plus rapide que le thème du vote normal (160 bpm) et a pour but de donner à la situation une 20 ambiance de tension, de fin imminente et d'urgence. Comme les autres thèmes, il forme une boucle, mais est moins longue que celle du vote classique. En effet, lorsque la partie est serrée, il y a moins de joueurs, et la plupart a généralement une vision assez claire sur ce qu'il se passe : les débats s'en voient raccourcis et les votes sont plus rapides. Les instruments sont quasiment les mêmes que le thème du vote classique, afin de garder à l'esprit que les joueurs sont quand même dans une situation de débat. 5. Les thèmes de victoire Une partie peut se terminer de quatre manières différentes : victoire des Loups Garous, victoire des Villageois, victoire des Amoureux et égalité. Chaque situation doit donc avoir son propre thème. Mon idée initiale avait été de faire des petites musiques ne dépassant pas la dizaine de secondes, avant de reprendre sur le thème de l'écran titre, puisque la fin d'une partie ramène sur cet écran, mais j'ai finalement opté pour la composition de morceaux entiers visant à remplacer la musique de l'écran titre. En effet, bien que la fin d'une partie signifie souvent le début d'une autre, je sais par expérience que les joueurs aiment avoir une petite minute de pause pour échanger leurs impressions ou boire un peu avant de relancer une partie. Cette phase me paraît plus plaisante si elle est réalisée sur le thème de la victoire du clan ayant remporté la dernière partie (ce qui est toujours utile pour alimenter les moqueries envers les vaincus, la valeur d'une victoire se mesurant à la quantité de dégoût de l'adversaire). a. La victoire des Villageois La victoire des Villageois est saluée par le morceau intitulé "La Légende de Thiercelieux". Lors de la composition de ce morceau, j'ai imaginé le village de Thiercelieux quelques générations après la défaite des Loups Garous, à une époque où la malédiction n'est plus qu'une légende racontée par les anciens. Cette musique illustre le récit de cette légende, présentant les villageois comme des héros qui luttent contre les Loups Garous lors de l'introduction dynamique. Contrairement aux autres morceaux, les violons, qui symbolisent pourtant les Loups Garous, jouent ici un air plus enjoué. Cela a pour but de réduire la férocité des Loups Garous, et montrer qu'ils ne font plus peur à personne. Cette partie enjouée fait place à une autre, plus calme et un peu plus mélancolique, pendant laquelle on peut imaginer que la légende raconte que malgré tout, la victoire ne s'est pas faite sans mal et que certains villageois en sont morts. Cette partie s'articule ensuite sur un son de glockenspiel, instrument de la Voyante, ramenant la paix et le calme dans le village. Enfin, la première partie reprend pour rappeler la victoire des Villageois. b. La victoire des Loups Garous Lors de la victoire des Loups Garous, c'est le morceau intitulé "Valse à l'Insanité" qui est joué. Ce duo piano/violon est le seul morceau à trois temps du projet, et également le seul morceau à intégrer des bruitages. En effet, cette musique est agrémentée de bruits de pluie et d'orage, ce qui connote une fin malheureuse pour le village de Thiercelieux. De plus, ce morceau est le seul comportant du piano. J'ai fait le choix de ce duo car il me fallait trouver un moyen de montrer qu'il 21 ne restait plus que de Loups Garous, symbolisés par des violons. Or, un simple solo de violon me paraissait plutôt maigre pour un thème de victoire, et j'ai donc choisi d'intégrer un instrument inédit, ce qui montre le début de quelque chose de totalement nouveau pour le village de Thiercelieux. De plus, j'ai une affection toute particulière pour les duos piano/violons, et en composer un était donc quelque chose qui me plaisait particulièrement. Le morceau en lui-même est plutôt mélancolique, et pourrait plus s'apparenter à la défaite des Villageois plutôt qu'à la victoire des Loups Garous, mais c'est un choix assumé : même si les Loups Garous sont des joueurs, ils restent le mal qui ronge le village, et cela me paraissait décalé de faire un thème enjoué pour leur victoire. c. La victoire des Amoureux Comme nous l'avons vu, lorsque l'un des deux Amoureux est un Loup Garou et que l'autre est un Villageois, ils forment une troisième équipe et doivent éliminer les autres joueurs. S'ils y parviennent, leur victoire est annoncée par le morceau "Les Larmes des Démiurges". Tout comme le thème de victoire des Loups Garous, il a plutôt tendance à inspirer la défaite des Villageois plutôt que la victoire des Amoureux. Étant donné que l'un des Amoureux est obligatoirement un Loup Garou, le son du violon est omniprésent. Il est cependant mêlé à d'autres instruments que l'on a pu retrouver dans les thèmes du vote. En effet, comme il n'est pas possible de connaître l'identité du villageois Amoureux, j'ai préféré utiliser uniquement les instruments du vote, qui peuvent être apparentés à l'identité des Villageois en général. Enfin, durant la quasi-totalité du morceau, des timbales discrètes simulent des battements de cœur, symbole de l'amour entre les deux survivants. d. L'égalité L'égalité est signalée par le morceau intitulé "L'Ombre du Soleil". Une anecdote intéressante par rapport à ce morceau est que lorsque j'ai commencé à le composer, ce morceau n'était pas destiné à être joué en tant que thème de l'égalité, mais plutôt en en tant que thème des votes serrés, ce qui explique sa forme de boucle, anormale pour un thème de victoire. En effet, lors de sa composition, je me suis laissé emporter par le sentiment de fin du monde qu'il me faisait ressentir, au point d'en oublier son objectif premier. Je me suis ainsi retrouvé avec un morceau qui me faisait éprouver un sentiment de chaos et de fin, mais qui ne correspondait plus vraiment au vote du village. Je l'ai donc utilisé comme thème de l'égalité. Sa longueur et sa forme de boucle représentent finalement un atout pour la situation. En effet, en tant que maître du jeu récurrent, je peux attester qu'une égalité est très rare, mais que lorsqu'elle se produit, la pause nécessaire aux joueurs pour s'en remettre est bien plus longue. Arriver à une égalité nécessite une concentration et une réflexion importante de la part des joueurs, qui se torturent l'esprit pendant les derniers tours pour essayer de trouver une solution qui permettrait à son équipe de gagner, en vain. 22 IV. Développement du logiciel Maintenant que nous avons analysé chacune des musiques et expliqué leurs rôles, attardons nous sur le développement du programme, et sur l'intégration et la manipulation des musiques. Comme décrit plus haut, le logiciel a été développé en Flex, un dérivé du Java permettant de réaliser simplement des interfaces pour des animations Flash. Flex est en réalité le regroupement de deux langages : le MXML, pour Macromedia XML, qui permet de définir la structure graphique de l'application, et l'ActionScript 3, qui est son langage de programmation. 1. Méthodes de programmation Au niveau de la structure du programme, le logiciel à été développé en utilisant une technologie Orientée Objet, que permet Flex. Chaque classe correspond soit à une entité du jeu, telle qu'un personnage ou un joueur, soit à un écran de jeu. La communication entre ces entités est intégralement gérée grâce à des événements, et chaque objet est chargé de gérer ses écouteurs. a. Gestion des personnages Le premier travail effectué lors du développement à été la définition des classes représentant les personnages. Étant donné la quantité de personnages qu'il y a à créer, il a fallu trouver un moyen de la rendre la plus simple et rapide possible. J'ai ainsi décidé de créer une classe générale Character, qui est la structure de base de tous les personnages du jeu. Figure 17 : La classe Character 4 4 Tous les schémas de classe de ce rapport ne représentent que les méthodes les plus importantes, et non leur intégralité. 23 Cette classe n'est pas utilisable telle qu'elle, et peut donc être considérée comme une classe abstraite5. Elle regroupe les attributs et méthodes communs à tous les personnages, à savoir leur nom (comme "Loup Garou" ou "Voyante"), leur position de réveil (Cupidon se réveillant en 1, les Loups Garous en 3, sachant que la position 0 correspond à une absence de réveil), le chemin de leur thème musical, de leur image et de leur son de réveil. Chaque personnage possède également un lien vers le village qui le contient, qui est l'entité qui s'occupe de gérer une partie. Il dispose également de getters et de setters, et une fonction de comparaison prenant un autre Character en entrée. La méthode la plus intéressante de la classe est onWakeUp(targetedPlayers), qui définit le pouvoir du personnage. Le paramètre targetedPlayers est un tableau de joueurs qui représente les cibles du personnage actuellement réveillé. La figure 18 ci-dessous représente un exemple de son utilisation dans la pratique : à son réveil, le joueur concerné désigne ses cibles au maître du jeu, qui les sélectionne (sur la figure, le joueur "Datto" a été sélectionné, d’où sa différence de couleur). Le maître du jeu clique alors sur le bouton "Activer le pouvoir du personnage", qui appelle la méthode onWakeUp du personnage actuel, en lui fournissant les joueurs qui ont été sélectionnés. Figure 18 : Écran du village pendant la nuit, pendant qu'un personnage est réveillé. 5 Le langage Actionscript ne permet cependant pas de définir des classes abstraites, ni des classes privées. Cette classe peut donc être instanciée, mais il n'est pas préférable de l'utiliser. 24 Pour définir un nouveau personnage, il suffit donc le faire hériter de Character, appeler super() dans le constructeur en lui donnant les bons paramètres, et redéfinir la méthode onWakeUp(). La figure 19 ci-dessous est l'exemple, en Action script, de la définition d'un nouveau personnage : le Loup Garou. Son constructeur, qui ne prend plus que le village en paramètre, renseigne tous les paramètres nécessaires à son implémentation lors de son appel au constructeur de Character. On a également redéfinit la méthode onWakeUp qui s'occupe de vérifier si on a le bon nombre de joueurs sélectionnés, et qui le mord s'il n'y en a qu'un (une indécision des Loups Garous, donc plusieurs cibles, ne provoque aucune mort : c'est un cas assez fréquent lorsque les Amoureux dominent la partie). Le cas particulier du Loup Garou d'avoir deux thèmes selon si la Petite Fille est vivante ou pas est traduit ici par la redéfinition du getter getMusicalTheme(). package classes { public class Werewolf extends Character { public function Werewolf(village:Village){ //Constructeur super("Loup Garou", 4 , village, "werewolf.mp3", "werewolf.png", "werewolfsound.mp3"); } public override function onWakeUp (targetedPlayers:ArrayCollection):void{ if(targetedPlayers.length != 1){ Alert.show("Les loups garous n'ont mordu personne"); } else { targetedPlayers.getItemAt(0).dispatchEvent(new Event("WerewolfBiteEvent")); Alert.show((targetedPlayers.getItemAt(0) as Player).getNickname()+" a été mordu"); } } public override function getMusicalTheme():String{ if(this.village.hasCharacter("Petite Fille")) return "weregirl.mp3"; return "werewolf.mp3"; } } } Figure 19 : Un exemple de personnage : classe des Loups Garous On note par ailleurs que ce n'est pas la méthode onWakeUp() qui s'occupe d'effectuer directement l'action demandée, mais qu'elle ne fait qu'envoyer un événement au joueur ciblé. C'est une caractéristique de ce programme d'utiliser énormément la programmation événementielle, mais c'est un point que nous allons voir dans la prochaine partie. b. Gestion des joueurs et programmation événementielle Maintenant que nous avons des personnages, il a fallu créer des joueurs à qui les affecter. Pour cela, la classe Player a été développée. Cette classe permet de gérer toutes les actions des joueurs, mais également tout ce qu'ils subissent. 25 Figure 20 : La classe Player Cette classe est la représentation de la logique événementielle. En effet, elle permet de centraliser tout ce qui peut arriver au joueur pendant une partie, que ce soit la morsure des Loups Garous, le soin de la sorcière ou sa mort à cause du vote du village, alors que l'on pourrait penser que les effets de chaque personnage serait plutôt défini dans leurs propres classes. Comme nous l'avons vu, lorsqu'un personnage active son pouvoir, il envoi en réalité un événement à sa cible. Cet événement est capté par le joueur concerné, et déclenche la méthode correspondante (qui sont généralement de simples setters). Par exemple, l'attribut "cursed" est un booléen définissant si un joueur est "maudit" ou non (un joueur "maudit" est un joueur destiné à mourir au lever du soleil, c'est-à-dire la cible soit des Loups Garous, soit d'une potion de mort de la Sorcière). Lorsque les Loups Garous mordent un joueur, nous avons vu que cela lui envoie un événement de type "WerewolfBiteEvent". Le joueur écoute cet événement, et à sa réception, il se maudit lui-même en appelant la méthode "curse()" (qui est un setter mettant l'attribut à true, et qui remplace son image pour symboliser qu'il est maudit). A la tombée du jour et de la nuit, les méthodes setDayEventListeners et setNightEventListeners sont respectivement appelées. Elles permettent de mettre à jour les écouteurs d'événement (qui différent le jour et la nuit), et surtout de vérifier si le joueur est encore en vie : si ce n'est pas le cas, on ne lui ajoute aucun écouteur et on les lui retire tous. Outre l'aspect logique, la classe Player gère aussi l'aspect visuel du joueur, c'est-à-dire l'écriture de son pseudonyme et de l'image de sa carte. Les méthodes onLoadingComplete et onDeathComplete sont appelées lorsqu'il y a besoin de changer l'image du joueur, et que cette 26 dernière est chargée. Les deux méthodes se chargent d'actualiser le visuel du joueur, à la différence qu'onDeathComplete modifie également la couleur de son pseudonyme 6. c. La gestion d'une partie : la classe Village Figure 21 : Écran de gestion des joueurs Toute la gestion d'une partie est concentrée dans la classe Village. C'est cette classe qui est responsable de la gestion des différentes phases du jeu, des joueurs et de l'attribution des personnages. 6 Une seule méthode plus générique aurait été plus efficace, mais onDeathComplete est destinée à être développée un peu plus, et ainsi différer plus de onLoadingComplete. Je conçois que dans cette version, la séparation en deux méthodes paraisse étrange, mais c'est une anticipation sur l'avenir. 27 Figure 22 : la classe Village Cette classe est la plus importante, autant au niveau de sa taille que de part son rôle. Elle permet lancer les tours des personnages pendant la nuit : lorsque la nuit tombe (méthode night()), elle va chercher le prochain personnage encore vivant à réveiller (via la méthode nextStep(), qui appelle elle-même des getters qui s'occupent du calcul), et commence son tour avec la méthode beginTurn(). Lorsque le maître du jeu clique sur le bouton permettant d'activer le pouvoir du personnage, la méthode endTurn() est appelée (c'est elle qui s'occupe, entre autres, d'appeler la méthode onWakeUp() du personnage actuellement réveillé). La méthode nextStep retourne faux lorsqu'il n'y a plus de personnage à réveiller, et dans ce cas, la méthode day() est appelée pour lancer la phase de vote. Un vote est créé en maintenant le clic sur la personne qui vote, et en déplaçant la souris sur la cible du vote. Une flèche est alors créée pour signaler que le vote a bien été pris en compte. Afin de gérer cette étape, deux classes ont été créées : Vote et Judgement. La classe Vote est plus une structure qu'une réelle classe, et la classe Judgement permet de recueillir des votes et retourner son verdict, sous la forme d'un tableau de joueurs qui ont été le plus nominés. 28 Figure 23 : Les classes Vote et Judgement A chaque vote, le Village créé un Vote et le stocke dans son instance de Judgement qu'elle possède en attribut (à noter que le Vote créé n'est en réalité que la même instance, attribut du village, qui est réinitialisé à chaque fois. Cela permet de conserver en mémoire le vote courant). Lorsque le maître du jeu clique sur le bouton central, la méthode judge() est appelée et les joueurs concernés sont exécutés7. Figure 24 : Une phase de vote 7 Traditionnellement, lors d'une situation d'égalité, le maire départage les votes. Cette fonctionnalité n'a pas encore été implémentée, mais rien n'empêche le maître du jeu de la respecter quand même. 29 d. La gestion des sons : les classes SoundManager, SoundData et les SoundEvents La gestion native des sons en Flex est très limitée et ne permet que de faire des actions basiques. De plus, il m'a été impossible de trouver des librairies permettant d'utiliser FMOD Designer pour gérer mes sons. Ce projet nécessitant, au minimum, de la synchronisation sonore et des effets de fade-in et fade-out, le besoin de classes spécialisées s'est fait ressentir. La classe SoundManager a ainsi été développée dans ce sens, et permet le chargement et la lecture d'une ou plusieurs musiques de manière autonome ou synchronisée. Elle permet également les effets de fade-in et fade-out lors de la lecture, et améliore le système de répétition des sons natifs de Flex. En effet, par défaut, lorsque l'un morceau se termine et que l'on demande à Flex sa répétition, le morceau va être rejoué non pas à partir du début, mais a partir du moment où on l'a lancé la première fois. Ainsi, si on lance la lecture d'un morceau à partir de 0:30, sa répétition reprendra à 0:30 et non au début, ce qui posait des problèmes lors de la synchronisation. Un deuxième problème lors de la synchronisation des sons a été la médiocre gestion par Flex de la lecture en cours. En effet, un algorithme trivial pour synchroniser un son actuellement joué avec un autre, que l'on doit lancer, serait celui-ci : Dès que (sonASynchro est chargé && sonDeBase est chargé){ position = sonDeBase.position; sonASynchro.play(position); } Hélas, pour des raisons mystiques, un algorithme aussi simple que celui-ci ne fonctionne pas. L'idée est en certes la, mais les deux sons sont légèrement décalés (un décalage de 200 à 500ms), ce qui provoque une dissonance. Pour parfaire la synchronisation, l'algorithme suivant à du être adopté : Dès que (sonASynchro est chargé && sonDeBase est chargé){ position = sonDeBase.position; sonDeBase.stop(); sonASynchro.play(position); sonDeBase.play(position); } 30 Figure 25 : La classe SoundManager Le SoundManager contient un tableau de SoundData, qui est une structure permettant de rassembler toutes les informations concernant le son à jouer : son objet Sound (classe native de Flex permettant de jouer des sons), son canal de lecture, le nom du son avec lequel il doit être synchronisé (s'il existe) et s'il le son doit être répété ou non. Cette structure a du être développée pour créer un lien entre le son et son canal de lecture, incompréhensiblement absent dans Flex. Figure 26 : La classe SoundData Le SoundManager est également basé sur les événements, et écoute des événements spécialement créés pour l'occasion : les SoundEvents. Ces événements contiennent les mêmes informations que la classe SoundData : à la réception d'un SoundEvent, un SoundData est créé et ajouté avec les données de l'événement (s'il n'est pas déjà géré par le SoundManager). L'événement possède également un type qui représente la méthode de lecture du son : lecture normale (PlaySoundEvent), fade-in (FadeInSoundEvent) etc... Ainsi, envoyer au SoundManager l'événement " new SoundEvent("fadeInSoundEvent","cupid.mp3",true,"base.mp3")" permet de charger et jouer le son "cupid.mp3" en boucle (le true définit la répétition), en mode fade-in et synchronisé avec le son "base.mp3". 31 e. La classe Game La classe Game est la classe la plus générale. C'est elle qui fait le lien entre le Village et le SoundManager : le village diffuse un événement dans la classe Game, et cette dernière s'occupe d'envoyer le SoundEvent correspondant au SoundManager. C'est aussi elle qui est chargée de gérer l'apparition des différents écrans de jeu. 32 V. Analyse du rendu final 1. Comparaison avec le cahier des charges Le projet rendu est fonctionnel, et rempli toutes les fonctionnalités qui avaient été prévues lors du démarrage du projet. Au niveau musical, 7 morceaux statiques et une musique dynamique composée de 7 pistes ont été composés, ce qui représente une bande son de plus de 30 minutes. La création de chacun des thèmes a été réalisée en essayant de respecter au mieux l'ambiance globale du jeu. Le logiciel permet de jouer ces musiques lorsqu'il le faut afin d'accompagner les joueurs le mieux possible. De plus, des bruitages ont été créés pour accompagner le réveil de chaque personnage, et ainsi maintenir les joueurs dans l'ambiance. Cette première version du programme remplit donc toutes les fonctionnalités indispensables pour animer des vraies parties de Loups Garous de Thiercelieux, et sert de base à des améliorations futures. 2. Améliorations futures Cette première version est destinée à être le squelette d'un logiciel plus complet. En effet, bien qu'il soit possible de jouer avec ce logiciel, seule une petite partie du jeu original a été implémentée. En effet, par manque de temps, tous les personnages du jeu n'ont pas été intégrés dans le logiciel, et les gens aimant jouer le Chasseur (qui, s'il est tué par le vote du village, peut se saisir de son fusil et tuer la personne de son choix avant sa mort), l'Ancien (qui nécessite d'être mordu deux fois par les Loups Garous pour mourir, mais s'il est tué par un Villageois, tous les autre Villageois perdent leur pouvoir) ou le Bouc Émissaire (qui meurt en cas d'égalité lors du vote du village, même s'il n'était pas concerné par le vote) devront attendre la prochaine version. Le jeu original dispose également de variantes qui peuvent modifier sensiblement le jeu afin de rendre les parties plus surprenantes, et il pourrait être intéressant de les implémenter dans des versions ultérieures. Une autre amélioration possible serait de s'occuper un peu plus du design de l'application. Je n'ai en effet pas eu le temps de la structurer convenablement, ni d'améliorer son graphisme, et la plupart des éléments visuels sont ceux par défaut. Enfin, une dernière amélioration serait de faire le portage de l'application du langage Flex vers le langage C++, ce qui me permettrait d'utiliser FMOD Designer et avoir une plus grande marge de manœuvre au niveau de la manipulation de la musique. En effet, Flex n'est pas un très bon langage en ce qui concerne la manipulation sonore, et il m'a souvent été difficile de faire ce que je désirais : synchroniser deux pistes, par exemple, n'est pas évident, et il arrive parfois de subir une légère coupure du son au moment du réveil d'un personnage, mais je n'ai pas eu le choix. Les répétitions des morceaux se jouant en boucle subissent également des coupures, ce qui est assez dommage pour un ambianceur : elles ont tendance à sortir les joueurs de l'ambiance. 33 3. Apports personnels Étant un passionné de musique, ce projet a avant tout été l'occasion de tester mes compétences en composition musicale sur un projet spécifique. Moi qui ai l'habitude de composer à propos de choses que je ressentais à un moment précis, il a fallu que j'apprenne créer des musiques qui collaient à des situations dont je n'éprouvais pas forcement le sentiment, ce qui était totalement nouveau pour moi. De plus, je n'avais jamais fait de morceau destinés à être joués en boucle, et ce projet m'a appris à réfléchir au moyen d'amener une boucle. Bien que je ne me voie pas travailler dans le domaine de la musique plus tard, cette expérience m'a été bénéfique et m'a permit de voir la composition musicale sous un angle que je ne connaissais pas. Je suis plus que jamais motivé à continuer mes modestes travaux musicaux de mon côté, à mes heures perdues. Ce projet est également pour moi l'occasion de faire juger mon travail par des professionnels de la musique, afin d'avoir un point de vue objectif sur mes compositions et pouvoir m'améliorer. C'était avant tout pour cette raison que j'ai choisi cette matière, et ça a été une grande source de stress lors de l'élaboration de ce projet. J'espère ne pas avoir fourni un résultat trop décevant, et je serai ravi d'avoir vos retours. Enfin, ce projet a été l'occasion de réaliser les bases d'un projet personnel, qui est destiné à être amélioré petit à petit jusqu'à remplir toutes les fonctionnalités du jeu de base. 34 Conclusion Malgré la rédaction de ce rapport et la date imminente de la présentation orale, ce projet est loin d'être terminé. Une première version a été créée, mais cet ambianceur, qui a fait ses premiers pas sous la tutelle de l'UE Son et Musique, est destiné à être amélioré. Il m'aura permit d'avoir un jugement objectif sur mes compositions, et de commencer à concrétiser une idée que j'ai depuis longtemps, mais que je ne pouvais pas commencer, faute de temps. Il reste encore beaucoup de travail, mais avec ce squelette, l'implémentation de nouvelles fonctionnalités est réalisable rapidement. Cette première version est conforme à ce que je souhaitais obtenir au début de ce projet, et quelques parties ont déjà pu être jouées grâce à ce logiciel. J'espère que les musiques pourront vous procurer autant de plaisir que celui que j'ai éprouvé en les composant, et qu'elles seront à la hauteur de vos attentes. Pour ma part, je dois vous laisser, les Loups rodent, et j'ai des cartes à distribuer. 35 Table des figures Figure 1 : Le dos de chaque carte de personnage. ..................................................................... 5 Figure 2 : Le logo de démarrage de Guitar Pro 6 ....................................................................... 8 Figure 3 : Le logo de Kontakt 3 .................................................................................................. 9 Figure 4 : Les logos respectifs de Symphonic Orchestra et Voices of the Apocalypse ............... 9 Figure 5 : Le logo de SAVIHost ................................................................................................... 9 Figure 6 : Le logo de SoundBooth ............................................................................................ 10 Figure 7 : Schéma du montage sonore final et lien entre les outils ......................................... 10 Figure 8 : Le logo de Flash Builder ........................................................................................... 11 Figure 9 : L'écran titre de l'application .................................................................................... 12 Figure 10 : La carte d'un Loup Garou ....................................................................................... 14 Figure 11 : La carte de la Voyante ............................................................................................ 15 Figure 12 : La carte de la Sorcière ............................................................................................ 15 Figure 13 : La carte de Cupidon ............................................................................................... 17 Figure 14 : La carte du Salvateur.............................................................................................. 17 Figure 15 : La carte de la Petite Fille ........................................................................................ 18 Figure 16 : La carte du Simple Villageois .................................................................................. 19 Figure 17 : La classe Character ................................................................................................. 23 Figure 18 : Écran du village pendant la nuit, pendant qu'un personnage est réveillé.............. 24 Figure 19 : Un exemple de personnage : classe des Loups Garous .......................................... 25 Figure 20 : La classe Player ...................................................................................................... 26 Figure 21 : Écran de gestion des joueurs ................................................................................. 27 Figure 22 : la classe Village ...................................................................................................... 28 Figure 23 : Les classes Vote et Judgement ............................................................................... 29 Figure 24 : Une phase de vote ................................................................................................. 29 Figure 25 : La classe SoundManager ........................................................................................ 31 Figure 26 : La classe SoundData ............................................................................................... 31 36