SlideShare una empresa de Scribd logo
Inteligencia Artificial
para Videojuegos
Percepción y movimiento
Comportamiento de dirección
● Aunque no hay definición formal de
“comportamiento de dirección”, suele
usarse para hablar de movimiento dinámico
○ Algoritmos que trabajan aplicando sobre el agente
fuerza/aceleración
○ ¡Hay miles!, pero
veremos unos básicos
y cómo combinarlos
● Muy habitual sobre
todo en juegos de
conducción
Comportamiento de dirección 2
Motivación
● Craig Reynolds fue el primero en proponer
comportamientos de dirección para
videojuegos, en la GDC de 1999
Comportamiento de dirección 3
Motivación
● Extensiones a los movimientos cinemáticos,
que dan lugar a movimientos dinámicos
○ Reciben velocidad y rotación del agente (entrada) y
aplican fuerza/aceleración en la dirección (salida)
○ Hay algunos básicos, como seguimiento y huida,
llegada, alineamiento o equiparación de velocidad
Comportamiento de dirección 4
Comportamientos de dirección
STEERING BEHAVIORS
● Estructura básica
○ Leen la información cinemática del agente y, según
sea necesario, pueden leer algo de información
(estática o cinemática/”predictiva”) del objetivo
○ El objetivo puede ser uno o varios agentes,
caminos, colisiones (o la geometría del nivel)
● Suele tratar de equiparar (o diferenciar, en
el caso opuesto) los valores de las variables
del agente y el objetivo
○ Ej. Ocupar la misma posición que el objetivo
○ Para varias variables, es mejor hacer algoritmos
separados para cada variable… y luego combinarlos
Comportamiento de dirección 5
Comportamientos de dirección
● Estos algoritmos tratan siempre de acelerar
al máximo, ir lo más rápido posible... para
realizar esa equiparación/diferenciación
○ Conviene restringir los valores al final de cada tick,
para no exceder ciertos máximos de seguridad
○ A veces también se aplica rozamiento, en la parte
física del tick, para contener
ese crecimiento de los valores
e ir “apagando” de forma
realista el movimiento
Comportamiento de dirección 6
Comportamientos de dirección
Comportamiento de dirección 7
Comportamientos de dirección
* Obviamente ya van a
ser todos movimientos
DINÁMICOS
● Trata de equiparar la posición del agente
con la del objetivo
Comportamiento de dirección 8
Seguimiento y huida
SEEK & FLEE
*
Si
quieres
cambiar
también
la
orientación
del
agente,
lo
suyo
es
combinar
este
comportamiento
con
otro
de
alinear
Tiempo = O(1)
Espacio = O(1)
* Modificación
para Huida
● Igual pero deteniéndose, usando dos radios
○ Uno para ir
reduciendo la
velocidad y otro
para ponerla a
cero por ya estar
suficientemente
cerca (margen
de error)
○ Más un tiempo
para conseguir
la velocidad
deseada
Comportamiento de dirección 9
… añadiendo Llegada
ARRIVAL
* Ojo con los prefijos “target”,
no tienen nada que ver con la variable target
Comportamiento de dirección 10
… añadiendo Llegada
* Aceleración nula = Intención de detenerse
Comportamiento de dirección 11
… añadiendo Llegada
Tiempo = O(1)
Espacio = O(1)
● Parecido a Llegada, pero trata de equiparar
la orientación del agente y la del objetivo
○ Rotando por el camino más corto (-π, π)
■ ¡Cuidado con rotar más rápido que π por tick!
○ Y dos ángulos, por lo mismo: uno para empezar a
reducir la velocidad de
rotación y otro como margen
de error
Comportamiento de dirección 12
Alineamiento
ALIGN
Comportamiento de dirección 13
Alineamiento
* mapToRange también se conoce como “hallar el ángulo
delta” (ángulo equivalente entre π y -π)
Comportamiento de dirección 14
Alineamiento
Tiempo = O(1)
Espacio = O(1)
* Lo contrario es el Alineamiento en sentido opuesto
(sumar π a la orientación del objetivo y alinearse a eso)
● Se reutiliza el trozo que interesa de Llegada
○ No suele usarse sólo, aunque sí combina con otros
Comportamiento de dirección 15
Equiparación de velocidad
Tiempo = O(1)
Espacio = O(1)
● Los básicos se pueden ampliar (mediante
herencia o mediante composición) a otros
○ Persecución y evasión, encaramiento, orientación
según velocidad, merodeo... y en 3D son como 2D
pero con los cálculos para el movimiento angular
○ A veces se intenta predecir la posición futura de un
objetivo, hasta proyectando volúmenes
Comportamiento de dirección 16
Más comportamientos de dirección
● Heredando de Seguimiento
y Huida, añadiendo una predicción básica (=
tener en cuenta la velocidad del objetivo)
○ Se calcula lo que tardaría en llegar hasta el
objetivo y ese tiempo (hasta un máximo) es lo que
usamos para predecir donde estará el objetivo
○ También se puede
implementar mediante
composición, claro…
pero hay que copiar más
valores
Comportamiento de dirección 17
Persecución y evasión
PURSUE & EVADE
Comportamiento de dirección 18
Persecución y evasión
Comportamiento de dirección 19
Persecución y evasión
Tiempo = O(1)
Espacio = O(1)
* Lo contrario es Evasión
(cambiar Seek por Flee, básicamente...)
explicitTarget = Hacer una
copia de los datos del objetivo
● Trata de modificar la orientación según la
posición relativa del agente con el objetivo
○ ¡Reutiliza Alineamiento!
Comportamiento de dirección 20
Encaramiento
FACE
● Trata de orientar al agente hacia donde
este se está moviendo
○ ¡Reutiliza Alineamiento, también!
Comportamiento de dirección 21
Orientación según velocidad
Tiempo = O(1)
Espacio = O(1)
● Suaviza el merodeo cinemático, fijando un
objetivo aleatorio (situado unos pasos por
delante) y siguiéndolo dinámicamente
Comportamiento de dirección 22
Otro merodeo
Comportamiento de dirección 23
Merodeo
Tiempo = O(1)
Espacio = O(1)
¡También cambia de
dirección a cada
fotograma!
● Entre los dos radios de la Llegada...
A. Aumenta la velocidad desde cero hasta el máximo
B. Se reduce la aceleración hasta el mínimo
C. Se reduce la velocidad desde el máximo hasta cero
D. Aumenta la aceleración de cero hasta el máximo
● Desarrolla tu respuesta (en texto libre)
Comportamiento de dirección 24
Participación
* Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...

