Etat de l’art
Agents virtuels autonomes
Aujourd’hui, grˆace aux nombreux progres technologiques, nous avons `a notre disposition des cartes graphiques et des ordinateurs tr`es puissants. Nous sommes, donc, capables de cr´eer et reproduire de larges environnements virtuels de plus en plus complexes, dynamiques et graphiquement tr`es proches du monde reel. Cependant, un monde virtuel visuellement tr`es r´ealiste ne suffit pas pour offrir aux utilisateurs des experiences uniques et tr`es ressemblantes `a ce qui peut se produire dans le monde reel.
Nous ne devons pas oublier que meme si les mondes virtuels ouvrent `a nos yeux une large gamme d’interactions et d’experiences possibles, notre nature humaine attend que certaines lois, organisations, regles et ph´enom`enes propres au monde reel soient presents. Par exemple, nous attendons que ces environnements virtuels soient peupl´es par des cr´eatures virtuelles , appelees aussi agents virtuels, capables d’interagir avec l’environnement qui les entoure, avec eux-meme et avec l’utilisateur.
Concevoir, mod´eliser et animer ces agents virtuels repr´esente un defi majeur pour les concepteurs de mondes virtuels et il est encore plus compliqu´e lorsque ces agents ressemblent `a l’ˆetre humain ; car l’utilisateur poss`ede une habilit´e inn´ee qui lui permet de percevoir tous les d´etails subtils du comportement et du mouvement humain [MHK99].
Un concepteur pourra facilement decider de scenariser de maniere exhaustive -`a travers un langage de programmation ou un langage de script-, chacune des actions de l’agent virtuel, les fa¸cons dont il agit et interagit avec son monde ainsi que les possibles reponses `a chacune des interactions avec l’utilisateur. Cependant, apres quelques essais, l’utilisateur sera capable :a) d’´elucider que le comportement de l’agent est repetitif et peu realiste, b) de prevoir et de predire chacune de ses actions, et c) dans les cas de plusieurs agents, de determiner que tous se comportent de la meme fa¸con et par consequent qu’ils manquent d’individualit´e et d’intelligence. Cela donne comme r´esultat une exp´erience peu enrichissante et ´eloign´ee de ses attentes. De la mˆeme fa¸con, sc´enariser chaque action de chaque agent est un tˆache longue et fastidieuse pour le concepteur.
Du aux difficult´es rencontr´ees pour programmer chacune des actions d’un agent virtuel, d’autres approches ont ´et´e propos´ees ; parmi celles-ci, une des plus utilis´ees et `a laquelle nous allons nous int´eresser est la conception et le d´eveloppement des agents autonomes adaptatifs . Cette approche est issue des ´etudes provenant de diverses disciplines comme l’animation comportementale, l’intelligence artificielle, la robotique et la vie artificielle [MHK99].
Definition d’agent autonome adaptatif
Le terme agent provient de la philosophie et signifie un acteur, une entit´e avec des buts et des intentions, qui apporte des changements dans le monde. Le terme agent peut donc ˆetre utilise pour designer une personne, un phenomene, un animal, un pays ou un robot [Bry01] et ; peut ˆetre applique dans divers domaines allant de la politique, `a l’´economie, ou la linguistique jusqu’aux sciences cognitives et l’intelligence artificielle.
Pour notre interet, nous allons definir un agent comme un systeme qui habite dans un environnement dynamique et impredictible et qui essaie d’atteindre un ensemble de buts dans cet environnement. Un but peut ˆetre un objectif final, un ´etat particulier, un besoin ou une motivation [Mae94].
Pour pouvoir atteindre ces buts, l’agent doit ˆetre :
Autonome : l’agent possede les mecanismes necessaires pour agir et interagir avec l’environnement sans l’intervention d’autres agents ou du concepteur [Flo03].
L’agent est lui-mˆeme capable de rapporter ses perceptions avec ses actions de telle fa¸con qu’il puisse atteindre avec succ`es ses buts [Mae94]. L’autonomie am´eliore la viabilit´e de l’agent dans un environnement complexe, dynamique et impr´edictible. Adaptatif : l’agent est capable d’am´eliorer sa performance dans le temps, c’est a dire, grˆace `a ses exp´eriences pass´ees l’agent atteint de mieux en mieux ses buts.
Un agent peut ˆetre adaptatif de diverses fa¸cons : en ´etant capable de s’adapter facilement `a court terme, en ´etant capable de s’adapter aux petits changements dans l’environnement, en ´etant capable de r´epondre aux demandes de l’utilisateur, ou en ´etant capable de g´erer des changements dans l’environnement et des buts plus significatifs `a long terme [Mae94]. Situ´e : l’agent est ´etabli dans l’environnement et il est capable de le percevoir `a travers ses sens et d’agir sur lui en utilisant ses actionneurs [Mae94]. Incarn´e : l’agent a un corps qui lui permet d’interagir avec l’environnement qui l’entoure. C’est important de remarquer qu’un agent ne sera pas compl`etement incarn´e s’il n’est pas situ´e [Flo03].
Architecture de base d’un agent autonome adaptatif
Apres l’apparition et la definition d’un agent autonome adaptatif dans le contexte de la simulation comportementale et de l’intelligence artificielle, de nombreux chercheurs comme Thalman, Seels, Reynolds, Blumberg, Terzepoulous et beaucoup d’autres les ont implementes `a leur propre fa¸con. Cependant, un des faits qui est devenu clair est que jusqu’`a aujourd’hui il n’existe pas dans la litterature scientifique un ensemble de principes, d’algorithmes et de techniques, appel´e aussi architecture, que nous pourrions considerer comme optimal [Mae94] et qui donnerait comme resultat un agent en interaction avec le monde virtuel et capable de montrer un comportement adaptatif, realiste et efficace.
Avantages des agents autonomes adaptatif
L’utilisation d’agents autonomes adaptatifs permet la simplification du travail des concepteurs, car la conception d’un monde virtuel se r´esumera `a la cr´eation d’un environnement (une maison, une ville, une forˆet, une usine, etc.) et au placement d’agents poss´edant des r`egles de comportement parmi lesquelles s´electionner chacune de ses actions. Cela produira des animations et simulation plus cr´edibles et riches pour l’utilisateur avec moins d’interventions des concepteurs [MHK99], [MTT04]. Egalement, les mondes virtuels peupl´es par ce type d’agents vont profiter de l’´emergence de comportements plus complexes grˆaces aux interactions autonomes entre l’agent et l’environnement.
Modelisation des comportements autonomes
La mod´elisation des comportements autonomes chez les humains et aussi chez les animaux est aujourd’hui une tˆache complexe, qui prend beaucoup de temps et qui est abordee par differentes disciplines comme la psychologie, l’intelligence artificielle, l’infographie… avec un champ d’application allant de l’´ethologie aux sciences sociales [dS06]. Tous les modeles, approches et architectures qui vous seront d´ecrites par la suite cherchent `a d´evelopper comme l’a exprim´e N. Badler : des agents virtuels autonomes (humains ou non) qui ont des mouvements, des reactions, une prise de decision et des interactions qui semblent naturels, appropries et dependants du contexte.
Pour la clarte de la lecture, nous vous rappelons que le terme agent et le terme entite seront utilise indistinctement lorsque nous parlerons des agents autonomes adaptatifs.
Architectures cognitives
Lorsque l’int´erˆet se centre sur la mod´elisation de comportements autonomes d’entit´es qui ressemblent `a l’ˆetre humain, l’approche propos´ee par les sciences cognitives cherche a d´efinir des mod`eles et des architectures qui essayent d’unifier les fonctions les plus repr´esentatives de l’esprit humain : la perception, le langage, la m´emoire, etc. En g´en´eral on peut distinguer deux types d’architectures : (1) Celles fond´ees sur l’id´ee que pour concevoir une entit´e autonome, appel´ee aussi agent autonome, il n’est pas n´ecessaire d’avoir une repr´esentation des connaissances de l’agent parce qu’il suffit de le doter d’un ensemble de comp´etences ´el´ementaires, ainsi que d’un m´ecanisme de contrˆole et de la capacit´e d’exploiter les informations et propri´et´es provenant de l’environnement dont il fait partie ; (2) Celles qui cherchent `a mod´eliser des entit´es (agents) capables d’´elaborer des plans complets afin d’atteindre un but. Cela requiert des entit´es dot´ees d’une repr´esentation des connaissances et d’un contrˆole de l’action. Parmi toutes les architectures existantes, je vais vous pr´esenter les plus embl´ematiques en informatique :
SOAR – State, Operatator and Result
Propos´ee par J. Laird et al. en 1986 et montree dans la Figure 1.2, SOAR cherche a modeliser les processus cognitifs qui ont lieu au moment d’effectuer differentes tˆaches. Afin d’effectuer une tˆache, le syst`eme impl´ementant SOAR doit se cr´eer une repr´esentation de cette tˆache qui le guidera dans son accomplissement. Cette representation est contenue dans une memoire de travail sous la forme d’une hierarchie d’etats `a atteindre et d’operateurs permettant de passer de l’etat courant vers un nouvel ´etat.
La simulation comportementale dans les jeux video
Comme cela a d´ej`a ´et´e ´enonc´e, les m´ethodes de simulation comportementale d´ecrites dans la section pr´ec´edente peuvent ˆetre appliqu´ees dans tous les domaines qui font face `a la probl´ematique de g´en´eration d’agents autonomes capables de montrer des comportements pertinents dans un contexte donn´e, r´ealistes et intelligents. Un de ces domaines est l’industrie des jeux vi ´eo o`u, depuis l’apparition de processeur graphiques de plus en plus puissants et o`u, du fait de la nature comp´etitive propre au secteur, l’inclusion des ennemis, des coll`egues ou en g´en´eral des personnages capables de montrer des actions et comportements plus intelligents et en rapport avec les actions du joueur est devenu un facteur cl´e dans le succ`es ou l’´echec des nouveaux jeux [JW01], [LvL01].
Au-del`a de cette importance ´economique, il est int´eressant de remarquer que les jeux vid´eo ont ´evolu´e pour devenir un moyen de divertissement majeur, offrant aux joueurs un moyen alternatif pour ressentir un sentiment de plaisir, un sentiment de Flow [Che07]. Le terme Flow a ´et´e introduit par Mihaly Csikszentmihalyi dans les ann´ees 70 pour essayer d’expliquer le sentiment de joie chez l’homme ainsi que pour repr´esenter le sentiment de compl`ete implication dans une activite avec un grand niveau de divertissement et d’accomplissement. Lorsque le joueur se trouve dans une exp´erience de Flow il perd la notion de temps et de soucis ; de la meme fa¸con, le niveau d’attention qu’il concentre sur le jeu lui permet de maximiser sa performance et le sentiment de contentement qu’il exp´erimente [Che07]. Il a ´et´e d´emontre que dans certains types de jeux, surtout ceux peupl´es par des personnages diff´erents du joueur (des personnages non joueurs), les comportements des agents influencent consid´erablement l’exp´erience du joueur et par cons´equent son exp´erience de Flow.
Dans le jeux vid´eo on ne cherche pas `a d´evelopper des agents invincibles face auxquels il est impossible de gagner ou des agents tellement pr´evisible qu’ils ne repr´esentent pas un challenge pour le joueur [And03] ; le but final est toujours de d´evelopper ou d’utiliser une m´ethode de simulation de comportements capable de produire des agents cr´edibles et aussi amusants que possible [Nar04]. Ce qu’on souhaite, c’est un ´equilibre parfait entre le challenge offert par le jeu et la capacit´e du joueur.
Dans le processus du d´eveloppement de personnages non joueurs, les probl`emes les plus rencontr´es sont : la recherche et la planification du chemin, la s´election d’actions (par cons´equent la simulation comportementale) et le pilotage et contrˆole du mouvement [And03]. Nous allons nous int´eresser encore une fois `a la simulation comportementale, pour cela, nous allons donner des exemples d’application des m´ethodes d´ej`a d´ecrites en listant les pour et le contres rencontr´es par l’industrie des jeux vid´eo ainsi qu’en d´ecrivant en quelques mots des m´ethodes utilis´ees dans certains jeux et qui n’ont pas ´et´e trait´ees dans la section pr´ec´edente. De la mˆeme fa¸con, afin de donner au lecteur une perspective global des trois probl`emes ´enonc´es, nous allons donner une br`eve explication de larecherche et de la planification du chemin et, du pilotage et du contrˆole du mouvement.
La recherche et la planification du chemin
Les personnages doivent interagir dans des environnements complexes, dynamiques et poss´edant une g´eographie ´etendue, par exemple ils doivent parcourir diff´erents types de dispositions spatiales (chambres, labyrinthes, plateformes, etc) d’une fa¸con intelligente et r´ealiste ; c’est `a dire, en prenant des raccourcis si ils existent ou en ´evitant des obstacles [Nar04]. Un personnage capable de traverser des objets ou qui arrˆete son d´eplacement car il a trouv´e un obstacle, qui est franchissable depuis la perspective de l’utilisateur, va cr´eer une br`eche dans l’illusion de comportement intelligent et adaptatif que nous essayons de produire.
Il existe diverses solutions `a ce probl`eme, certaines sont propos´ees par l’intelligence artificielle et les autres correspondent aux m´ethodes empiriques et approximatives utilis´ees par l’industrie des jeux vid´eo. Ces derni`eres se sont montr´ees plus efficace en temps de calculs dans des environnements moins complexes et avec moins d’obstacles [Cav00]. Dans le cas des environnement tr`es larges et peupl´es par des obstacles, des personnages non joueurs et des joueurs, la m´ethode la plus utilis´e est l’algorithme A* illustr´e dans la Figure 1.4.
Contributions du stage
Objectifs et probl´ematique du stage
Contexte
Jusqu’`a pr´esent, nous avons fait une r´evision rapide des probl`emes li´es `a la simulation des comportements des agents peuplant un environnement virtuel lorsque ces agents sont en interaction directe avec des utilisateurs, ainsi que les possibles solutions provenant de l’acad´emie et de l’industrie. Nous avons vu que la difficult´e principale se pr´esente lorsque l’agent doit choisir parmi ses actions disponibles celle qui est le plus en accord avec l’´etat du monde virtuel, avec l’interaction actuelle entre l’agent et l’utilisateur et avec son ´etat et ses intentions. Ce difficult´e augmente lorsque nous souhaitons que les comportements montr´es par les agents et que tous les types d’interactions pr´esent´es (agent-environnement, agent-agent, agent-utilisateur) soient en accord avec le sc´enario d´efini par le concepteur du monde virtuel en gardant toujours sa nature r´eactive et adaptative.
C’est dans ce contexte que les travaux que j’ai r´ealis´e tout `a long de mon stage au sein de l’´equipe Vortex `a l’IRIT s’inscrivent. Concr`etement, le cadre de mes ´etudes et mes travaux est la g´en´eration de la sc´enarisation, de la simulation et de l’interaction des agents autonomes dans les environnements virtuels interactifs sc´enaris´es adaptatifs.
Lorsque nous parlons de la g´en´eration des environnements ou des agents sc´enaris´es adaptatifs interactifs, nous faisons r´ef´erence `a la conception d’un monde virtuel et de personnages selon un sc´enario cr´e´e par le concepteur du monde virtuel ou par un expert dans un certain domaine. Dans ce type d’environnement, les interventions de l’utilisateur vont influencer la fa¸con dont le sc´enario se d´eroule en respectant toujours le sc´enario d´efini par le concepteur et, tant l’environnement que les personnages seront capables de s’adapter d’une telle fa¸con que leur ex´ecution r´epondra aux demandes d’interactions del’utilisateur, prendra en compte les changements introduit par celui et suivra le sc´enario d´efini.
Objectifs
En prenant en compte le contexte d´ecrit dans les paragraphes pr´ec´edents, notre objectif principal est de proposer une m´ethode de simulation comportementale capable de produire des comportements qui, depuis la perspective de l’utilisateur, soient per¸cus comme cr´edibles, intelligents et r´eactifs ; et qui depuis celle du concepteur soient faciles `a d´efinir et `a tester et en accord avec le sc´enario d´efini. D’autre part, pour donner une continuit´e aux int´erˆets et projets actuels de l’´equipe Vortex, la m´ethode que nous allons proposer pour la g´en´eration des agents autonomes doit aussi rester :
• facile `a utiliser pour les personnes qui poss`edent peu ou aucune base en programmation ;
• assez g´en´erique pour qu’elle puisse ˆetre utilis´ee dans d’autres contextes et projets ;
• et facilement extensible pour que des actions et comportements plus larges puissent ˆetre int´egr´es.
Un dernier objectif, au d´ebut secondaire mais qui s’est par la suite r´ev´el´e determinant pour les contributions que nous proposons, est de regarder les concepts du Game Design et les outils permettant de cr´eer des jeux et des simulation comme : game factory , ´editeur de sc´enario, description de l’interaction, etc.
Contributions
Dans la suite de ce document nous proposerons une m´ethode appel´ee Arbres des comportements (Behavior trees en anglais) issue de l’industrie des jeux vid´eo [Isl05] et que nous considerons tr`es utile pour l’implementation des agents autonomes adaptatif sc´enaris´es. Nous proposerons un concept de jeu s´erieux afin de tester les limites et l’ad´equation des arbres de comportement ; ensuite nous decrirons le processus de developpement du jeu ainsi qu’une impl´ementation des arbres de comportements prenant en compte les contraintes de facilit´e d’utilisation, de genericite et d’extensibilite et les contraintes techniques.
Arbres de comportement
Nous voulons implementer une methode de simulation comportementale extensible, facile d’utilisation et surtout capable de produire, comme nous l’avons deja enonce, des agents autonomes adaptatifs sceranises. Dans les paragraphes qui suivent nous allons decrire les origines, l’architecture et la structure de l’approche choisie, ensuite nous allons illustrer de maniere theorique le fonctionnement des arbres de connaissance en soulignant au lecteur les avantages de ladite methode et les raisons pour lesquelles nous l’avons adoptee. Finalement nous allons parler du contexte d’application et de test propos´e en utilisant les concepts de Game Design, ainsi que de les outils techniques choisis.
Origine des arbres de comportement
Les arbres de comportement ont ´et´e initialement con¸cus comme un langage de mod´elisation utilis´e pour d´ecrire les cahiers des charges des projets industriels et commerciaux de grande ´echelle ; cependant, dans les derni`eres ann´ees ils sont devenus une des m´ethodes les plus utilis´e dans la simulation comportementale des personnages non joueurs [FPGMGM + 09], [SGJ + 11]. Dans l’industrie des jeux vid´eo nous les trouvons dans des titres tr`es connus comme Halo 2, Halo 3 et Spore 2. D’apr`es l’acad´emie et la recherche nous avons trouv´e dans [SGJ + 11] l’introduction de l’utilisation de param`etres dans les arbres de comportement, ils argumentent qu’en ajoutant cette extension dans le mod`ele de base, les arbres de comportements vont b´en´eficier d’avantages propres aux langages de programmation orient´e objets et ainsi pourront ˆetre cr´e´es comme des fonctions avec des arguments. [FPGMGM + 09] proposent d’inclure des capacit´es de planification en cours d’ex´ecution trouv´ees dans les raisonnements `a base de cas ; pour cela ils ont d´efini un nouveau type de nœud qui repr´esente des requˆetes dans les sens de bases de donn´es ainsi que le concept de sous-arbres r´eutilisables, chaque sous-arbre ayant ´et´e con¸cu pour atteindre des buts sp´ecifiques. Ils ont ajout´es des descriptions `a chaque sous-arbres pour sp´ecifier le but qu’ils accomplissent. Avec ces modifications, un concepteur inclura pendant la phase de conception des nœuds de requˆete dans les arbres de comportements de chaque personnage non joueur ; ces nœuds de requˆete vont r´ecup´erer le sous-arbre le plus appropri´e au contexte actuel du jeu.
De leur cˆot´e, [PSRGM + 11] proposent de r´eduire les probl`emes li´es `a l’utilisation de la planification `a partir de cas dans les jeux de strat´egie en temps r´eel en permettant aux experts d’ajouter des comp´etences en mati`ere de d´ecision sous la forme d’arbres de comportements. Nous trouvons aussi que [PNOB11] et [LBC10] ont propos´e d’utiliser des techniques ´evolutionnistes sur des arbres de comportements afin de produire des personnages joueurs comp´etitifs pour les jeux DEFCON et Mario AI Benchmark. Enfin, [MKSB11] ont ´egalement propos´e d’utiliser des arbres de comportements pour d´ecrire le comportement d’une cam´era intelligente.
Structure d’un arbre de comportement
Les arbres de comportements sont une simple structure de donnees qui synthetise les avantages des automates `a etats finis, des reseaux de tˆaches hierarchiques et de l’execution d’actions [FPGMGM + 09]. Ils permettent d’organiser des comportements d’une fa¸con hierarchique descendante, c’est `a dire, les comportements plus larges et complexes se trouvent en haut de l’arbre et ils sont decomposes en plusieurs sous-arbres contenant des comportements plus simples.
Le bloc principal utilise pour la construction d’un arbre de comportement est une tˆache. Une tˆache peut executer une action tr`es simple comme changer la valeur d’un attribut, tester une condition ou montrer une animation. Nous pouvons regrouper plusieurs tˆaches dans un sous-arbre afin de produire des actions plus complexes.
L’execution d’une tˆache ou d’un sous-arbre donne comme r´esultat un ´etat parmi les trois possibles montres dans la Table 2.1 : Dans le mod`ele de base nous trouvons trois types de tˆaches : actions, conditions et composites .
Avantages des arbres de comportement
Une des principaux avantages des arbres de comportements est qu’ils ont la mˆeme puissance que les automates `a ´etat finis hierarchiques sans souffrir des baisses de performance survenant lorsque la quantite des ´etats et transitions augmentent au fur et a mesure que nous definissons de nouveau comportements. Les arbres de comportements permettent que les transitions vers des autres ´etats soient auto-contenues [BLKJ11].
De la mˆeme fa¸con, grˆace `a leur nature hi´erarchique, ils peuvent ´evoluer facilement car la ´etermination d’un comportement se fait sur plusieurs niveaux d’abstraction [FPGMGM + 09].
Comme l’arbre est construit par regroupement de tˆaches simples, cela reste une solution assez rapide, g´en´erique, modulaire et facilement r´eutilisable. Un autre avantage est que, grˆace `a leur nature r´eactive, les agents seront capables de r´epondre de mani`ere presque imm´ediate aux interventions du joueur en utilisant les comportements que le concepteur a d´efini dans son sc´enario. De plus, les arbres de comportement peuvent ˆetre facilement impl´ement´es tant par les programmeurs que par les personnes avec peu au pas de connaissance en programmation car leur construction est incrementielle ; ils sont aussi facilement contrˆol´es et test´es [PSRGM + 11].
D’autre part, si la construction de chaque tˆaches reste assez g´en´erale, nous pourrons d´efinir des comportements applicables dans un contexte quelconque. Cela nous permettra aussi de commencer l’int´egration d’une base de comportements applicables aux nouveau projets de l’´equipe Vortex ainsi que dans les projets existants. Pour tous ces avantages et du fait que jusqu’`a aujourd’hui, selon la litterature, ils n’ont pas encore ´et´e utilis´es dans les jeux s´erieux nous avons decide de choisir les arbres de comportements comme m´ethode de simulation comportementale.
Implementation des arbres de comportements et integration avec notre jeu
A ce stade, nous avons choisi une m´ethode, un outil et un contexte d’application. Dans la section suivante nous d´ecrirons en d´etail la fa¸con dont les arbres de comportement ont ´et´e impl´ement´es sur Unity3D, ainsi que le m´ecanisme utilis´e pour la cr´eation de nos agents autonomes adaptatif sc´enaris´es. Finalement, nous expliquerons l’architecture de nos agents et son int´egration avec les arbres de comportements. Cependant, avant de rentrer dans tous ces d´etails, nous ´enoncerons quelques sp´ecificit´es propres `a Unity3D qui ont ´et´e tr`es importantes pour le d´eveloppement de notre jeu et desquelles nous allons nous servir justifier notre d´emarche.
Quelques clarifications sur Unity3D
Le bloc de construction de base de tout jeu d´evelopp´e `a travers Unity3D est un Game Object ; chaque objet dans notre jeu (un personnage non joueur, le m´etro, la cam´era principale, etc.) est un Game Object. Ce qui fait la diff´erence entre un GameObject et un autre sont les Components (composants) qui l’int`egrent, c’est `a dire, selon le type d’objet que nous voulons cr´eer nous aurons une combinaison des composants diff´erents. Unity3D nous offre des composants pr´ed´efinis comme les transformations qui d´efinissent la position, l’´echelle, etc. de notre objet ; ou colliders et rigidbodies qui permettent `a notre object d’ˆetre affect´e par la physique, etc.
Si nous souhaitons que nos objets se comportent d’une fa¸con particuli`ere, nous devons ajouter un composant de type Script. Un script est un morceau du code impl´ement´e en utilisant les langages support´es par Unity3D (C# , JavaScript ou Boo) qui sera trait´e et ex´ecut´e par Unity3D comme tout autre composant. Par d´efinition, un script dont nous souhaitons qu’il soit ex´ecut´e par le moteur du jeu (Unity3D) doit h´eriter de la classe MonoBehavior d´efinie par Unity3D. Cette classe mettra `a notre disposition des m´ethodes qui seront appel´ees `a chaque frame (Update, FixedUpdate et LateUpdate ), des m´ethodes qui seront appel´ees une seule fois pendant que l’objet est charg´e en memoire (Awake, Start ) et des ´ev´enements qui vont nous informer sur un quelconque changement dans l’environnement comme par exemple une collision [Tec12].
Par cons´equent, dans les cas o`u nous souhaitons qu’un objet r´ealise certaines action lorsqu’une certaine condition est vraie (comme d´eterminer si la distance entre notre personnage et le joueur est inf´erieure `a un seuil d´efini afin de d´eclencher une action), les contraintes d’ex´ecution nous obligent `a tester cette condition dans une des m´ethodes d’actualisation et comme ces m´ethodes sont appel´ees `a chaque frame (environ entre 30-40 fois par seconde) notre code r´ealise du travail inutile et nous gaspillons des ressources de calculs. Ce ph´enom`ene est aggrav´e lorsque nous souhaitons ex´ecuter un processus ou une action dense qui se d´eroule pendant de multiple frames, car nous sommes donc oblig´e de le faire en un seul moment, mˆeme `a des instants o`u il n’est pas n´ecessaire de le faire.
|
Table des matières
Table des figures
Liste des tableaux
Abstract
Introduction
1.Etat de l’art
1.1 Agents virtuels autonomes
1.1.1 Definition d’agent autonome adaptatif
1.1.2 Architecture de base d’un agent autonome adaptatif
1.1.3 Avantages des agents autonomes adaptatif
1.2 Modélisation des comportements autonomes
1.2.1 Architectures cognitives
1.2.2 Systeme multi-agents
1.2.3 Animation comportementale
1.2.4 Bilan
1.3 La simulation comportementale dans les jeux vidéo
1.3.1 La recherche et la planification du chemin
1.3.2 Le pilotage et contrôle du mouvement
1.3.3 Application et nouvelles méthodes de simulation comportementale
2 Contributions du stage
2.1 Objectifs et problématique du stage
2.1.1 Contexte
2.1.2 Objectifs
2.1.3 Contributions
2.2 Arbres de comportement
2.2.1 Origine des arbres de comportement
2.2.2 Structure d’un arbre de comportement
2.2.3 Avantages des arbres de comportement
2.3 Jeu sérieux : Prendre le metro, une question de civilite
2.3.1 Définition du contenu serieux
2.3.2 Imaginer le concept du jeu
2.3.3 Selection d’une usine a jeux : Unity3D
2.4 Implémentation des arbres de comportements et intégration avec notre jeu
2.4.1 Quelques clarifications sur Unity3D
2.4.2 Notion de coroutine
2.4.3 Notre implémentation des arbres de comportements
2.4.4 Mécanisme de création des agents autonomes
2.4.5 Architecture finale des PNJ
Conclusion
References
Télécharger le rapport complet