SlideShare una empresa de Scribd logo
Inteligencia Artificial
para Videojuegos
Decisión
Árbol de comportamiento
● De las técnicas para decidir existentes, esta
es seguramente la más utilizada hoy día
Árbol de comportamiento 2
Motivación
Árbol de comportamiento 3
Motivación
Los árboles de comportamiento del ahora conocido como:
● 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
● 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
● 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
Árbol de comportamiento 7
Gestor de acciones
* La capa
más externa
es ACTUAR;
DECIDIR es
una capa
más interna
● 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
● 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)
● 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...
● 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
● Primera versión de “ir a la habitación”
Árbol de comportamiento 12
Ejemplos
* Responde a la
pregunta: ¿Está la
puerta visiblemente
abierta?
● 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
● 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?
● Ejemplos:
Árbol de comportamiento 15
Pseudocódigo
Árbol de comportamiento 16
Pseudocódigo
Espacio = O(n)
Tiempo = O(log2
n)
donde n es el número de nodos
en el árbol
● 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
● 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
● 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
Árbol de comportamiento 20
Pseudocódigo
● 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
○ 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
● 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
● 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
● 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
● ¿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
● 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
* Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...

Más contenido relacionado

La actualidad más candente

ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
増田 亨
 
北⽶のハイパーカジュアル ゲーム開発現場で良く使われた アセット30選‒ 2019年版
北⽶のハイパーカジュアル ゲーム開発現場で良く使われた アセット30選‒ 2019年版北⽶のハイパーカジュアル ゲーム開発現場で良く使われた アセット30選‒ 2019年版
北⽶のハイパーカジュアル ゲーム開発現場で良く使われた アセット30選‒ 2019年版
UnityTechnologiesJapan002
 
Software Generic Design Process.
Software Generic Design Process.Software Generic Design Process.
Software Generic Design Process.
Syed Hassan Ali
 
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
エピック・ゲームズ・ジャパン Epic Games Japan
 
ゲーム開発とMVC
ゲーム開発とMVCゲーム開発とMVC
ゲーム開発とMVC
Takashi Komada
 
SteamVR Plugin 2.0 にアップデートした話
SteamVR Plugin 2.0 にアップデートした話SteamVR Plugin 2.0 にアップデートした話
SteamVR Plugin 2.0 にアップデートした話
shohashimoto4
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
Michele Lanza
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
masferrer1998
 
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
Unity Technologies Japan K.K.
 
Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001
Jose Emilio Labra Gayo
 
UE4.17で入る新機能を一気に紹介・解説!
UE4.17で入る新機能を一気に紹介・解説!UE4.17で入る新機能を一気に紹介・解説!
UE4.17で入る新機能を一気に紹介・解説!
エピック・ゲームズ・ジャパン Epic Games Japan
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
Unity Technologies Japan K.K.
 
Desarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacionDesarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacion
Marvin Arteaga
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
torisoup
 
Metodologia sum
Metodologia sumMetodologia sum
Metodologia sum
jesus udiz gamboa
 
UE4初心者がUE4で2D横スクロールアクションゲームを作ってみるお話
UE4初心者がUE4で2D横スクロールアクションゲームを作ってみるお話UE4初心者がUE4で2D横スクロールアクションゲームを作ってみるお話
UE4初心者がUE4で2D横スクロールアクションゲームを作ってみるお話
Mio Ku-tani
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)
dcsunu
 
フォーガンシーが歩んだ道
フォーガンシーが歩んだ道フォーガンシーが歩んだ道
フォーガンシーが歩んだ道
フォーガンシー
 
Prototype model of SDLC
Prototype model of SDLCPrototype model of SDLC
Prototype model of SDLC
Kumar Sethi
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
Fadhil Ismail
 

La actualidad más candente (20)

ドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かすドメイン駆動設計をゲーム開発に活かす
ドメイン駆動設計をゲーム開発に活かす
 
北⽶のハイパーカジュアル ゲーム開発現場で良く使われた アセット30選‒ 2019年版
北⽶のハイパーカジュアル ゲーム開発現場で良く使われた アセット30選‒ 2019年版北⽶のハイパーカジュアル ゲーム開発現場で良く使われた アセット30選‒ 2019年版
北⽶のハイパーカジュアル ゲーム開発現場で良く使われた アセット30選‒ 2019年版
 
