Anzeige

Árbol de comportamiento

Profesor Contratado Doctor um Universidad complutense de Madrid
13. Mar 2023
Anzeige

Más contenido relacionado

Anzeige

Árbol de comportamiento

  1. Inteligencia Artificial para Videojuegos Decisión Árbol de comportamiento
  2. ● De las técnicas para decidir existentes, esta es seguramente la más utilizada hoy día Árbol de comportamiento 2 Motivación
  3. Árbol de comportamiento 3 Motivación Los árboles de comportamiento del ahora conocido como:
  4. ● Halo: Combat Evolved introdujo los árboles de comportamiento ● Se popularizaron con Halo 2 al ofrecer una mezcla de técnicas que era comprensible para el diseñador ○ Máquinas de estados finitos jerárquicas + planificación reactiva + gestor de acciones Árbol de comportamiento 4 Hitos históricos
  5. ● Hoy día también se combinan árboles de comportamiento con máquinas de estado ○ Final Fantasy XV (AI Graph, en Luminous Studio) ○ StateTree en Unreal Engine 5 Árbol de comportamiento 5 Hitos históricos
  6. ● Al igual que con la Interfaz del Mundo, centralizar la ejecución de acciones en un gestor hace la IA más flexible y depurable ○ Ej. Actividades comunes como cambios de estado, animaciones, movimientos… y algunas de alto nivel ● Tipos de acciones ○ Simples, a menudo agrupando varias actividades ○ Interrumpibles, dejan saltar a otra más importante ○ Compuestas, generalmente resultado de combinar acciones simples tomadas por sistemas simultáneos ○ Guionizadas, ya dijimos que son útiles y creíbles (y se suelen combinar con las otras, de hecho) Árbol de comportamiento 6 Gestor de acciones
  7. Árbol de comportamiento 7 Gestor de acciones * La capa más externa es ACTUAR; DECIDIR es una capa más interna
  8. ● Puede servir de base flexible para coordinar varios sistemas de toma de decisiones ○ Cada sistema será un “experto” que consulta la pizarra y pide turno ○ El árbitro cede el control a un experto ○ El experto modifica hechos de la pizarra ○ El experto devuelve el control al árbitro Árbol de comportamiento 8 Arquitectura de pizarra BLACKBOARD ARCHITECTURE / SYSTEM
  9. ● Para evitar acoplamiento entre los estados de una máquina jerárquica de estados finitos surge el árbol de comportamiento ○ Representa intuitivamente la ejecución de un plan (tarea = secuencia de acciones) ● Es un árbol dirigido ○ Tiene un nodo raíz, nodos de control de flujo y nodos de ejecución (las tareas) * que pueden estar en ejecución o terminar con éxito o con fracaso Árbol de comportamiento 9 Árbol de comportamiento BEHAVIOR TREES (BTs)
  10. ● Si hay biblioteca de árboles prediseñados (arquetipos) el diseñador los puede instanciar y reutilizar parcial o totalmente ○ Esto es una solución popular, pero limitada (dificulta gestionar interrupciones externas)... ○ Ej. Subárboles habituales Árbol de comportamiento 10 Árbol de comportamiento * Build defenses sería otro BT...
  11. ● Dos nodos principales de control de flujo ○ Nodo Selector (?), tendrá éxito en cuanto uno de sus hijos tenga éxito, probando de izquierda a derecha ○ Nodo Secuencia (→) , tendrá éxito sólo cuando todos sus hijos tengan éxito, ejecutando de izquierda a derecha Árbol de comportamiento 11 Árbol de comportamiento
  12. ● Primera versión de “ir a la habitación” Árbol de comportamiento 12 Ejemplos * Responde a la pregunta: ¿Está la puerta visiblemente abierta?
  13. ● Segunda versión con el árbol algo refactorizado ○ Pero es una simplificación, porque la apertura de la puerta podría fracasar (si está cerrada con llave) y todavía faltaría la tarea de “entrar en la habitación”... Árbol de comportamiento 13 Ejemplos
  14. ● Tercera versión, mínimamente aceptable ○ Ahora ya sí está completa (algo diferente al libro) y tiene en cuenta los posibles estados de la puerta (abierta, cerrada o cerrada con llave) Árbol de comportamiento 14 Ejemplos * ¿Está la puerta cerrada SIN LLAVE?
  15. ● Ejemplos: Árbol de comportamiento 15 Pseudocódigo
  16. Árbol de comportamiento 16 Pseudocódigo Espacio = O(n) Tiempo = O(log2 n) donde n es el número de nodos en el árbol
  17. ● Los árboles de comportamiento no son un estándar y en cada implementación es posible encontrar toda clase de curiosas variantes ○ La combinación con una pizarra es muy habitual (Ej. Unreal Engine) ○ La introducción de elementos pseudoaletorios ayuda a tener personajes menos predecibles ○ La utilización de otros nodos extra, con nueva funcionalidad, permite sofisticar la técnica (Ej. Nodos para concurrencia) Árbol de comportamiento 17 Variantes
  18. ● Para desacoplar el contexto los nodos suelen compartir información a través de una pizarra (=una simple tabla de variables) Árbol de comportamiento 18 Uso de pizarra
  19. ● En algunas variantes se añade aleatoriedad a los nodos Selectores y hasta a los de Secuencia ○ Combinando nodo determinista y no determinista conseguimos un “orden parcial” que hace al NPC menos predecible Árbol de comportamiento 19 Pseudoaleatoriedad Símbolos de aleatoriedad en el árbol de comportamiento
  20. Árbol de comportamiento 20 Pseudocódigo
  21. ● Pueden añadirse nodos extra para conseguir cierta concurrencia (e incluso paralelismo) ○ Ej. Nodo Decorador, se sitúa justo sobre una tarea, para filtrar y controlar los recursos necesarios para su ejecución ■ Ej. Limitar número de ejecuciones de una tarea, continuar hasta que se devuelva fracaso, invertir el valor devuelto... ■ Ej. Actuar cómo “guarda” de un recurso Árbol de comportamiento 21 Concurrencia
  22. ○ Ej. Nodo Paralelo, típicamente definido como una Secuencia pero lanzando todos los hijos a la vez ■ Ej. Espera ■ Otros nodos de concurrencia y temporización ● A veces introduciendo Paralelo, surge la necesidad de comunicar unas tareas con otras (ej. para interrumpirse), comunicación que se desacopla también gracias al uso combinado de la pizarra Árbol de comportamiento 22 Concurrencia
  23. ● Para hacer seguimiento de condiciones Árbol de comportamiento 23 Ejemplos Algún mecanismo que permita evaluar algo… para interrumpir el orden de ejecución del árbol si ocurre algo importante
  24. ● Pseudoaleatoriedad y concurrencia para comportamientos de grupo (Ej. 3 soldados) ○ Esto sería una forma implícita de “coordinación” Árbol de comportamiento 24 Ejemplos
  25. ● Lo habitual es observar cierta condición y abortar (sin recuperación) la tarea actual si otra más prioritaria se vuelve viable Árbol de comportamiento 25 Gestión de interrupciones
  26. ● ¿Qué afirmación es la verdadera? A. Si su primer hijo tiene éxito, la Secuencia también B. Si su último hijo fracasa, la Secuencia tiene éxito C. Si su último hijo fracasa, el Selector tiene éxito D. Si su primer hijo tiene éxito, el Selector también ● Desarrolla tu respuesta (en texto libre) Árbol de comportamiento 26 Participación
  27. ● de Byl, P.: Behaviour Trees https://learn.unity.com/project/behaviour-trees?uv=2021.3 ● de Byl, P.: Learn Advanced AI for Games with Behaviour Trees https://www.udemy.com/course/behaviour-trees/ ● Millington, I.: Artificial Intelligence for Games. CRC Press, 3rd Edition (2019) ● Rabin, S.: Game AI Pro (2015-2017) https://www.gameaipro.com ● StateTree de Unreal Engine 5 https://docs.unrealengine.com/5.1/en-US/state-tree-in-unreal-e ngine/ Árbol de comportamiento 27 Más información
  28. * Excepto el contenido multimedia de terceros autores Federico Peinado (2019-2023) www.federicopeinado.es Críticas, dudas, sugerencias...
Anzeige