IDEAS4Games
Transcription
IDEAS4Games
IDEAS4Games Techniken zur Erstellung von Computerspielen mit interaktiven Virtuellen Charakteren Einführung in die Spieleprogrammierung WS 08/09 Dr. Patrick Gebhard [email protected] http://www.dfki.de/~gebhard Motivation • Ziele von I4G - KI-Technologien für Computerspiele von übermorgen - Expressives Ausdrucksverhalten bei Virtuellen Charakteren - Einfachere Interaktion mit Computerspielen • Methoden - Modelbasierte Verhaltens- und Interaktionssteuerung - Simulation von Gefühlen - Ausdruck von Gefühlen im Verhalten 2 Übersicht • Virtuelle Charaktere • Ansätze zur Modellierung von Dialog- und Interaktion • SceneMaker - Autorenwerkzeug • Simulation von Gefühlen • AI Poker Demonstrator 3 Virtuelle Charaktere in Anwendungen • • • • • Assistenten Trainer Partner Werbe-/Verkaufspersonal NPC 4 Vorteile Virtueller Charaktere Können Hemmschwelle senken Erhöhen Motivation & Aufmerksamkeit Können Körpersprache einsetzen Können sich emotional & sozial verhalten Können körperliche Handlungen vorführen und in 3D-Räumen Orientierung bieten • Bindungsfähige Bezugsperson • Mehrere Agenten können dialogisch agieren • Wichtig: Akzeptanz beim Benutzer! • • • • • 5 Figuren in Computerspielen • Sehr realistische Bewegungen, aber … - … von Hand gemacht über 12,000 Animationen für Titelfigur - … Schwerpunkte Kampf und Akrobatik • Es fehlen … - … automatisches nonverbales Verhalten (Interaktion Gestik-Sprache) - … Steuerungs- und Modellierungswerkzeuge für komplexes (Dialog-)Verhalten [Assassin’s CreedUbisoft, Nov. 2007] 6 Glaubhaftes Verhalten • Was ist Ausdrucksverhalten? - Kognitives Verhalten - Soziales Verhalten • Modalitäten - Non-Verbal - Gesichtsausdruck & Mimik - Körperhaltung & Gestik - Physiologische Reaktionen - Verbal • Dialog-/Interaktionsverhalten • Problem: Wie bekommt man das hin? 7 Modellierung von Interaktion und Dialog • Ansatz: Plan-/Regelsysteme - Goals repräsentieren Zustände im Dialog - Facts definieren Inhalte/spezifizieren Zustände - Plans/Actions erfüllen Goals Welcome SayHello EndWelcome Welcome SayHello Intro Details Place Details EndWelcome Details Time Place 8 Eigenschaften • Beobachtungen - Struktur von Dialog-/Interaktion ist oft sequentiell - Unsere Pläne/Regeln replizieren Endliche Automaten • Vorteile - Hohe Variabilität - Reihenfolge von Pläne ist egal • Nachteile - Umständlich zu verstehen Nicht-Experten haben keine Chance! - Äußerungen/Referenzen im Plancode (Fakten) - Schwer zu Debuggen 9 Vergleich Pläne mit HFSM Welcome Welcome SayHello SayHello Intro Details Details Place Intro Details Time Welcome SayHello EndWelcome Time Details EndWelcome Details EndWelcome Place Time 10 Pokerspiel • Spielen von Draw Poker gegen 2 Virtuelle Charaktere • Draw Poker - 2 Bietrunden - 3 Karten können getauscht werden • 2 Virtuelle Charaktere: Sam & Max - Unterschiedliche(r) Persönlichkeit und Spielstil - Aussehen - Emotionales Verhalten 11 Verwendete Pokeralgorithmen 1. Konservativ (Sam) - JESS Regelsystem - 36 Regeln aggressive - Versucht die Hand zu verbessern - Spielheuristiken können leicht angepasst werden 2. Aggressiv (Max) conservative - Brute-Force-Ansatz - Bewertung von 2.6 Mio. Kombinationen von 5 Karten - Heuristik: Bestes Ergebnis erreichen 12 Kurzüberblick 13 Instrumentierte Pokerumgebung Charakteranzeige Horde 3D MARY 3D Renderer TTS KartenMonitor RFID Sensoren Instrumentierter Pokertisch RFIDPokerkarten Action Controller } RFID Module SceneMaker ALMA Dialog Emotion Interaction Comp. Manager Poker Engine 14 Interaktion und Dialoge in Computerspielen • Ziel: Interaktion sollte einfach und intuitiv sein • Ansatz: Erweiterung der Spielschnittstellen um Technolgien, die eine natürliche Interaktion erlauben • Intelligente Dialoge sind essentiell • Glaubwürdigkeit von Charakteren • Akzeptanz im Allgemeinen • Ansatz: Erstellung von Inhalten durch Experten! 15 Modellierung von Interaktion und Dialog • SceneMaker Autorenwerkeug [Gebhard et al. 2003] - ähnliche Ansätze: DEAL [Brusk 07], Cyranus [Iurgel 06] • Ansatz: Getrennte Modellierung von - Inhalt (Szenen) - Dialog- und Interaktionsablauf (SceneFlow) • Erstellung durch Nicht-Computerexperten • Möglichkeit zur Kompilation des Dialog Interaction Managers Scenes + Sceneflow compilation Dialog Interaction Manager 16 Aufbau von Szenen Sprach-Id Szenen-Id Scene, de, Welcome Sam: [Camera Sam][looktouser] Hallo. Schön, [point] dass Sie Zeit für ein Spielchen haben. [GoodEvent 0.6] Max: [Camera Max] Mein [looktoother] Kumpel und ich haben uns schon ein wenig gelangweilt. [S nod] Sam: [Camera Sam] Zu zweit [looktouser][M looktouser] macht Poker einfach keinen Spaß. [M nod] [BadUnlikelyFutureEvent 0.6] Max: [Camera normal] Systembefehle Gefühlseingabe Animationsbefehle 17 Szenen zur Laufzeit MARY Horde 3D TTS 3D Renderer Scene, de, Welcome Sam: [Camera Sam][looktouser] Hallo. Schön, [point] dass Sie Zeit für ein Spielchen haben. [GoodEvent 0.6] Max: [Camera Max] Mein [looktoother] Kumpel und ich haben uns schon ein wenig gelangweilt. [M nod] Sam: [Camera Sam] Zu zweit [looktouser][M looktouser] Generierung macht Poker einfach keinen Spaß. [M nod] [BadUnlikelyFutureEvent 0.6] Max: [Camera normal] Action Controller Dialog Interaction Manager Action Sequence audio - file lipsync animation Animation Sam Camera Animation Sam Affect input time 18 Drehbuch 19 SceneFlow • SceneFlow - repräsentiert Dialog- und Interaktionsmodell - basiert auf StateChart-Model [Harel 87] - XML-Format (SFXML) - ähnlich zu SCXML [http://www.w3.org/TR/scxml/] - besteht aus Zuständen und Übergängen mit Befehlen Aufgabe Start Ende - Zustände können Aufgabe Art Hinweis Warten andere enthalten = Superknoten 20 Superknoten sind Module! S Ende = Start • Eigener Variablenscope S 1 3 2 5 = 4 Start Start = S.2 • Verwendung wie Module/ Funktionen • Parameterisierbar (z.B. Start) Ende 1 S Ende 2 21 Sceneflow - Übergänge • Typen von Übergängen - Zufall 40% C - Bedingung a>0 C - Zeit A A A A 1 - Unterbrechend 2 u == true 60% a <= 0 time > 20s B B B B 3 • Übergänge dienen zur Modellierung von Reaktionen auf Benutzeraktionen und von Variationen im Verhalten 22 Ausführungssemantik • Ausführung von Knoten: 1. Lokale Typen und Variablen deklarieren 2. Befehle ausführen (Szenen abspielen) 3. Wenn Superknoten, dann Startknoten ausführen 4. Bedingungskanten und Timeoutkanten prüfen 5. Probabilistische Kanten prüfen 6. Nächste Kante und nächsten Knoten ausführen 23 Visual Programming - SceneFlowEditor Bausteine Variablenanzeige Arbeitsfläche 24 Diskussion und Erweiterung • Schwächen des bisherigen Ansatzes: - Sequentielle Ausführung - keine parallele Ansteuerung von Charakteren möglich - Knoten haben kein Gedächtnis - Externe Repräsentation notwendig, falls diese Information benötigt wird • Lösung: - Parallele Zustandsautomaten (orthogonale Komponenten) - History-Knoten 25 Parallele Zustandsautomaten • Vorteile: - Modellierung von komplexen parallelen Prozessen wie z.B. bei Verhaltensaspekten - kompakte Beschreibung möglich - einfaches Hinzufügen von Verhaltensaspekten - Dekomposition grosser Zustandsräume • Nachteile: - Synchronisation notwendig - Probleme wie bei Multi-Thread-Anwendungen - Deadlocks, Starvation, ... - Resourceninkonsistenz 26 Modellierung paralleler Prozesse Welt Charaktere Rest Max Emotionen Sam Dialog Bewegung Kopf Körper 27 Dekomposition von Zustandsräumen • Beispiel Affenkäfig: In einem Affenkäfig befinden sich die Affen Sam und Max. Ein Affe tollt so lange herum bis er Hunger bekommt oder müde wird. Falls er müde wird, geht er schlafen und beendet dann sein Verhalten. Falls er Hunger bekommt, dann nimmt er eine Banane, isst diese und beendet dann sein Verhalten. 28 Affenkäfig - Modellierung von Verhalten 29 Affenkäfig - Modellierung von Verhalten (Forts.) 30 Synchronisation • Beispiel: Bar John wartet ungeduldig an der Bar bis ihm der Barkeeper einschenkt. Dann trinkt er alle 30 Sekunden vom Getränk und schaut sich zwischenzeitlich um. Ist das Glas leer, wartet John wieder ungeduldig bis der Baarkeeper nachschenkt. 31 Synchronisation über Variable? Barkeeper John Problem: Zustand Ungeduldig von John muss abgewartet werden! 32 Synchronisation mit Zustandsabfrage Barkeeper John 33 SceneFlowEditor - Parallele SceneFlows 34 Warum Simulation von Gefühlen? Körperhaltung Gesten Mimik Mensch Computer Sprache Gefühle Physiologische Reaktionen 35 Warum Simulation von Gefühlen? • Gefühle beeinflussen Verhalten - insbesondere Kommunikation • Emotionen beeinflussen das Handeln • Stimmungen beeinflussen das Denken »emotions bias action, whereas moods bias cognition« [Davidson 1994] 36 ALMA - Echtzeitsimulation von Gefühlen • Einfache Erzeugung von Gefühlen durch - Appraisal- und DialogAct-Tags • Erweiterte Integration von mehreren Gefühlskonzepten - Simulation von Abhängigkeiten Personality Grundintensität, Zerfallsdauer Grundstimmung Aktive Emotionen ändern Stimmung Emotions Mood Stimmung beeinflusst Dauer und Intensität [Gebhard 2005, Gebhard & Kipp 2006] 37 Individualisierung Virtueller Charaktere Emotionen • kurzzeitige, intensive Gefühle • Regulierung von Handlungen • Steuerung von Mimik, Gestik und sprachlichen Eigenschaften • Modelle: - Basic Emotions [Ekmann 1992] - Dimensionale Modelle [Russell 1980] - OCC-Emotionen [Ortony, Clores, Collins 1988] • Computermodelle: - Affective Reasoner [Elliot 1992] - Émile [Gratch 2000] - Greta's Mind [de Rosis 2003] - ... Persönlichkeit • Statisches Gefühlswissen • Klassifikation von Verhaltenseigenschaften • Regulation von Emotionsintensitäten • Modell: - BigFive-Modell für Persönlichkeit [McCrae, Costa 1991] • Computermodelle: - Artificial Emotion Engine [Wilson 2000] - SCREAM [Prendinger & Ishizuka 2002] - Emotional Model [Jed et al. 2004] - ... 38 BigFive-Modell für Persönlichkeit • Beschreibt charakteristische Merkmale • 5 Merkmalsdimensionen - Openness (Offenheit) - Concientiousness (Gewissenhaftigkeit) - Extraversion (Extraversion) - Agreeableness (Freundlichkeit) - Neurotisicm (Emotionale Stabilität) • Repräsentiert als bipolare Wertdimensionen 39 Profile der Pokercharaktere Sam & Max • Sam - Stimmung: Relaxed - Tendenz zu Exuberant - Fokus: "having fun" - Bewertung unterstützt positive Emotionen • Max - Stimmung: Relaxed - Tendenz zu Hostile - Fokus: "making money" - Bewertung unterstützt negative Emotionen 40 Individualisierung Virtueller Charaktere Emotionen Stimmungen • • • Mittelfristige Gefühle Intensitätsregulation von Emotionen Globaler Zustandsindikator: feeling-as-information [Schwarz 1990] • • • Erweiterte Handlungsregulation Simulation von Haltung • Beobachtung: Betrachtet wurden stets Stimmungen zwischen gut/schlecht! Persönlichkeit Computermodelle: - FLAME [Nasr et al. 2002] - Artificial Emotion Engine [Wilson 2003] - Emotional Model [Jed et al. 2004] 41 PAD-Modell für Stimmungen [Mehrabian 1996] • Stimmung als Tripel der Qualitätsdimensionen Pleasure, Arousal und Dominance • 8 Stimmungsklassen - Exuberant, Bored - Dependent, Disdainful - Relaxed, Anxious - Docile, Hostile 42 ALMA - Typen von Gefühlen Zeitliche Ausprägung langfristig Typen Personality BigFive [McCrae, Costa 1991] mittelfristig Mood PAD [Mehrabian 1995] kurzfristig Emotions OCC [Ortony, Clores, Collins 1988] 43 ALMA - Grundstimmung • • Definierter Ausgangspunkt Basiert auf einer Abbildung von BigFive-Persönlichkeits-Werte auf PAD-Werte [Mehrabian 1995a] 44 ALMA - Gefühlsberechnung • Anpassbare Simulation von Emotionen - Zerfallszeit - Zerfallsfunktion - Auffrischungsintervall • Erweiterte Stimmungssimulation - 8 Stimmungstypen in Abhängigkeit von P-, A-, D-Werten - Funktionaler Ansatz zur Stimmungsänderung - Metawissen, z.B. Stimmungstendenz 45 ALMA Änderung und Verstärkung von Stimmung Stimmungsänderung Stimmungsverstärkung STV bewegt Stimmungspunkt pro Zeiteinheit in Richtung Emotionsschwerpunkt STV bewegt Stimmungspunkt pro Zeiteinheit weg vom Ursprung 46 ALMA - Stimmungskenngrößen • Zusätzliches Wissen für KI-Systeme • Metrik zum Vergleichen von Stimmungen - Stimmungsabweichung - Ähnliche Stimmung - Soziale Integrität • Stimmungstendenz • Gruppenstimmung 47 ALMA - CharacterBuilder 48 Ausdrucksverhalten - Emotionen 49 Ausdrucksverhalten - Stimmung 50 ALMA - Erzeugung von Emotionen • Einfache Erzeugung durch AppraisalTags - Abkürzungen zu OCC-Variablen und Werte • Ereignissbewertung: 12 tags GoodEvent, BadEvent, GoodEventForBadOther ... • Handlungsbewertung: 4 tags GoodActSelf, GoodActOther ... • Objektbewertung: 2 Tags NiceThing, NastyThing • Erlaubt die Erzeugung von 24 OCC-Emotionstypen 51 OCC-Bewertungsmodell OCC-Variablen 52 OCC-Bewertungsmodell OCC-Variablen 24 Emotionen 53 Bewertung von Situationen Sprechhandlungen (Dialogakte) Dialogakt Bewertungsmarken Ereignisse Aktionen Objekte Generelle Bewertungsmarken 54 Beispiel - Primitive Bewertungsmarken BadActOther Bewertung blameworthy (praiseworthiness, OCC-Variable) Emotionsberechnung Reproach Bob 55 Kombination von Bewertungsmarken GoodEvent GoodActSelf Bewertung Bewertung desirable (desirability, OCC-Variable) praiseworthy (praiseworthiness, OCC-Variable) Emotionsberechnung Joy Emotionsberechnung Pride Gratification 56 Beispiel - Dialogakt Bewertungsmarken Wow Anna, du siehst heute fantastisch aus! PayCompliment GoodActSelf GoodEvent praiseworthy (praiseworthiness) desirable (desirability) Pride Bob (Sprecher) BadEvent BadActOther undesirable (desirability) blameworthy (praiseworthiness) Joy Anna (Adressatin) Anger Carl (Hörer - Annes Freund) 57 Gefühle im Pokerspiel • Einsatz von AppraisalTags in Szenen zur Emotionserzeugung Scene, de, Welcome Sam: [Camera Sam][looktouser] Hallo. Schön, [point] dass Sie Zeit für ein Spielchen haben. [GoodEvent 0.6] Dialog Interaction Manager AppraisalTags Affect Emotion Comp. ALMA BadUnlikelyFutureEvent Emotion Joy OCC-Variables: desirable 58 Gefühle im Pokerspiel (Fort.) • Modellierung kognitiver Eigenschaften im SceneFlow • Emotionen und Stimmung beeinflussen - Spielentscheidungen, else - Interaktionsverhalten, eval == bluffing and mood == hostile - Animationen und playScene("UserBluff") evalUserAction(Bet, 50) raiseBet(20) - Stimmqualität Proceed Query Reaction Dialog Interaction Manager Poker Queries and Commands AppraisalTags Affect Next Action Emotion Comp. ALMA Poker Engine 59 Expressive Emotionale Sprachsynthese • • • • Emotionale Sprache ist Pflicht für konsistentes Verhalten Ziel: Versuch TTS für Computerspiele zu benutzen Probleme: Verständlichkeit & Natürlichkeit Die MARY TTS Plattform erlaubt: - Echtzeitparameterisierung von emotionalen Spracheigenschaften • Vergleich verschiedener Syntheseansätze - Unit-Selection - Statistisch-Parametrisch (HMM) 60 Emotionale Unit-Selection TTS • Anwendungsorientiert - Limitiert auf Pokeräußerungen - Sehr hohe Qualität mit diskreter Emotionsfärbung - Schlechte Qualität für Nicht-Poker-Äußerungen • 4 Emotionale Sprachqualitäten - neutral - deprimiert - aggressive - fröhlich • Aktueller Gefühlszustand wählt (diskret) Sprachqualität 61 Statistical-Parametische TTS • Unbeschränkte Verwendung - gleiche emotionale Qualität für alle Äußerungen - Hohe Stimmqualität • Gefühlszustand ändert kontinuierlich Sprachqualität - Benutzung von Stimmungswerte Arousal/Pleasure - Geschwindigkeit, - Tonhöhe - Dynamik - Effeke: Flüstern, Roboter, ... 62 Zusammenfassung • Methoden und Ansätze - SceneMaker: Model von Dialog und Interaktion - ALMA - Gefühlssimulation - MARY TTS - Expressive Sprachsysthese-Plattform - Einfache Interaktion durch Tangible Objects • Impulse für die Erzeugung von Spielen • Plattform für zukünftige Arbeiten 63 Zukünftige Arbeiten • Modellierung von komplexen Verhaltensweisen - Bluffing beim Pokerspielen • Bessere Darstellung von Emotionen und Stimmung im Ausdrucksverhalten - Programmierung von Emotion-Shader - Prozedurale Steuerung von Animationen und Körperhaltung • Portierung von ALMA andere Programmiersprachen • Erforschung weiterer Interaktionsmöglichkeiten 64 IDEAS4Games Techniken zur Erstellung von Computerspielen mit interaktiven Virtuellen Charakteren Dr. Patrick Gebhard [email protected] MARY TTS: http://mary.dfki.de Horde3D: http://www.horde3d.org ALMA: http://www.dfki.de/~gebhard/alma