SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
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...

Mais conteúdo relacionado

Mais procurados

Amphibia - "Prison Break" Storyboard Sample
Amphibia - "Prison Break" Storyboard SampleAmphibia - "Prison Break" Storyboard Sample
Amphibia - "Prison Break" Storyboard SampleAaronAustin17
 
Desensamble y ensamble de una pc
Desensamble y ensamble de una pcDesensamble y ensamble de una pc
Desensamble y ensamble de una pcDaniela Noriega
 
ゲームエンジンを活用して同人ゲームを完成させるノウハウについて
ゲームエンジンを活用して同人ゲームを完成させるノウハウについてゲームエンジンを活用して同人ゲームを完成させるノウハウについて
ゲームエンジンを活用して同人ゲームを完成させるノウハウについてMasahiko Nakamura
 
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意Yasuyuki Kamata
 
Manual de Uso Panasonic hvx201ae-Español
Manual de Uso Panasonic hvx201ae-EspañolManual de Uso Panasonic hvx201ae-Español
Manual de Uso Panasonic hvx201ae-Españolciudad comuna
 
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~historia_Inc
 
The Owl House - "Elsewhere & Elsewhen"
The Owl House - "Elsewhere & Elsewhen"The Owl House - "Elsewhere & Elsewhen"
The Owl House - "Elsewhere & Elsewhen"RheaDadoo
 
Game Creators Conference 2019 Takashi Itai
Game Creators Conference 2019 Takashi ItaiGame Creators Conference 2019 Takashi Itai
Game Creators Conference 2019 Takashi ItaiTakashi Itai
 
Live2Dの描画の裏側の話
Live2Dの描画の裏側の話Live2Dの描画の裏側の話
Live2Dの描画の裏側の話Naoki Aso
 
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25Shunsuke Ishimoto
 
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTERUE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTERエピック・ゲームズ・ジャパン Epic Games Japan
 
333_Interaction
333_Interaction333_Interaction
333_InteractionAlex S
 
YAMAHA XS 400 1977-1982 - manual part1_engine_clutch_gearbox. Capítulo 1 - mo...
YAMAHA XS 400 1977-1982 - manual part1_engine_clutch_gearbox. Capítulo 1 - mo...YAMAHA XS 400 1977-1982 - manual part1_engine_clutch_gearbox. Capítulo 1 - mo...
YAMAHA XS 400 1977-1982 - manual part1_engine_clutch_gearbox. Capítulo 1 - mo...YamahaXS400
 
6F Book 1 - Freddy finds the thief
6F Book 1 - Freddy finds the thief6F Book 1 - Freddy finds the thief
6F Book 1 - Freddy finds the thiefPereira Maria
 
Marcha nupcial (mendelsohn)
Marcha nupcial (mendelsohn)Marcha nupcial (mendelsohn)
Marcha nupcial (mendelsohn)phclarinete
 
Mario mascarenhas curso de piano vol. 1
Mario mascarenhas   curso de piano vol. 1Mario mascarenhas   curso de piano vol. 1
Mario mascarenhas curso de piano vol. 1Hélder Lima
 

Mais procurados (20)

Amphibia - "Prison Break" Storyboard Sample
Amphibia - "Prison Break" Storyboard SampleAmphibia - "Prison Break" Storyboard Sample
Amphibia - "Prison Break" Storyboard Sample
 
Desensamble y ensamble de una pc
Desensamble y ensamble de una pcDesensamble y ensamble de una pc
Desensamble y ensamble de una pc
 
Lightmass Deep Dive 2018 Vol. 2: Lightmap作成のためのLightmass設定方法
Lightmass Deep Dive 2018 Vol. 2: Lightmap作成のためのLightmass設定方法Lightmass Deep Dive 2018 Vol. 2: Lightmap作成のためのLightmass設定方法
Lightmass Deep Dive 2018 Vol. 2: Lightmap作成のためのLightmass設定方法
 
ゲームエンジンを活用して同人ゲームを完成させるノウハウについて
ゲームエンジンを活用して同人ゲームを完成させるノウハウについてゲームエンジンを活用して同人ゲームを完成させるノウハウについて
ゲームエンジンを活用して同人ゲームを完成させるノウハウについて
 
