# Intelligenter virtueller Agent

Intelligente virtuelle Agenten sind autonome, grafisch modellierte und animierte Charaktere in einer virtuellen Umgebung, die eine künstliche Intelligenz besitzen. Für eine lebensnahe Wirkung interagieren sie mit ihrer Umgebung, untereinander oder mit Menschen mit Hilfe natürlicher Modalitäten, wie Sprache, Mimik und Gestik. Die Wahrnehmung und Handlung in Echtzeit ermöglicht es ihnen Teil eines dynamischen, sozialen Umfelds zu sein.

## Abgrenzungen

* Abgrenzung zu Animationsfilmen: Intelligente virtuelle Agenten werden aufgrund von Interaktivität in Echtzeit gerendert. Im Gegensatz zum Echtzeitrendern benutzt die Filmindustrie das Offline-Rendering-Prinzip um Animationsfilme zu produzieren. Beim Offline-Rendering Prinzip wird vorher festgelegt, was gerendert werden soll. Daraufhin erfolgt die Berechnung eines Bildes, die mehrere Stunden dauern kann.
* Computeranimierte Charaktere in Kinofilmen sind keine intelligenten virtuellen Agenten, da ihre Verhaltensweise durch ein Drehbuch vorbestimmt ist.

## Weitere Bezeichnungen

* Software-Agent: Dies ist die Bezeichnung für einen Agenten, welcher selbständig Aktionen in einer virtuellen Umgebung durchführen kann, um seine Ziele zu erreichen. Die Erscheinungsform des Agenten kann sich dort grafisch abbilden, wo sich ein strategischer Vorteil ergibt.
* Embodied Agent: Ein verkörperter Charakter ist ein System, in welchem ein Charakter in einer virtuellen Welt grafisch repräsentiert wird. Der Charakter kann dabei in Form eines Menschen oder eines Tieres dargestellt werden und trägt dazu bei, dass Benutzer ihn akzeptieren.
* Avatare werden vom Spieler gesteuert und weisen kein autonomes Verhalten auf.
* Nichtspielercharakter (NPC): Sind vom Computer nach den Regeln der künstlichen Intelligenz gesteuerte Charakter, die sich entweder freundlich oder neutral zum Spieler verhalten.

## Einsatzgebiete

Intelligente virtuelle Agenten werden neben Computerspielen zur Unterhaltung auch im E-Learning Bereich und für anthropomorphe Benutzerschnittstellen eingesetzt.

### Computerspiele

In Computerspielen finden sie Anwendung als Nichtspieler-Charaktere um dem Spieler Informationen, Tipps oder Aufgaben zum Spiel zu vermitteln, oder einfach nur um die Spielwelt lebendiger wirken zu lassen. Zudem können sie als Teamkollegen dem Spieler bei der Lösung von Aufgaben helfen oder als Gegner den Spieler vor Herausforderungen stellen. Außerdem können sie aus der Spielergesteuerten Rolle hinausgehen und selbstständig vom Spieler getroffene Entscheidungen ausführen.

### E-Learning

Intelligente virtuelle Agenten werden im E-Learning-Bereich als pädagogische Agenten wie z. B. als Tutor, Mentor, Lehrer, Lernpartner etc. eingesetzt, um dem Benutzer verschiedenste Lerninhalte didaktisch zu vermitteln. Auf Webseiten und an Info-Terminals dienen sie als Präsentationsagenten um dem Benutzer Informationen zu präsentieren.

### Anthropomorphe Benutzerschnittstellen

Virtuelle Agenten dienen als Schnittstelle zwischen einem System und dem Benutzer. Der Benutzer kann den Agenten anweisen, verschiedene Aufgaben auszuführen. Wobei der virtuelle Agent sich zu einem operativen Programm entwickeln kann.

### Anwendungen

