Categorías
España Informática Investigación Narratech Psicología Videojuego

Simulación afectiva

El mundo afectivo de los animales y en particular el del ser humano es algo -en principio- ajeno al comportamiento de los sistemas informáticos. Sin embargo es habitual pretender «simularlo», y no sólo a nivel visual o de animación, sino representando emociones sintéticas que afecten de verdad a los sistemas cognitivos de los agentes de IA que intervienen en un videojuego. En este ensayo revisamos la importancia del estudio de los afectos, de su modelado computacional (campo de estudio relativamente reciente) y de su aplicación en la investigación y el desarrollo de videojuegos.

Afectividad

El estudio moderno de la afectividad, sobre todo de las emociones (que son respuestas afectivas breves e intensas ante el estímulo), comienza con la premisa de la universalidad. Paul Ekman, en su obra seminal An Argument for Basic Emotions (1992), postuló la existencia de 6 emociones básicas (alegría, tristeza, ira, miedo, asco y sorpresa) ligadas a respuestas púramente evolutivas (como vomitar, mandar más sangre a piernas o manos…) y expresiones faciales (mostrar dientes, cerrar fosas nasales…) que van más allá de cualquier aprendizaje o cultura humana.

Otros autores como Magda Arnold, Richard Lazarus y posteriormente Klaus Scherer (Components of Emotion, 2005) fueron dando forma a la Teoría de la Evaluación (Appraisal Theory) que viene a decir que las emociones NO son respuestas directas a un estímulo, sino el resultado de una evaluación cognitiva que realizamos de manera inconsciente. Cuando nos llega cualquier estímulo rápidamente nuestro cerebro evalúa varias cosas: si es algo que me ayuda a conseguir mis metas actuales, algo que se interpone en mi camino, algo que puedo controlar, algo que peligroso para mi vida, etc.

El proceso completo, según estos estudios, vendría a ser algo así:

  1. Llega el estímulo, la entrada al sistema.
  2. El sujeto evalúa si es bueno o malo para él.
  3. El sujeto evalúa si favorece o desfavorece sus metas.
  4. El sujeto, en evaluación secundaria pero también rápida, considera si puede afrontar (el llamado proceso de coping) la situación o no.
  5. En función de todo esto, surgen las emociones.

Computación afectiva

El modelo de Ekman es interesante para desarrollar simuladores porque es muy concreto y muy visual, y la teoría de la evaluación sienta las bases para poder crear «algoritmos» que trabajen con emociones… pero quien realmente dió el salto de la Psicología a la Informática fue Rosalind Picard en su libro Affective Computing (1997). Allí esta investigadora define la necesidad de que las máquinas reconozcan, interpreten y simulen emociones para hacer más natural la interacción con los seres humanos. Sugiere muy buenas ideas como cuantificar la intensidad de las emociones, establecer un tiempo de decaimiento y cosas así.

El estándar de oro para «computar» las emociones es el modelo OCC (Ortony, Clore y Collins), detallado en The Cognitive Structure of Emotions (1988). A diferencia de Ekman, el OCC no se centra en la expresión como «resultado» de la emoción, sino en su génesis. Clasifica las emociones según provengan de:

  • Consecuencias de eventos (ej. alegría o resentimiento).
  • Acciones de agentes (ej. orgullo o reproche).
  • Aspectos de objetos (ej. amor u odio).

Este modelo (que posteriormente ha sido revisitado por otros como Steunebrink, Dastani y Meyer) es el preferido en IA porque permite estructurar la «mente» del agente como un sistema de variables donde la entrada es algún evento con un cierto valor de «deseabilidad», una cierta expectativa, una cierta fuerza…. y la salida es el estado emocional calculado. Los «cálculos» son en realidad relaciones lógicas expresadas en 22 rutas de decisión diferentes (12 son consecuencias de eventos, 4 son acciones de agentes, 2 son aspectos de objetos y luego hay 4 más que son categorías compuestas… por ejemplo, la IRA se produce cuando se dan a la vez una consecuencia de evento no deseada y una acción de agente que es reprochable).

Aunque hay muchas formas de modelar situaciones, existen algunos corpus que trata de relacionar situaciones con emociones u otro tipo de afectos. Estos son algunos de ellos:

Emociones sintéticas en videojuegos

Existen videojuegos comerciales en donde se han tratado de implementar estas ideas. Little Computer People ya empezaba a modelar emociones en 1985. Warhammer: Dark Omen (1998) tenía modelos probabilistas para simulación la emoción de los soldados. Los Sims (2000) usa un modelo OCC simplificado y lo junta con la pirámide de las necesidades de Maslow para tener lo que denominan «moodlets» probabilistas. En Dwarf Fortress (2006) y el posterior RimWorld (2013) los agentes tienen reacciones acordes a la teoría de la evaluación. Y el clásico Left 4 Dead (2008) ya había tratado de modelar computacionalmente la emoción conjunta de los jugadores para hacer reaccionar al juego ante ella.

Sin embargo es en los proyectos académicos como Façade de Michael Mateas y Andrew Stern (2005) o Versu de Richard Evans y Emily Short (2013) donde se han hecho los experimentos más interesantes con modelos complejos de cognición y emoción. Vamos a mostrar algunas herramientas que podemos aprovechar para crear nuestros propios experimentos:

  • CERA (Conscious and Emotional Reasoning Architecture) es una arquitectura software de Raúl Arrabales que pretende ser «estándar» para integrar distintos sistemas cognitivos en un sistema autónomo.
  • EmotionEngine, un plugin de Unreal Engine 5 desarrollado por el prolífico Nguyen Phi Hung para añadir inteligencia emocional a los personajes. Usa vectores de fuerza para representar emociones y tiene unos diagramas muy interesantes en su repositorio de código.
  • EmotioNet, un sistema muy interesante que presentó Fabian Benitez-Quiroz et al. (2016) en su artículo EmotioNet: An accurate, real-time algorithm for the automatic annotation of a million facial expressions. Usa Deep Learning y FACS (Facial Action Coding System) de Paul Ekman y Wallace V. Friesen (1978) para reconocer emociones en millones de expresiones faciales. Puede ser muy útil para generar corpus afectivos.
  • FAtiMA Toolkit (Fearnot Affective Mind Architecture), Dias, Mascarenhas y Paiva (2014) crearon este repositorio (la web original ya no está accesible) para crear agentes con memoria episódica y planificación influenciada por su estado emocional (híbrido OCC y coping) , es quizás el proyecto académico más robusto. Supuestamente es código abierto en C# integrable en Unity.
  • GAMYGDALA es un «motor de emociones» para videojuegos propuesto por Popeszku, van Doesburg y Egges (2014). Tiene repositorio en GitHub y supuestamente lo podrías usar con cualquier motor de videojuegos para dar una personalidad diferente a cada personaje que tenga objetivos.
  • PsychSim: Social Simulation proyecto del poderoso ICT, cuyo código quizá esté en alguno de sus repositorios.
  • SocialSim del DARPA, que creo que llega a tener código Python para simular contagio emocional en sociedades grandes.
  • WASABI, simulación de emociones que se utiliza en la arquitectura de robots sociales EMYS.

Federico Peinado, Marc Cavazza y David Pizzi llegaron a escribir un pequeño artículo (Revisiting Character-Based Affective Storytelling under a Narrative BDI Framework) sobre cómo añadir emociones a la arquitectura BDI… y actualmente NVIDIA ofrece varios modelos de computación afectiva que deben ser muy potentes como ACE (y todo lo que incluye) o EmotionNet.

Esta página está licenciada bajo CC BY-NC-SA 4.0 por Laboratorios Narratech.