Lightmass Deep Dive 2018 Vol.1: Lightmass内部アルゴリズム概要(Lightmap編)
Lightmass Deep Dive 2018 Vol.1:  Lightmass内部アルゴリズム概要(Lightmap編)Lightmass Deep Dive 2018 Vol.1:  Lightmass内部アルゴリズム概要(Lightmap編)
Lightmass Deep Dive 2018 Vol.1: Lightmass内部アルゴリズム概要(Lightmap編)
 
Mesa tupia invertida
Mesa tupia invertidaMesa tupia invertida
Mesa tupia invertida
 
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
ゲームジャムに使える! いろんな素材サイトとライセンスに関するご注意
 
Manual de Uso Panasonic hvx201ae-Español
Manual de Uso Panasonic hvx201ae-EspañolManual de Uso Panasonic hvx201ae-Español
Manual de Uso Panasonic hvx201ae-Español
 
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
 
The Owl House - "Elsewhere & Elsewhen"
The Owl House - "Elsewhere & Elsewhen"The Owl House - "Elsewhere & Elsewhen"
The Owl House - "Elsewhere & Elsewhen"
 
Game Creators Conference 2019 Takashi Itai
Game Creators Conference 2019 Takashi ItaiGame Creators Conference 2019 Takashi Itai
Game Creators Conference 2019 Takashi Itai
 
Pedacinho do céu(clarinete)
Pedacinho do céu(clarinete)Pedacinho do céu(clarinete)
Pedacinho do céu(clarinete)
 
Live2Dの描画の裏側の話
Live2Dの描画の裏側の話Live2Dの描画の裏側の話
Live2Dの描画の裏側の話
 
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25
VFXGraphでつくろう素敵なARエフェクト In QBSLab on 2020.01.25
 
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTERUE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る!  | UNREAL FEST EXTREME 2020 WINTER
UE4×Switchで60FPSの(ネットワーク)対戦アクションをなんとかして作る! | UNREAL FEST EXTREME 2020 WINTER
 
333_Interaction
333_Interaction333_Interaction
333_Interaction
 
YAMAHA XS 400 1977-1982 - manual part1_engine_clutch_gearbox. Capítulo 1 - mo...
YAMAHA XS 400 1977-1982 - manual part1_engine_clutch_gearbox. Capítulo 1 - mo...YAMAHA XS 400 1977-1982 - manual part1_engine_clutch_gearbox. Capítulo 1 - mo...
YAMAHA XS 400 1977-1982 - manual part1_engine_clutch_gearbox. Capítulo 1 - mo...
 
6F Book 1 - Freddy finds the thief
6F Book 1 - Freddy finds the thief6F Book 1 - Freddy finds the thief
6F Book 1 - Freddy finds the thief
 
Marcha nupcial (mendelsohn)
Marcha nupcial (mendelsohn)Marcha nupcial (mendelsohn)
Marcha nupcial (mendelsohn)
 
Mario mascarenhas curso de piano vol. 1
Mario mascarenhas   curso de piano vol. 1Mario mascarenhas   curso de piano vol. 1
Mario mascarenhas curso de piano vol. 1
 

Semelhante 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.pdfFederico Peinado
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimientoFederico 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 videojuegosMaia 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óvilagilenavarra
 
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 estadosFederico Peinado
 
6 3-templates y patrones
6 3-templates y patrones6 3-templates y patrones
6 3-templates y patronesMariano Pereda
 
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 interactivoFederico 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
 

Semelhante 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
 
C:\Fakepath\Python}
C:\Fakepath\Python}C:\Fakepath\Python}
C:\Fakepath\Python}
 
Python}
Python}Python}
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
 

Mais de Federico Peinado

Comunicación en lenguaje natural
Comunicación en lenguaje naturalComunicación en lenguaje natural
Comunicación en lenguaje naturalFederico 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 informadasFederico Peinado
 
Representación del entorno
Representación del entornoRepresentación del entorno
Representación del entornoFederico Peinado
 
Comportamiento de dirección
Comportamiento de direcciónComportamiento de dirección
Comportamiento de direcciónFederico 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 juegoFederico Peinado
 
Inteligencia Artificial para Videojuegos
Inteligencia Artificial para VideojuegosInteligencia Artificial para Videojuegos
Inteligencia Artificial para VideojuegosFederico Peinado
 
Resolutor automático y agente inteligente
Resolutor automático y agente inteligenteResolutor automático y agente inteligente
Resolutor automático y agente inteligenteFederico Peinado
 
Postproducción y distribución
Postproducción y distribuciónPostproducción y distribución
Postproducción y distribuciónFederico Peinado
 

Mais 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
 

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