* Project Milo: Ein von Microsoft entwickeltes virtuelles Kind, mit dem man über Sprache und Gestik interagieren kann.
* Façade: In dieser Software kann der Spieler interaktiv per Tastatureingaben unter anderem an einem Gespräch zwischen zwei Eheleuten teilnehmen und den Verlauf des Gesprächs positiv oder negativ verändern.
* Army-Soldaten: USC Institute for Creative Technologies bezeichnet eine Trainingssimulation für Army-Soldaten entwickelt, die intelligente virtuelle Agenten enthält.
* Smartakus: Ein am Deutschen Forschungszentrum für Künstliche Intelligenz (DFKI) entwickelter Charakter, der als anthropomorphe Benutzerschnittstelle fungiert. Er kann Kommandos des Benutzers selbstständig zur Bedienung eines Gerätes weiterleiten, und z. B. einen bestimmten Film mit einem DVD-Recorder aufnehmen.
* Improv Puppets: Dies sind virtuelle Puppen (Marionetten), die eingesetzt werden, um mit Kindern zu interagieren. Durch den sozialen Kontakt mit Kindern, soll deren kognitive Entwicklung geprägt werden.
* Virtual Jack: Jack ist ein Agent repräsentiert durch einen Hund der Firma Petopia. Jack soll den Kunden bei der Navigation auf der Webseite helfen.
* Erin the bartender: Erin O’Malley ist eine virtuelle Barkeeperin, die hunderte von Drinks zubereiten und darüber berichten kann. Sie spricht außerdem mit dem Benutzer über verschiedene Themen.
* Katherine, Interactive Newscaster: Katherine ist ein Charakter auf einer Webseite, welcher dem Besucher interaktive News zur Verfügung stellt.
* EACH Star Workshop: Der EACH Star Workshop beinhaltet virtuelle Lehrer, die den Besucher in den Bereichen Management, soziale Kompetenz, Fremdsprache usw. lehren können.
* ERIC (Embodied Real-time Intelligent Commentary): ist ein Regel-basiertes Framework mit dessen Hilfe sich verkörperte grafische Agenten entwickeln lassen, um verschiedene Geschehnisse in Echtzeit zu kommentieren. Zurzeit wird ERIC eingesetzt um ein virtuelles Pferderennen zu kommentieren.

## Kernprobleme

Die Kernprobleme bei der Konzeption und Realisierung von intelligenten virtuellen Agenten liegen einerseits im Bereich der grafischen Modellierung und Visualisierung, andererseits bei der Echtzeit-Synchronisation von Sprache, Mimik und Gestik. Eine weitere Herausforderung ist es, den Agenten möglichst glaubhaft darzustellen.
Glaubhaftigkeit in Bezug auf virtuelle Agenten beschreibt die Bereitschaft des Benutzers sich auf die Illusion, die durch die Interaktion mit dem Agenten entsteht, einzulassen. Bereits Anfang der 1930er Jahre brachten die Animateure bei Disney durch die Art, wie die Figuren ihre Emotionen ausdrückten, das Publikum zum Lachen oder Weinen.
Für eine glaubhafte Darstellung muss der emotionale Zustand eines Charakters, insbesondere seine Ziele, Vorlieben und Abneigungen, klar definiert und für den Zuschauer zu jedem Zeitpunkt erkennbar sein. Außerdem können Emotionen besonders betont werden um dem Zuschauer die Zeit zu geben, diese zu erfassen.
Weiterhin hat der Denkprozess des Charakters Einfluss auf seine Gefühle. Für den Zuschauer muss nachvollziehbar sein, in welchem Zustand sich der Charakter befindet.
In der Praxis haben sich 7 Merkmale herausgestellt, die einen Charakter lebensnah erscheinen lassen:
* gesprächig: Der Agent kann glaubhaft eine Unterhaltung führen. Dazu gehört es z. B., dass er die Initiative zum Gespräch ergreift oder verschiedene Standpunkte widerspiegeln kann.
* intelligent: Der Agent führt beispielsweise Konversation in dem Rahmen, der seiner Kompetenz entspricht.
* individuell: Der Agent besitzt eine eigenständige Persönlichkeit und dynamische Emotionen, die er gerade auf seine eigene Art und Weise ausdrückt.
* sozial: Der Agent soll Selbstbewusstsein im sozialen Kontext besitzen.
* überzeugend: Der Agent soll emotional auf Ereignisse und Situationen reagieren können und auf die Emotionen seines Kommunikationspartners eingehen können.
* vielseitig: Der Agent soll zufällig und veränderlich sein, wie wann und was seine Handlungen betreffen.
* konsistent: Der Agent behält grundlegende Elemente in Konversation, Gestik, Körpersprache und Gesichtsausdrücken in sich ähnelnden Situationen bei.
Die Realisierung von virtuellen Agenten ist ein interdisziplinärer Prozess. Je nach Einsatzgebiet sind neben Grafikern und KI-Forschern auch Psychologen, Soziologen und Pädagogen am Entwicklungsprozess beteiligt.
Ein weiteres Problem bei der Realisierung ist die Integration von vielen teilweise nicht-standardisierten Softwarekomponenten, die in den unterschiedlichen Bereichen zu Entwicklung eingesetzt werden und zu einer komplexen Systemarchitektur führen.
In den folgenden Abschnitten werden weitere Kernprobleme detailliert beschrieben.

## Visualisierung / Grafische Modellierung und Animation