Software Generic Design Process.
Software Generic Design Process.Software Generic Design Process.
Software Generic Design Process.
 
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
Unreal engine4を使ったVRコンテンツ製作で 120%役に立つtips集+GDC情報をご紹介
 
ゲーム開発とMVC
ゲーム開発とMVCゲーム開発とMVC
ゲーム開発とMVC
 
SteamVR Plugin 2.0 にアップデートした話
SteamVR Plugin 2.0 にアップデートした話SteamVR Plugin 2.0 にアップデートした話
SteamVR Plugin 2.0 にアップデートした話
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Ciclo de vida del software
Ciclo de vida del softwareCiclo de vida del software
Ciclo de vida del software
 
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
【Unity道場スペシャル 2017大阪】トゥーンシェーダー・マニアクス2 〜ユニティちゃんトゥーンシェーダー2.0徹底解説〜
 
Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001
 
UE4.17で入る新機能を一気に紹介・解説!
UE4.17で入る新機能を一気に紹介・解説!UE4.17で入る新機能を一気に紹介・解説!
UE4.17で入る新機能を一気に紹介・解説!
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
 
Desarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacionDesarrollo de-software-basado-en-reutilizacion
Desarrollo de-software-basado-en-reutilizacion
 
Unityでオニオンアーキテクチャ
UnityでオニオンアーキテクチャUnityでオニオンアーキテクチャ
Unityでオニオンアーキテクチャ
 
Metodologia sum
Metodologia sumMetodologia sum
Metodologia sum
 
UE4初心者がUE4で2D横スクロールアクションゲームを作ってみるお話
UE4初心者がUE4で2D横スクロールアクションゲームを作ってみるお話UE4初心者がUE4で2D横スクロールアクションゲームを作ってみるお話
UE4初心者がUE4で2D横スクロールアクションゲームを作ってみるお話
 
Extreme Programming (XP)
Extreme Programming (XP)Extreme Programming (XP)
Extreme Programming (XP)
 
フォーガンシーが歩んだ道
フォーガンシーが歩んだ道フォーガンシーが歩んだ道
フォーガンシーが歩んだ道
 
Prototype model of SDLC
Prototype model of SDLCPrototype model of SDLC
Prototype model of SDLC
 
Software System Engineering - Chapter 1
Software System Engineering - Chapter 1Software System Engineering - Chapter 1
Software System Engineering - Chapter 1
 

Similar a Árbol de comportamiento

DEV 02-04 Inteligencia artificial.pdf
DEV 02-04 Inteligencia artificial.pdfDEV 02-04 Inteligencia artificial.pdf
DEV 02-04 Inteligencia artificial.pdf
Federico Peinado
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimiento
Federico Peinado
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificial
Federico Peinado
 
Esenciales olvidados a la hora de programar videojuegos
Esenciales olvidados a la hora de programar videojuegosEsenciales olvidados a la hora de programar videojuegos
Esenciales olvidados a la hora de programar videojuegos
Maia Kord
 
Recursividad y Cola (Estructura de Datos)
Recursividad y Cola (Estructura de Datos)Recursividad y Cola (Estructura de Datos)
Recursividad y Cola (Estructura de Datos)
sandra gutierrez
 
Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvil
agilenavarra
 
Gestión de la ejecución
Gestión de la ejecuciónGestión de la ejecución
Gestión de la ejecución
Federico Peinado
 
C:\Fakepath\Python}
C:\Fakepath\Python}C:\Fakepath\Python}
C:\Fakepath\Python}
Graciela Dissimoz Molina
 
Resolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estadosResolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estados
Federico Peinado
 
6 3-templates y patrones
6 3-templates y patrones6 3-templates y patrones
6 3-templates y patronesMariano Pereda
 
Reglas y planificación
Reglas y planificaciónReglas y planificación
Reglas y planificación
Federico Peinado
 
Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)
Federico Peinado
 
Sistema multimedia interactivo
Sistema multimedia interactivoSistema multimedia interactivo
Sistema multimedia interactivo
Federico Peinado
 
Diagramacion de sistemas. Herramientas gráficas de Diagramación de Sistemas d...
Diagramacion de sistemas. Herramientas gráficas de Diagramación de Sistemas d...Diagramacion de sistemas. Herramientas gráficas de Diagramación de Sistemas d...
Diagramacion de sistemas. Herramientas gráficas de Diagramación de Sistemas d...
mbosque0
 
