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