Das Grafikdesign und die Animation eines Intelligenten virtuellen Agenten sind die optischen Komponenten, die zur Glaubhaftigkeit gegenüber dem menschlichen Benutzer beitragen und einen ersten Eindruck bei ihm hinterlassen.
In den Anfängen der Darstellung von virtuellen Agenten wurde meist auf 2D-Objekte zurückgegriffen. Beispielsweise können kontextabhängige, animierte GIF-Sequenzen zu einer ganzen Fülle von Bewegungsanimationen zusammengefasst werden. Aus diesem Pool von Animationsfragmenten kann dann während der Interaktion mit einem Benutzer zur Laufzeit die passende Animation herausgesucht und der aktuell laufenden angefügt werden.
Heutzutage werden hauptsächlich 3D-Modelle zur Darstellung von virtuellen Agenten verwendet. Die technischen Möglichkeiten bei der Erstellung der Grafik (Rendern (Design)) und Animation sind im Interaktionsbetrieb nicht mit denen von aktuellen 3D-Animationsfilmen vergleichbar. Da die Berechnungszeit eine wesentliche Rolle in der Interaktion mit einem Benutzer spielt, können keine aufwendigen Szenerien und detaillierte Agenten modelliert werden. Details des zu modellierenden Objektes sollten wenn möglich in den Texturen verarbeitet werden und nicht im 3D Objekt, um die Gesamtzahl von Polygonen so gering wie möglich zu halten.
Bekannte und weit verbreitete Tools zur 3D-Modellierung wären beispielsweise:
* Kostenpflichtige Tools:
** 3ds Max (3D Studio MAX)
** Maya
** Autodesk Softimage (XSI)
** Cinema4D
* Freeware:
** Blender
** AutoQ3D Community
** Truespace

## Verhaltensplanung und Verhaltenssteuerung

Für die Verhaltensplanung und Steuerung gibt es verschiedene Ansätze:
* Scripting in Computerspielen (z. B. LUA, das unter anderem in Spielen wie FarCry und World of Warcraft Anwendung findet)
* Planbasierte Systeme (z. B. ABL, das bei der Entwicklung von Facade genutzt wurde)
* Regelbasierte Systeme (z. B. Jess, mit dessen Hilfe beispielsweise das generische regelbasierte System von ERIC programmiert wurde)
* Kognitive Architekturen (z. B. SOAR, für das eine Beispielentwicklung ein pädagogischer Agent namens Steve ist)
* Graphbasierte Systeme (z. B. SceneMaker).
Mit ihnen werden die Planungssysteme erstellt und gelöst, um Aktionsfolgen für das Verhalten des intelligenten virtuellen Agenten zu erzeugen.
Grundlegend lässt sich die Verhaltensplanung und -steuerung in die Bereiche des verbalen (text- und sprachbasierte Kommunikation) und nonverbalen (Mimik und Gestik aber z. B. auch die Bewegung im Raum) Verhaltens aufteilen.

### Verbales Verhalten

Fundamente für eine verbale Interaktion von und mit intelligenten virtuellen Agenten sind die Spracherkennung, Sprachverarbeitung und Sprachsynthese, mit deren Hilfe text- und sprachbasierte Dialogsystems erzeugt werden. Dabei ist darauf zu achten, möglichst natürlich wirkende Dialoge zwischen Mensch und intelligenten virtuellen Agenten zu gestalten.
Die Implementierung kann unter anderem mit Hilfe von Interpretern, die auf MarkUp-Sprachen basieren (z. B. VoiceXML), oder Systemen erfolgen, die eine grafische Entwicklungsumgebung (z. B. DialogOS) besitzen und somit einen sehr einfachen Einstieg in die Erstellung von Dialogsystemen bieten.

### Nonverbales Verhalten

Die Planung des nonverbalen Verhaltens umfasst insbesondere Mimik, Gestik und allgemein die Körperhaltung des Agenten. Im weiteren Sinne bezieht es sich ebenso auf allgemeine Bewegungen im Raum, die als Pathfinding eine Problemstellung der KI ist. Animationen für Mimiken und Gestiken werden hingegen mit Hilfe von Scripts beschrieben. Wobei die Realisierung der Animation aus 3 Ebenen aufgebaut ist:
* Verhaltensplanung
* Aktionsplanung
* Auswahl und Ausführung der Animationen, die zum Durchführen der Aktionen benötigt werden.
Entwicklern stehen dazu Frameworks zur Seite. Eines der verbreitetsten ist dabei das SAIBA Framework, bei dem mit Hilfe der Behaviour Markup Language (BML) das Verhalten des Intelligenten virtuellen Agenten beschrieben wird. Anschließend wird das BML Skript von einer Engine der dritten Ebene (z. B. SmartBody, BML Realizer) in eine Animation umgesetzt. Ein ähnlicher Ansatz wird in EMBR gewählt, bei dem jedoch zwischen zweiter und dritter Ebene eine weitere (animation layer) eingeführt wird. Dadurch erlangt man mehr Kontrolle über die Animationen selbst, indem diese zunächst ebenfalls mit Hilfe einer Beschreibungssprache (EMBRScript) notiert und erst danach in die konkrete Bewegung des Agenten umgesetzt werden.

## Verwendete Technologien

* Microsoft Agents
* Autorenwerkzeuge, z. B. MASH
* Standards
* Markup-Sprachen zur Spezifikation des multimodalen Verhaltens