Paralela2
Paralela2Paralela2
Paralela2
Abraham Zamudio
 
Como leer planes de ejecución
Como leer planes de ejecuciónComo leer planes de ejecución
Como leer planes de ejecución
Enrique Catala Bañuls
 

Similar a Árbol de comportamiento (19)

DEV 02-04 Inteligencia artificial.pdf
DEV 02-04 Inteligencia artificial.pdfDEV 02-04 Inteligencia artificial.pdf
DEV 02-04 Inteligencia artificial.pdf
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimiento
 
Inteligencia artificial
Inteligencia artificialInteligencia artificial
Inteligencia artificial
 
Esenciales olvidados a la hora de programar videojuegos
Esenciales olvidados a la hora de programar videojuegosEsenciales olvidados a la hora de programar videojuegos
Esenciales olvidados a la hora de programar videojuegos
 
Recursividad y Cola (Estructura de Datos)
Recursividad y Cola (Estructura de Datos)Recursividad y Cola (Estructura de Datos)
Recursividad y Cola (Estructura de Datos)
 
Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvil
 
Principios de diseño
Principios de diseñoPrincipios de diseño
Principios de diseño
 
Gestión de la ejecución
Gestión de la ejecuciónGestión de la ejecución
Gestión de la ejecución
 
Python}
Python}Python}
Python}
 
C:\Fakepath\Python}
C:\Fakepath\Python}C:\Fakepath\Python}
C:\Fakepath\Python}
 
Resolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estadosResolución de problemas en el espacio de estados
Resolución de problemas en el espacio de estados
 
6 3-templates y patrones
6 3-templates y patrones6 3-templates y patrones
6 3-templates y patrones
 
Reglas y planificación
Reglas y planificaciónReglas y planificación
Reglas y planificación
 
Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)Generación procedimental de contenido (+ Pseudocódigo)
Generación procedimental de contenido (+ Pseudocódigo)
 
Sistema multimedia interactivo
Sistema multimedia interactivoSistema multimedia interactivo
Sistema multimedia interactivo
 
Diagramacion de sistemas. Herramientas gráficas de Diagramación de Sistemas d...
Diagramacion de sistemas. Herramientas gráficas de Diagramación de Sistemas d...Diagramacion de sistemas. Herramientas gráficas de Diagramación de Sistemas d...
Diagramacion de sistemas. Herramientas gráficas de Diagramación de Sistemas d...
 
06 patrones
06 patrones06 patrones
06 patrones
 
Paralela2
Paralela2Paralela2
Paralela2
 
Como leer planes de ejecución
Como leer planes de ejecuciónComo leer planes de ejecución
Como leer planes de ejecución
 

Más de Federico Peinado

Herramientas de autoría
Herramientas de autoríaHerramientas de autoría
Herramientas de autoría
Federico Peinado
 
Interfaz del mundo
Interfaz del mundoInterfaz del mundo
Interfaz del mundo
Federico Peinado
 
Acción coordinada
Acción coordinadaAcción coordinada
Acción coordinada
Federico Peinado
 
Comunicación en lenguaje natural
Comunicación en lenguaje naturalComunicación en lenguaje natural
Comunicación en lenguaje natural
Federico Peinado
 
Puntos de ruta tácticos
Puntos de ruta tácticosPuntos de ruta tácticos
Puntos de ruta tácticos
Federico Peinado
 
Análisis táctico
Análisis tácticoAnálisis táctico
Análisis táctico
Federico Peinado
 
Probabilidad y utilidad
Probabilidad y utilidadProbabilidad y utilidad
Probabilidad y utilidad
Federico Peinado
 
Máquina de estados
Máquina de estadosMáquina de estados
Máquina de estados
Federico Peinado
 
Búsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadasBúsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadas
Federico Peinado
 
Representación del entorno
Representación del entornoRepresentación del entorno
Representación del entorno
Federico Peinado
 
Desplazamiento en grupo
Desplazamiento en grupoDesplazamiento en grupo
Desplazamiento en grupo
Federico Peinado
 
Percepción
PercepciónPercepción
Percepción
Federico Peinado
 
