L animation comportementale Un survol et quelques exemples inspirés essentiellement des travaux de l équipe SIAMES IRISA, Rennes www.game-research.com www.igda.org/writing/virtualstorytelling.htm www.openmask.org
De quoi parle t-on?
De quoi parle t-on? Demetri Terzopoulos http://www.mrl.nyu.edu/ %7Edt/alife.html Animation physiologique réaliste d êtres vivants 3
De quoi parle t-on? Modèles de comportements individuels 4
De quoi parle t-on? Stéphane Donikian Le musée virtuel Modèles de comportements sociétaux http://www.irisa.fr/prive/ donikian/virtual_museum.html interaction de comportements individuels 5
De quoi parle t-on? Modèles de comportements sociétaux individus en interaction 6
De quoi parle t-on? Modèles de comportements sociétaux http://www.irisa.fr/siames/openmask/ véhicules en interaction ou pas 7
Animation comportementale activité d'acteurs virtuels autonomes qui évoluent dans un environnement lui-même virtuel Les acteurs sont capables de percevoir, de décider et d'agir par eux-mêmes dans un certain cadre qui leur est imposé. Le système représenté par les acteurs et leur environnement évolue d'une manière qui n'est pas prédéterminée.. 8
L animation comportementale s attache à décrire la raison d un mouvement plutôt que le mouvement lui-même. L idée est de doter les entités de comportements et d une certaine autonomie. Deux familles d approches : Agents réactifs, cognitifs, hybrides Automates 9
Niveaux de comportements système perceptuel social rationnel cognitif réactif système locomoteur biomécanique et physique système organique 10
À modéliser Environnement le paysage dans lequel se déroule l action Acteurs Les acteurs de l action Scénarios La trame de l action 11
À modéliser Environnement Monde virtuel, objets manipulables ou non, entités, avatars 12
À modéliser Acteurs Automates (comportements stéréotypés souvent indépendants du contexte) Agents réactifs (jeu de règles de comportement pour des situations pré-définies). Exemple : évitement. Agents cognitifs (mécanismes de décision). Exemple : choix entre plusieurs priorités, Agents hybrides (réactifs et cognitifs) 13
À modéliser Scénarios Automate : description précise du comportement individuel de l agent : script Agent (réactif et cognitif) : Spécification des tâches à accomplir sans dire comment ; c est à l agent de se débrouiller Groupes d agents (foules) : spécification du comportement global de la foule, qui induit des comportements individuels pour les agents en fonction de leurs caractéristiques propres. 14
Animation comportementale Disciplines concernées animation classique par ordinateur réalité virtuelle intelligence artificielle (vie artificielle) mais aussi psychologie comportementale neurosciences biologie physique 15
Les automates Un automate réagit aux stimuli suivant un schéma pré-défini en fonction de son état interne. Peu d autonomie / aisément contrôlable Domaines d application comportements concurrents / parallèles comportements hiérarchiques / organisés 16
Les automates Spécification complète et précise du comportement eachtime(c1) {A} until(c2) loop c1.!c2/ start new(ai); timegate #/start loop c2/#!c1.!c2/# c2/# end(a1,a2, )/# 17
Les automates Langages de description de comportement (exemple : HPTS, équipe SIAMES) Systèmes d automates hiérarchiques et parallèles Possibilité de temporisation sur les états et les transitions, transitions aléatoires 18
Les agents Un agent est une entité active, autonome mais sociable, qui peut être (pseudo-)intelligente et qui interagit avec un environnement dynamique (son comportement dépend du contexte). Un agent minimal fonctionne selon un cycle de perception, de décision et d actions et dispose d une connaissance de son état interne. 19
Les agents Agent minimal État interne stimuli Récepteurs Décision Effecteurs actions Autonomie d un agent la réaction aux stimuli en provenance de son environnement et de son état interne provoque des actions sur son environnement et sur son état interne. 20
Les agents Agent communiquant il reçoit et émet des messages. Intelligence d un agent communiquant capacité à raisonner sur des données symboliques. Un agent peut être pseudo-intelligent : agent cognitif par opposition aux agents réactifs qui ont des comportements réflexes. 21
Les agents Agent communicant État interne stimuli Capteurs Décision Effecteurs actions messages Récepteurs Planification Émetteurs Connaissances messages 22
Description de scénarios Mots clés : virtual storytelling, virtual drama, interactive narrative But : maîtriser le déroulement d une séquence en tenant compte : de l autonomie des entités des diverses possibilités d interactions 23
Description de scénarios Quelques enjeux de la scénarisation : Fournir des outils adaptés pour la scénarisation de jeux vidéos dans le but de réduire le temps et les coûts de développements. Créer automatiquement des histoires (virtual storytelling) Concevoir et piloter des systèmes complexes. 24
Approche orientée script L histoire est entièrement décrite, les entités n ont aucune autonomie et les interactions de l utilisateur n ont pas de conséquence sur l histoire. 25
Approche orientée script Langage SLuHrG : fondé sur HPTS et possède les mêmes caractéristiques. Interface d acteur : Héritée de classes génériques C++. Composée d évènements et de méthodes. Système de communication par messages. Manipulation par ensemble. Scénario et Instructions : Instructions d insertion de code C++ Instructions de contrôle : if, else, repeat, waitfor, eachtime, aslongas, etc. Instruction d ordonnancement : schedule. 26
Approche orientée script Avantages : Tous les éléments sont décrits et apparaissent dans le code. Les situations incohérentes sont donc impossibles. Aptitude à décrire des scénarios très complexes. Inconvénients : Quantité conséquente de code ou de scripts à produire. Processus de réécriture complexe en cas de modification. 27
Approche orientée comportements Pas de scénario en tant que tel : Par leurs interactions mutuelles et avec l environnement, ce sont les acteurs, dotés de comportements, qui créent l histoire. La description des comportements doit donc être en rapport avec le type d histoires souhaitées Le choix du mécanisme de sélection de l action des acteurs est important. L utilisateur est complètement intégré à l histoire et peut avoir un rôle déterminant sur son déroulement. 28
Approche orientée comportements Les acteurs possèdent un rôle qui peut être décomposé en buts, sous buts, et actions terminales ; il est représenté par un réseau de tâches hiérarchiques (HTN). Le système de planification parcours l arbre en profondeur d abord et les actions terminales de gauche a droite. Des heuristiques sur les noeuds, des pré-conditions sur les actions terminales et l état interne de l acteur influent sur la planification. 29
Approche orientée comportements réseau de tâches hiérarchiques (HTN). 30
Approche orientée comportements Avantages : L histoire est générée par l interaction entre les acteurs et l utilisateur. La quantité de code à produire est réduite. Inconvénients : L histoire peut devenir incohérente. Des fins prématurées peuvent survenir. 31
Approche intermédiaire Combine les approches orientée acteurs et orientée script pour offrir aux acteurs une certaine autonomie tout en conservant un contrôle de l action relatif au type d histoire souhaitée. Principe : guider les actions des acteurs pour arriver à construire une histoire semi structurée et consistante. 32
Approche intermédiaire Virtual StoryTeller : Les acteurs disposent de rôles, sont autonomes mais n ont aucune connaissance de l histoire. Un directeur ne connaît pas le scénario mais dispose de connaissances sur la création d une bonne histoire. Les acteurs, avant de faire une action, demandent au directeur la permission qui juge de la pertinence de l action et l autorise ou non. 33
Approche intermédiaire Avantages : L histoire restera cohérente. Le déroulement n est pas pré-déterminé mais la ou les fins seront respectées. Expression plus au niveau des scénarios. Inconvénients : La description du directeur peut être assez difficile. 34
Description de scénarios Comparaison des approches Approche orientée script : ne permet pas de réelles innovations. code de grande taille en général. Approche orientée comportement : semble offrir beaucoup de possibilités, mais son indéterminisme n offre pas une solution fiable pour la création de jeux scénarisés. Approche intermédiaire semble être une solution plus propice pour créer des scénarios dynamiques intégrant l utilisateur, avec l assurance d une cohérence. 35
Simulation de foules humaines 36
Foules humaines Foules de passants, de badauds, d'individus ayant un but, de groupes d'individus pas nécessairement de cohésion Les individus sont ensemble parce que leurs objectifs propres leur font adopter des trajectoires proches, mais il n'y a pas nécessairement de facteur de cohésion. sauf dans certains cas cas d'une manif. politique (on retrouve la grégarité). cas de familles, groupes d'amis : cohésion de groupes au sein de la foule mais pas cohésion de la foule elle-même 37
Simulation de foules humaines Comportement de foules basé sur des comportements de groupes comportement de foule comportement de groupe comportement de groupe comportement de groupe comportement de groupe comportements individuels comportement émergent 38
Comportement de groupe Objectifs (buts) buts points d action points d intérêt points qui peuvent avoir une action associée points utilisés pour déterminer le chemin du groupe 39
Comportement de groupe Objectifs (buts) 40
Comportement de groupe Collectif Capacité à fonctionner ensemble (de concert) 41
Comportement de groupe Grégarité Capacité à suivre un leader 42
Comportement de groupe Dispertion / agrégation 43
Modélisation du comportement humain Besoin de modéliser les différentes facultés qui constituent ensemble l esprit humain, sans oublier leur relation avec le corps : le langage (production et perception), la mémoire, la perception, le contrôle musculaire, les émotions. 44
Modélisation du comportement humain Besoin de modéliser des facultés spécifiques à un métier, à une activité particulière : conduite automobile par exemple. 45
Modélisation du comportement humain Par le bas modélisation de l activité cérébrale elle-même en fonction des stimuli divers auxquels est soumis le cerveau. On utilise souvent les réseaux de neurones Par le haut modélisation de l émanation symbolique de l activité cérébrale (pensée, émotion, raisonnement, ) en fonction des interactions de même nature Définition de modules décrivant chacun un mécanisme et des relations de séquencialité ou de parallélisme existant entre eux 46
Modélisation du comportement humain Perspective Pas de modélisation de l intelligence humaine Modélisation crédible d acteurs virtuels anthropomorphes évoluant en temps réel dans des mondes virtuels. 47
Modélisation du comportement humain Plusieurs types de retour des effecteurs vers les capteurs : 1. l homéostasie : boucle de régulation interne de l organisme correspondant au maintien des paramètres biologiques face aux variations du milieu ambiant ; 2. le comportement d acquisition : partie du comportement utilisée pour améliorer la perception ; 3. les interactions avec l environnement : boucle de retour la plus importante. 48
Modélisation du comportement humain Unités de traitement homéostasie (régulation interne) Récepteurs Effecteurs comportement d acquisition Environnement 49
Modélisation du comportement humain Capacités de l être humain perception extéroceptive perception de l environnement par les cinq sens. proprioceptive perception de son propre état interne, en particulier la faim, la soif, la fatigue traitement raisonnements plus ou moins intuitifs basés sur les données perçues mais aussi sur ses propres connaissances décision : fondée sur le résultat du raisonnement actions mémorisation des expériences vécues 50
Cognition se réfère généralement à des processus mentaux variés tels que : l attention, la reconnaissance des lieux, la reconnaissance des objets, la planification le raisonnement. 51
Cognition Constat : pas de notion de comportement alors que la plupart des fonctions cérébrales servent à organiser le comportement d un organisme vis-à-vis de son environnement Conclusion : nécessité d une théorie de la cognition orientée comportement reconnaissance de l existence de représentations mentales 52
Modèle comportemental de la cognition Premier principe : Choisir le mécanisme et la représentation les plus simples requis pour expliquer un comportement observé Inutile de mettre en place une usine à gaz à base d intelligence artificielle avancée, alors que de simples mécanismes réflexes peuvent parfois suffire. Exemple : comportement réflexe qui paraît sophistiqué d une guêpe maçonnière 53
Modèle comportemental de la cognition Deuxième principe : Déterminer quel est le comportement le plus simple qui requiert un type donné de représentation mentale. Ce n est pas la peine de mettre en place un certain type de représentation mentale si le comportement le plus simple qui lui correspond n a pas à être modélisé. 54
Théorie du contrôle Concept de base : l asservissement lorsque les résultats du comportement d un système sont différents de celui désiré, le système modifie son comportement via une boucle de rétroaction de la sortie du système sur son entrée système : organisme résultat du comportement : résultat des actions effectuées par l organisme 55
Théorie du contrôle Boucle de rétroaction 1. comparaison entre un état perçu et un état attendu 2. maintien de l erreur dans des limites acceptables 56
Théorie du contrôle agent comparaison Unités de traitement représentation mentale objectif traitement de la perception décision Récepteurs boucle de rétroaction Effecteurs perception action réalité 57
Théorie du contrôle Boucle de rétroaction : notion générique fonde tous les processus d adaptations à tous niveaux asservissement musculaire planification d action prise en compte du contexte régulation des comportements sociaux 58
Concurrence Concurrence dans l'accès à des ressources internes (au sein d'un même acteur) externes (ressource commune à plusieurs acteurs) entre des buts (concurrences fonctionnelles (?)) certains buts sont contradictoires logique chercher de la nourriture vs fuir un prédateur deux actions sont techniquement combinables mais le faire serait absurde (elles concourent à des buts contradictoires) pression sur la pédale d'accélération versus utilisation du frein à main. 59
Sélection de comportements Problème essentiel : Choix entre les comportements concurrents possibles fuir ou attaquer, boire ou fumer, accélérer ou s arrêter à un feu, respecter la cohésion ou éviter les collisions, 60
Sélection de comportements Nécessité d une stratégie de sélection des comportements automate, règles de déclenchement, excitation ou inhibition, 61
Représentation par un automate Un comportement est un état de l automate
Système d excitation/inhibition Les comportements sont excités ou inhibés
Système d excitation/ inhibition Influence mutuelle système de vote, Influence externe, Contextes, Planificateur, Module de sélection, Sélection par la perception (comportements réactifs) réseaux de neurones 64
Système d excitation/inhibition Influence externe suivant des points de vue Sources de recommandations de comportements plusieurs points de vue (ici des niveaux d analyse) situation externe globale : conditions particulières de l environnement pouvant influer sur le comportement de l acteur Module de cognition : envisage les interactions de l'entité avec l'environnement externe et ses modules de recommandations Module de besoin : pour ajuster le comportement de l'entité en fonction de ses objectifs propres et du rôle qu elle a à jouer Module de sélection finale unifie les recommandations pour choisir les comportements à adopter. SIR-LABORIUS Université de Sherbrooke, CANADA 65
Environnement Système d excitation/inhibition Influence externe suivant des points de vue SIR-LABORIUS Université de Sherbrooke, CANADA Contexte Sélection du comportement Situation externe globale C 4 C 1 C 2 État de l acteur Module de cognition Module de besoins C 5 C 6 C 7 C 3 Sélection finale Effecteurs recommandent
Système d excitation/inhibition Alex Buendia Société SPIROPS Influence externe suivant des points de vue Centres d intérêt : expriment un point de vue expriment leur avis (intérêt) à propos d un comportement potentiel par : excitation énergétique : les excitations se cumulent, ce qui peut favoriser certains comportements éclairés par plusieurs centres d intérêt inhibition énergétique : réduit une excitation déjà présente Chaque centre d intérêt ne concourt qu à un seul objectif égoïsme Le calcul de l intérêt d un centre d intérêt provient de motivations : facteur interne, fonction de l état et des buts d opportunités : facteur externe, issu de l environnement 67
Environnement Système d excitation/inhibition Alex Buendia Société SPIROPS Influence externe suivant des points de vue Contexte Sélection du comportement Centre d intérêt 1 C 1 Centre d intérêt 2 C 4 État de l acteur Centre d intérêt 3 Centre d intérêt 4 Centre d intérêt 5 Centre d intérêt 6 Centre d intérêt 7 Centre d intérêt 8 C 5 C 6 C 7 C 3 C 2 Effecteurs Centre d intérêt 9 excitation/inhibition énergétique
Environnement Système d excitation/inhibition Alex Buendia Société SPIROPS Influence externe suivant des points de vue Contexte Sélection du comportement Centre d intérêt 1 C 1 État de l acteur Centre d intérêt 2 Centre d intérêt 3 Centre d intérêt 4 Centre d intérêt 5 Centre d intérêt 6 Centre d intérêt 7 C 5 C 4 C 6 C 3 C 2 Effecteurs Centre d intérêt 8 C 7 Centre d intérêt 9 excitation/inhibition énergétique
Système d excitation/ inhibition Xiaolin Hu Georgia State University Atlanta USA Sélection directe par le contexte Couche contexte Couche comportements Contexte 1 C 1 C 4 C 2 Contexte 2 Contexte 3 C 5 C 3 C 6 Effecteurs C 7 Contexte 4 inhibition mutuelle 70
Système d excitation/ inhibition Xiaolin Hu Georgia State University Atlanta USA Sélection directe par le contexte Couche contexte Couche comportements Contexte 1 C 1 C 4 C 2 Contexte 2 Contexte 3 C 5 C 3 C 6 Effecteurs C 7 Contexte 4 inhibition mutuelle déterminée par le contexte 71
Système d excitation/inhibition David PANZOLI panzoli@irit.fr Sélection par la perception Utilisation des réseaux de neurones suivant les couches : capacités réactives capacités d anticipation (couche associative) 72
Représentation par règles À chaque comportement possible, est associé une règle
Sélection de comportements Potentialité d action (comportement) décrite dans le système cognitif sous la forme si situation alors action mais l apparition de la situation n induit pas forcément l action ces règles servent juste à filtrer, dans l ensemble des actions imaginables, celles qui sont susceptible d être effectuée dans une situation donnée Le processus de décision proprement dit est en aval 74
Sélection de comportements coopération combinaison de plusieurs potentialités d actions compétition une seule potentialité d action conservée parmi les actions possibles dans une situation donnée 75
Sélection de comportements Propriétés des règles seuil d activation pondération priorité en cas de concurrence Ressources nécessitées par l action Préférence préférence consciente pour un comportement 76
Sélection de comportements Relations statiques entre les règles compatibilité ou incompatibilité inclusion partielle des effets Relations dynamiques entre règles inhibition (concurrence ou redondance des effets) renforcement (coopération) 77
Le langage HPTS (Hierarchical Parallel Transition Systems)
Langage de description des comportements Fonctionnalités requises Contrainte Objectif Modularité mise à jour Réactivité simulation temps réel Hiérarchie structure de contrôle Simultanéité, concurrence activités parallèles incompatibles Préemption résolution des conflits Exceptions gestion des situations d exception Gestion du temps activités de durées différentes Gestion des flux de données communication entre les unités 79
Représentation par des automates
Exemple d automate pour modéliser la conduite tourner à gauche suivre ralentir pour tourner distance frontale acceptable attendre le signal tourner à droite conduite libre stopper arrêt distance lattérale acceptable ne pas tourner 81
Représentation par automates Système de transitions événement e1 (c) A B transition condition états e2 C e2 82
Représentation par automates Système de transitions A e1 (c) B c, e1 e2 C e2 83
Représentation par automates Système de transitions A e1 (c) B c e2 C e2 84
Représentation par automates Système de transitions A e1 (c) B c, e1 e2 C e2 85
Représentation par automates Système de transitions A e1 (c) B e2 e2 C e2 86
Représentation par automates Mécanisme d abstraction avant A e1 (c) B e2 e2 C 87
Représentation par automates Mécanisme d abstraction après D A e1 (c) B e2 C 88
Représentation par automates Orthogonalité A2 et C2 sont simultanément actifs A1 A2 e1 B2 e1 B1 C2 e1 ou e3 D2 e2 F0 89
Représentation par automates Un exemple d utilisation sommaire rouler normalement événement : le feu passe au rouge freiner 90
Syntaxe de HPTS
Exemple 1 simple init ev1/ev3 run ev2 fin AUTOMATE simple; { //état initial INITIAL init; //état final FINAL fin; //liste des états ETATS { init; run; fin; } //liste des transitions TRANSITION t1; { ORIGINE init; EXTREMITE run; MSGEVT(ev1)/MSGEVT(ev3); } TRANSITION t2; { ORIGINE run; EXTREMITE fin; MSGEVT(ev2)/#; } } 92
Exemple 2 2 simple_flots init run fin a=0 b=0 ev1 a=a+1 b=a ev2 Variables locales a : entier Sorties b : entier ev2 run2 a=a+1 b=2*a ev3 AUTOMATE simple_flots; { VARIABLES { int a;int b; } //données de sortie OUT b; INITIAL init; FINAL fin; ETATS { init;{a=0;b=0;} run;{a=a+1;b=a;} run2;{a=a +1;b=2*a;} fin; } TRANSITION t1; { ORIGINE init; EXTREMITE run; MSGEVT(ev1)/#; } } TRANSITION t2; { ORIGINE init; EXTREMITE run2; MSGEVT(ev2)/#; } TRANSITION t3; { ORIGINE run; EXTREMITE fin; MSGEVT(ev2)/#; } ev3 93
Exemple 3 macro debut a simple init ev1 run ev2 fin final AUTOMATE macro; { INITIAL debut; FINAL final; ETATS { debut; simple; final; } TRANSITION t1; { ORIGINE debut; EXTREMITE simple; MSGEVT(a)/AUTO(start,simple); } TRANSITION t2; { ORIGINE simple; EXTREMITE final; AUTO(end,simple)/#; } } 94
Exemple 4 concurrent debut a simple simple1 simple2 final AUTOMATE concurrent; { INITIAL debut; FINAL final; ETATS { debut; simple; final; } TRANSITION t1; { ORIGINE debut; EXTREMITE simple; MSGEVT(a)/ AUTO(start,simple1), AUTO(start,simple2); } TRANSITION t2; { ORIGINE simple; EXTREMITE final; AUTO(end,simple1) AUTO(end,simple2)/#; } 95
Dépassement véhicule Libre Déboiter Suivi Rabattre 96
Automate feu_tram AUTO(end,VUT) / # AUTO(end,JVL) / # VUTa / AUTO(start,VUT[a]) VUTa JVLb f_1(b) AUTO(start,JVL[b]) VVL_mini 6s VUTb notf() / # VUTb / AUTO(start,VUT[b]) f_4(b) / AUTO(start,JVL[b]) VVL_rallonge f_1(a) / AUTO(start,JVL[a]) f_4(a) / AUTO(start,JVL[a]) JVLa 97
98
99