SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
Inteligencia Artificial
para Videojuegos
Percepción y movimiento
Desplazamiento en grupo
● ¡Hay muchos comportamientos de dirección!
● Seguiremos hablando de ellos, y veremos
formas de combinarlos
○ Cuando varios agentes
interactúan entre sí
emerge comportamiento
de grupo, que aparenta
estar “coordinado”
Desplazamiento en grupo 2
Motivación
● Esto permitirá generar movimientos
tan creíbles como el de los pajaroides,
demo de Reynolds (1986)
○ Aparenta haber “inteligencia”, ¡esa es la clave!
Desplazamiento en grupo 3
Motivación
BOIDS (BOTS + BIRDS)
● Trata de evitar “pegarse” demasiado a
otros que van en su misma dirección
○ Es casi “repulsión”, útil para simular multitudes
○ Según distancia al vecino más cercano, umbral
máximo de vecindad y aceleración máxima, vemos
separación lineal o ley inversa del cuadrado
○ También puede calcularse la repulsión total como
el sumatorio para los N vecinos más próximos
Desplazamiento en grupo 4
Separación
LINEAR SEPARATION
INVERSE SQUARE LAW
* k es un coeficiente positivo que indica lo rápido que decae la separación con la distancia
(y teniendo en cuenta que el resultado NO está normalizado…)
SEPARATION
Desplazamiento en grupo 5
Separación
Tiempo = O(1)
Espacio = O(n)
donde n son los agentes vecinos
● Trata de no chocar con
otros agentes que van en dirección distinta
○ Puede verse como Separación de aquellos vecinos
que estén en el cono de visión del agente
○ La comprobación debe tener en cuenta dirección
desde el agente hasta la colisión y umbral de cono,
el coseno de la mitad del ángulo del cono de visión
○ Existen mejoras a este algoritmo, ya que a veces
“evita demasiado” y otras veces se queda corto
Desplazamiento en grupo 6
Evitación de colisiones
COLLISION AVOIDANCE
CONE
THRESHOLD
Desplazamiento en grupo 7
Evitación de colisiones
Desplazamiento en grupo 8
Evitación de colisiones
Desplazamiento en grupo 9
Evitación de colisiones
Tiempo = O(1)
Espacio = O(n)
donde n son
los posibles vecinos
● Trata de no chocar con
obstáculos que no son
circulares ni pequeños
○ A veces hay obstáculos,
como escaleras, esquinas o paredes, cuya forma no
puede aproximarse a un sólo punto
○ Se usará un detector de colisiones, proyectando
uno o varios rayos “unos segundos” por delante y, si
alguno colisiona, fija un nuevo objetivo y lo seguirá
■ El objetivo se establecerá cierta distancia sobre
la normal al objeto desde el punto de la colisión
Desplazamiento en grupo 10
Evitación de obstáculos
● Para añadir comportamientos, una idea
habitual es extender el comportamiento
(Ej. Seguir) en una clase específica que
sería Seguir… evitando Obstáculos
Desplazamiento en grupo 11
Evitación de obstáculos
Desplazamiento en grupo 12
Evitación de obstáculos
● El detector de colisiones tiene esta interfaz
○ Usando una determinada configuración de rayos,
devuelve la primera colisión encontrada
○ ¡Las esquinas suponen una
verdadera trampa para
la IA!, requieren
soluciones avanzadas Desplazamiento en grupo 13
Evitación de obstáculos
● Es habitual necesitar varios a la vez
○ Ej. Seguir un objetivo, evitar colisiones con
agentes, con obstáculos, llegar al destino…
○ Lo de ir extendiendo las clases básicas con
versiones específicas… no es lo más elegante
● Combinar estos comportamientos requiere
usar mezcla (por pesos o por prioridades),
arbitraje (cediéndose el control)... o ambas
técnicas (llamadas arquitecturas híbridas)
Desplazamiento en grupo 14
Combinar comportamientos
BLENDING
ARBITRATION
● La forma más simple de combinar
comportamientos de dirección: sumarlos
○ Muy típico para mantener agrupaciones
■ Cohesión (Llegada al centro de masas del grupo)
■ Separación con respecto a los vecinos
Desplazamiento en grupo 15
Mezcla por pesos
* Los pesos no suelen sumar 1 (no es media ponderada) pero
da igual porque hay máximos de seguridad
Desplazamiento en grupo 16
Mezcla por pesos
Tiempo = O(1)
Espacio = O(n)
donde n son
los comportamientos
de dirección
● Los pajaroides posiblemente tienen el
primer comportamiento de dirección
combinado, y el más famoso, el
desplazamiento en bandada
○ Mezclaban por pesos 3 comportamientos de
dirección de los básicos… ¡y el resultado era brutal!
Desplazamiento en grupo 17
Desplazamiento en bandada
FLOCKING
Separación Cohesión Alineamiento
(y equiparamiento de velocidad)
● Simula una bandada o enjambre de seres…
que no se dirigen a ningún sitio
○ Al añadir Equiparación de velocidad al
desplazamiento en bandada, los pesos van así:
■ Separación > Cohesión > Alineamiento y
Equiparación de velocidad
Desplazamiento en grupo 18
Desplazamiento en bandada
* Los vecinos pueden reducirse considerando
sólo los que tengo en mi cono de visión
● En la práctica, surgen problemas si la
bandada se mueve en entornos cerrados
○ Equilibrio estable, los comportamientos de
dirección se contraponen y bloquean al agente
○ Entornos restringidos, con puertas o pasillos por
donde el agente inteligente no es capaz de pasar
○ Miopía, los comportamientos de dirección no ven
más allá de lo local... pueden fallar en lo global
Desplazamiento en grupo 19
Desplazamiento en bandada
● Hay comportamientos de dirección que sólo
algunas veces devuelven aceleración
○ ¡Y justo entonces conviene hacerles MUCHO caso!
● Se pueden organizar estos comportamientos
en grupos ordenados por prioridad
○ Cada grupo da una salida (= sus comportamientos
mezclados por peso) y se usa sólo la primera salida
por encima de cierto umbral ε (cercano a 0)
○ Ej. Prioridad 1: ¡Evitaciones diversas!; Prioridad 2:
Separación; Prioridad 3: Persecuciones varias
Desplazamiento en grupo 20
Mezcla por prioridad
Desplazamiento en grupo 21
Mezcla por prioridad
Tiempo = O(1)
Espacio = O(n)
donde n son
los comportamientos
de dirección
● Si necesitásemos un control más fino, el
siguiente paso sería comportamientos de
dirección que cooperen entre sí
○ Implica reprogramarse los algoritmos, ya no
tendríamos algoritmos independientes
○ Tiene mucho que ver con el tema
de Decisión, pues Millington
propone aquí un sistema
compuesto basado en un flujo
que desglosa cada componente
del comportamiento de dirección
y luego trata de actuar teniéndolo todo en cuenta
Desplazamiento en grupo 22
Arbitraje cooperativo
● El cono de visión del agente
A. Sirve para “repeler” a otros agentes
B. Sirve como umbral para percibir
C. Ayuda a filtrar obstáculos colisionables
D. Ayuda a filtrar los agentes que podrían colisionar
● Desarrolla tu respuesta (en texto libre)
Desplazamiento en grupo 23
Participación
* Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...