Más contenido relacionado

Más de Federico Peinado

Árbol de comportamiento
Árbol de comportamientoÁrbol de comportamiento
Árbol de comportamiento
Federico Peinado
 
Reglas y planificación
Reglas y planificaciónReglas y planificación
Reglas y planificación
Federico Peinado
 
Máquina de estados
Máquina de estadosMáquina de estados
Máquina de estados
Federico Peinado
 
Representación del conocimiento
Representación del conocimientoRepresentación del conocimiento
Representación del conocimiento
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
 
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
 
Desplazamiento en grupo
Desplazamiento en grupoDesplazamiento en grupo
Desplazamiento en grupo
Federico Peinado
 
Percepción
PercepciónPercepción
Percepción
Federico Peinado
 
Física y animación
Física y animaciónFísica y animación
Física y animació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
 
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
 
Criatura y persona
Criatura y personaCriatura y persona
Criatura y persona
Federico Peinado
 
Cinemáticas y localización
Cinemáticas y localizaciónCinemáticas y localización
Cinemáticas y localización
Federico Peinado
 
Objeto y máquina
Objeto y máquinaObjeto y máquina
Objeto y máquina
Federico Peinado
 

Más de 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
 
Desplazamiento en grupo
Desplazamiento en grupoDesplazamiento en grupo
Desplazamiento en grupo
 
Percepción
PercepciónPercepción
Percepció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
 

Último

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
 
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
 
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.
 
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
 
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
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
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
 
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
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
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
 

Último (10)

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
 
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
 
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
 
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
 
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
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
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
 
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
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
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...
 