Comportamiento de dirección
Comportamiento de direcciónComportamiento de dirección
Comportamiento de dirección
Federico Peinado
 
Física y animación
Física y animaciónFísica y animación
Física y animación
Federico Peinado
 
Aplicación según tipología del juego
Aplicación según tipología del juegoAplicación según tipología del juego
Aplicación según tipología del juego
Federico Peinado
 
Inteligencia Artificial para Videojuegos
Inteligencia Artificial para VideojuegosInteligencia Artificial para Videojuegos
Inteligencia Artificial para Videojuegos
Federico Peinado
 
Resolutor automático y agente inteligente
Resolutor automático y agente inteligenteResolutor automático y agente inteligente
Resolutor automático y agente inteligente
Federico Peinado
 
Industria y negocio
Industria y negocioIndustria y negocio
Industria y negocio
Federico Peinado
 
Postproducción y distribución
Postproducción y distribuciónPostproducción y distribución
Postproducción y distribución
Federico Peinado
 
Mercadotecnia
MercadotecniaMercadotecnia
Mercadotecnia
Federico Peinado
 

Más de Federico Peinado (20)

Herramientas de autoría
Herramientas de autoríaHerramientas de autoría
Herramientas de autoría
 
Interfaz del mundo
Interfaz del mundoInterfaz del mundo
Interfaz del mundo
 
Acción coordinada
Acción coordinadaAcción coordinada
Acción coordinada
 
Comunicación en lenguaje natural
Comunicación en lenguaje naturalComunicación en lenguaje natural
Comunicación en lenguaje natural
 
Puntos de ruta tácticos
Puntos de ruta tácticosPuntos de ruta tácticos
Puntos de ruta tácticos
 
Análisis táctico
Análisis tácticoAnálisis táctico
Análisis táctico
 
Probabilidad y utilidad
Probabilidad y utilidadProbabilidad y utilidad
Probabilidad y utilidad
 
Máquina de estados
Máquina de estadosMáquina de estados
Máquina de estados
 
Búsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadasBúsqueda de caminos usando estrategias informadas
Búsqueda de caminos usando estrategias informadas
 
Representación del entorno
Representación del entornoRepresentación del entorno
Representación del entorno
 
Desplazamiento en grupo
Desplazamiento en grupoDesplazamiento en grupo
Desplazamiento en grupo
 
Percepción
PercepciónPercepción
Percepción
 
Comportamiento de dirección
Comportamiento de direcciónComportamiento de dirección
Comportamiento de dirección
 
Física y animación
Física y animaciónFísica y animación
Física y animación
 
Aplicación según tipología del juego
Aplicación según tipología del juegoAplicación según tipología del juego
Aplicación según tipología del juego
 
Inteligencia Artificial para Videojuegos
Inteligencia Artificial para VideojuegosInteligencia Artificial para Videojuegos
Inteligencia Artificial para Videojuegos
 
Resolutor automático y agente inteligente
Resolutor automático y agente inteligenteResolutor automático y agente inteligente
Resolutor automático y agente inteligente
 
Industria y negocio
Industria y negocioIndustria y negocio
Industria y negocio
 
Postproducción y distribución
Postproducción y distribuciónPostproducción y distribución
Postproducción y distribución
 
Mercadotecnia
MercadotecniaMercadotecnia
Mercadotecnia
 

Último

FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
RobertSotilLujn
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
lasocharfuelan123
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
Federico Toledo
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
cuentauniversidad34
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
oscartorres960914
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 

Último (10)

FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA  DE TRABAJO DE CREACION DE TABLAS EN WORDFICHA  DE TRABAJO DE CREACION DE TABLAS EN WORD
FICHA DE TRABAJO DE CREACION DE TABLAS EN WORD
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
trabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docxtrabajo integrador final sofi y vane.docx
trabajo integrador final sofi y vane.docx
 
Los desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMsLos desafíos de calidad de software que nos trae la IA y los LLMs
Los desafíos de calidad de software que nos trae la IA y los LLMs
 
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...experiencia de aprendizaje sobre lectura y escritura como  herramientas de ap...
experiencia de aprendizaje sobre lectura y escritura como herramientas de ap...
 
infografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de softwareinfografia del sena para analisis y desarrollo de software
infografia del sena para analisis y desarrollo de software
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 

Á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...