Weitere ähnliche Inhalte

Mehr von Federico Peinado

Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimientoFederico 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
 
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
 
Comportamiento de dirección
Comportamiento de direcciónComportamiento de dirección
Comportamiento de direcciónFederico 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
 
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
 
Cinemáticas y localización
Cinemáticas y localizaciónCinemáticas y localización
Cinemáticas y localizaciónFederico Peinado
 

Mehr von Federico Peinado (20)

Árbol de comportamiento
Árbol de comportamientoÁrbol de comportamiento
Árbol de comportamiento
 
Reglas y planificación
Reglas y planificaciónReglas y planificación
Reglas y planificación
 
Máquina de estados
Máquina de estadosMáquina de estados
Máquina de estados
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimiento
 
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
 
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
 
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
 
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)
 
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
 
Criatura y persona
Criatura y personaCriatura y persona
Criatura y persona
 
Cinemáticas y localización
Cinemáticas y localizaciónCinemáticas y localización
Cinemáticas y localización
 
Objeto y máquina
Objeto y máquinaObjeto y máquina
Objeto y máquina
 

Desplazamiento en grupo

  • 1. Inteligencia Artificial para Videojuegos Percepción y movimiento Desplazamiento en grupo
  • 2. ● ¡Hay muchos comportamientos de dirección! ● Seguiremos hablando de ellos, y veremos formas de combinarlos ○ Cuando varios agentes interactúan entre sí emerge comportamiento de grupo, que aparenta estar “coordinado” Desplazamiento en grupo 2 Motivación
  • 3. ● Esto permitirá generar movimientos tan creíbles como el de los pajaroides, demo de Reynolds (1986) ○ Aparenta haber “inteligencia”, ¡esa es la clave! Desplazamiento en grupo 3 Motivación BOIDS (BOTS + BIRDS)
  • 4. ● Trata de evitar “pegarse” demasiado a otros que van en su misma dirección ○ Es casi “repulsión”, útil para simular multitudes ○ Según distancia al vecino más cercano, umbral máximo de vecindad y aceleración máxima, vemos separación lineal o ley inversa del cuadrado ○ También puede calcularse la repulsión total como el sumatorio para los N vecinos más próximos Desplazamiento en grupo 4 Separación LINEAR SEPARATION INVERSE SQUARE LAW * k es un coeficiente positivo que indica lo rápido que decae la separación con la distancia (y teniendo en cuenta que el resultado NO está normalizado…) SEPARATION
  • 5. Desplazamiento en grupo 5 Separación Tiempo = O(1) Espacio = O(n) donde n son los agentes vecinos
  • 6. ● Trata de no chocar con otros agentes que van en dirección distinta ○ Puede verse como Separación de aquellos vecinos que estén en el cono de visión del agente ○ La comprobación debe tener en cuenta dirección desde el agente hasta la colisión y umbral de cono, el coseno de la mitad del ángulo del cono de visión ○ Existen mejoras a este algoritmo, ya que a veces “evita demasiado” y otras veces se queda corto Desplazamiento en grupo 6 Evitación de colisiones COLLISION AVOIDANCE CONE THRESHOLD
  • 7. Desplazamiento en grupo 7 Evitación de colisiones
  • 8. Desplazamiento en grupo 8 Evitación de colisiones
  • 9. Desplazamiento en grupo 9 Evitación de colisiones Tiempo = O(1) Espacio = O(n) donde n son los posibles vecinos
  • 10. ● Trata de no chocar con obstáculos que no son circulares ni pequeños ○ A veces hay obstáculos, como escaleras, esquinas o paredes, cuya forma no puede aproximarse a un sólo punto ○ Se usará un detector de colisiones, proyectando uno o varios rayos “unos segundos” por delante y, si alguno colisiona, fija un nuevo objetivo y lo seguirá ■ El objetivo se establecerá cierta distancia sobre la normal al objeto desde el punto de la colisión Desplazamiento en grupo 10 Evitación de obstáculos
  • 11. ● Para añadir comportamientos, una idea habitual es extender el comportamiento (Ej. Seguir) en una clase específica que sería Seguir… evitando Obstáculos Desplazamiento en grupo 11 Evitación de obstáculos
  • 12. Desplazamiento en grupo 12 Evitación de obstáculos
  • 13. ● El detector de colisiones tiene esta interfaz ○ Usando una determinada configuración de rayos, devuelve la primera colisión encontrada ○ ¡Las esquinas suponen una verdadera trampa para la IA!, requieren soluciones avanzadas Desplazamiento en grupo 13 Evitación de obstáculos
  • 14. ● Es habitual necesitar varios a la vez ○ Ej. Seguir un objetivo, evitar colisiones con agentes, con obstáculos, llegar al destino… ○ Lo de ir extendiendo las clases básicas con versiones específicas… no es lo más elegante ● Combinar estos comportamientos requiere usar mezcla (por pesos o por prioridades), arbitraje (cediéndose el control)... o ambas técnicas (llamadas arquitecturas híbridas) Desplazamiento en grupo 14 Combinar comportamientos BLENDING ARBITRATION
  • 15. ● La forma más simple de combinar comportamientos de dirección: sumarlos ○ Muy típico para mantener agrupaciones ■ Cohesión (Llegada al centro de masas del grupo) ■ Separación con respecto a los vecinos Desplazamiento en grupo 15 Mezcla por pesos * Los pesos no suelen sumar 1 (no es media ponderada) pero da igual porque hay máximos de seguridad
  • 16. Desplazamiento en grupo 16 Mezcla por pesos Tiempo = O(1) Espacio = O(n) donde n son los comportamientos de dirección
  • 17. ● Los pajaroides posiblemente tienen el primer comportamiento de dirección combinado, y el más famoso, el desplazamiento en bandada ○ Mezclaban por pesos 3 comportamientos de dirección de los básicos… ¡y el resultado era brutal! Desplazamiento en grupo 17 Desplazamiento en bandada FLOCKING Separación Cohesión Alineamiento (y equiparamiento de velocidad)
  • 18. ● Simula una bandada o enjambre de seres… que no se dirigen a ningún sitio ○ Al añadir Equiparación de velocidad al desplazamiento en bandada, los pesos van así: ■ Separación > Cohesión > Alineamiento y Equiparación de velocidad Desplazamiento en grupo 18 Desplazamiento en bandada * Los vecinos pueden reducirse considerando sólo los que tengo en mi cono de visión
  • 19. ● En la práctica, surgen problemas si la bandada se mueve en entornos cerrados ○ Equilibrio estable, los comportamientos de dirección se contraponen y bloquean al agente ○ Entornos restringidos, con puertas o pasillos por donde el agente inteligente no es capaz de pasar ○ Miopía, los comportamientos de dirección no ven más allá de lo local... pueden fallar en lo global Desplazamiento en grupo 19 Desplazamiento en bandada
  • 20. ● Hay comportamientos de dirección que sólo algunas veces devuelven aceleración ○ ¡Y justo entonces conviene hacerles MUCHO caso! ● Se pueden organizar estos comportamientos en grupos ordenados por prioridad ○ Cada grupo da una salida (= sus comportamientos mezclados por peso) y se usa sólo la primera salida por encima de cierto umbral ε (cercano a 0) ○ Ej. Prioridad 1: ¡Evitaciones diversas!; Prioridad 2: Separación; Prioridad 3: Persecuciones varias Desplazamiento en grupo 20 Mezcla por prioridad
  • 21. Desplazamiento en grupo 21 Mezcla por prioridad Tiempo = O(1) Espacio = O(n) donde n son los comportamientos de dirección
  • 22. ● Si necesitásemos un control más fino, el siguiente paso sería comportamientos de dirección que cooperen entre sí ○ Implica reprogramarse los algoritmos, ya no tendríamos algoritmos independientes ○ Tiene mucho que ver con el tema de Decisión, pues Millington propone aquí un sistema compuesto basado en un flujo que desglosa cada componente del comportamiento de dirección y luego trata de actuar teniéndolo todo en cuenta Desplazamiento en grupo 22 Arbitraje cooperativo
  • 23. ● El cono de visión del agente A. Sirve para “repeler” a otros agentes B. Sirve como umbral para percibir C. Ayuda a filtrar obstáculos colisionables D. Ayuda a filtrar los agentes que podrían colisionar ● Desarrolla tu respuesta (en texto libre) Desplazamiento en grupo 23 Participación
  • 24. * Excepto el contenido multimedia de terceros autores Federico Peinado (2019-2023) www.federicopeinado.es Críticas, dudas, sugerencias...