Comportamiento de dirección

  • 1. Inteligencia Artificial para Videojuegos Percepción y movimiento Comportamiento de dirección
  • 2. ● Aunque no hay definición formal de “comportamiento de dirección”, suele usarse para hablar de movimiento dinámico ○ Algoritmos que trabajan aplicando sobre el agente fuerza/aceleración ○ ¡Hay miles!, pero veremos unos básicos y cómo combinarlos ● Muy habitual sobre todo en juegos de conducción Comportamiento de dirección 2 Motivación
  • 3. ● Craig Reynolds fue el primero en proponer comportamientos de dirección para videojuegos, en la GDC de 1999 Comportamiento de dirección 3 Motivación
  • 4. ● Extensiones a los movimientos cinemáticos, que dan lugar a movimientos dinámicos ○ Reciben velocidad y rotación del agente (entrada) y aplican fuerza/aceleración en la dirección (salida) ○ Hay algunos básicos, como seguimiento y huida, llegada, alineamiento o equiparación de velocidad Comportamiento de dirección 4 Comportamientos de dirección STEERING BEHAVIORS
  • 5. ● Estructura básica ○ Leen la información cinemática del agente y, según sea necesario, pueden leer algo de información (estática o cinemática/”predictiva”) del objetivo ○ El objetivo puede ser uno o varios agentes, caminos, colisiones (o la geometría del nivel) ● Suele tratar de equiparar (o diferenciar, en el caso opuesto) los valores de las variables del agente y el objetivo ○ Ej. Ocupar la misma posición que el objetivo ○ Para varias variables, es mejor hacer algoritmos separados para cada variable… y luego combinarlos Comportamiento de dirección 5 Comportamientos de dirección
  • 6. ● Estos algoritmos tratan siempre de acelerar al máximo, ir lo más rápido posible... para realizar esa equiparación/diferenciación ○ Conviene restringir los valores al final de cada tick, para no exceder ciertos máximos de seguridad ○ A veces también se aplica rozamiento, en la parte física del tick, para contener ese crecimiento de los valores e ir “apagando” de forma realista el movimiento Comportamiento de dirección 6 Comportamientos de dirección
  • 7. Comportamiento de dirección 7 Comportamientos de dirección * Obviamente ya van a ser todos movimientos DINÁMICOS
  • 8. ● Trata de equiparar la posición del agente con la del objetivo Comportamiento de dirección 8 Seguimiento y huida SEEK & FLEE * Si quieres cambiar también la orientación del agente, lo suyo es combinar este comportamiento con otro de alinear Tiempo = O(1) Espacio = O(1) * Modificación para Huida
  • 9. ● Igual pero deteniéndose, usando dos radios ○ Uno para ir reduciendo la velocidad y otro para ponerla a cero por ya estar suficientemente cerca (margen de error) ○ Más un tiempo para conseguir la velocidad deseada Comportamiento de dirección 9 … añadiendo Llegada ARRIVAL * Ojo con los prefijos “target”, no tienen nada que ver con la variable target
  • 10. Comportamiento de dirección 10 … añadiendo Llegada * Aceleración nula = Intención de detenerse
  • 11. Comportamiento de dirección 11 … añadiendo Llegada Tiempo = O(1) Espacio = O(1)
  • 12. ● Parecido a Llegada, pero trata de equiparar la orientación del agente y la del objetivo ○ Rotando por el camino más corto (-π, π) ■ ¡Cuidado con rotar más rápido que π por tick! ○ Y dos ángulos, por lo mismo: uno para empezar a reducir la velocidad de rotación y otro como margen de error Comportamiento de dirección 12 Alineamiento ALIGN
  • 13. Comportamiento de dirección 13 Alineamiento * mapToRange también se conoce como “hallar el ángulo delta” (ángulo equivalente entre π y -π)
  • 14. Comportamiento de dirección 14 Alineamiento Tiempo = O(1) Espacio = O(1) * Lo contrario es el Alineamiento en sentido opuesto (sumar π a la orientación del objetivo y alinearse a eso)
  • 15. ● Se reutiliza el trozo que interesa de Llegada ○ No suele usarse sólo, aunque sí combina con otros Comportamiento de dirección 15 Equiparación de velocidad Tiempo = O(1) Espacio = O(1)
  • 16. ● Los básicos se pueden ampliar (mediante herencia o mediante composición) a otros ○ Persecución y evasión, encaramiento, orientación según velocidad, merodeo... y en 3D son como 2D pero con los cálculos para el movimiento angular ○ A veces se intenta predecir la posición futura de un objetivo, hasta proyectando volúmenes Comportamiento de dirección 16 Más comportamientos de dirección
  • 17. ● Heredando de Seguimiento y Huida, añadiendo una predicción básica (= tener en cuenta la velocidad del objetivo) ○ Se calcula lo que tardaría en llegar hasta el objetivo y ese tiempo (hasta un máximo) es lo que usamos para predecir donde estará el objetivo ○ También se puede implementar mediante composición, claro… pero hay que copiar más valores Comportamiento de dirección 17 Persecución y evasión PURSUE & EVADE
  • 18. Comportamiento de dirección 18 Persecución y evasión
  • 19. Comportamiento de dirección 19 Persecución y evasión Tiempo = O(1) Espacio = O(1) * Lo contrario es Evasión (cambiar Seek por Flee, básicamente...) explicitTarget = Hacer una copia de los datos del objetivo
  • 20. ● Trata de modificar la orientación según la posición relativa del agente con el objetivo ○ ¡Reutiliza Alineamiento! Comportamiento de dirección 20 Encaramiento FACE
  • 21. ● Trata de orientar al agente hacia donde este se está moviendo ○ ¡Reutiliza Alineamiento, también! Comportamiento de dirección 21 Orientación según velocidad Tiempo = O(1) Espacio = O(1)
  • 22. ● Suaviza el merodeo cinemático, fijando un objetivo aleatorio (situado unos pasos por delante) y siguiéndolo dinámicamente Comportamiento de dirección 22 Otro merodeo
  • 23. Comportamiento de dirección 23 Merodeo Tiempo = O(1) Espacio = O(1) ¡También cambia de dirección a cada fotograma!
  • 24. ● Entre los dos radios de la Llegada... A. Aumenta la velocidad desde cero hasta el máximo B. Se reduce la aceleración hasta el mínimo C. Se reduce la velocidad desde el máximo hasta cero D. Aumenta la aceleración de cero hasta el máximo ● Desarrolla tu respuesta (en texto libre) Comportamiento de dirección 24 Participación
  • 25. * Excepto el contenido multimedia de terceros autores Federico Peinado (2019-2023) www.federicopeinado.es Críticas, dudas, sugerencias...