O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Comportamiento de dirección

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Puntos de ruta tácticos
Puntos de ruta tácticos
Carregando em…3
×

Confira estes a seguir

1 de 25 Anúncio

Comportamiento de dirección

Baixar para ler offline

Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.

Curso teórico-práctico sobre Inteligencia Artificial para Videojuegos (IAV) basado en el modelo de propone Ian Millington en su libro, impartido en la Universidad Complutense de Madrid.

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Mais de Federico Peinado (20)

Mais recentes (20)

Anúncio

Comportamiento de dirección

  1. 1. Inteligencia Artificial para Videojuegos Percepción y movimiento Comportamiento de dirección
  2. 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. 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. 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. 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. 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. 7. Comportamiento de dirección 7 Comportamientos de dirección * Obviamente ya van a ser todos movimientos DINÁMICOS
  8. 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. 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. 10. Comportamiento de dirección 10 … añadiendo Llegada * Aceleración nula = Intención de detenerse
  11. 11. Comportamiento de dirección 11 … añadiendo Llegada Tiempo = O(1) Espacio = O(1)
  12. 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. 13. Comportamiento de dirección 13 Alineamiento * mapToRange también se conoce como “hallar el ángulo delta” (ángulo equivalente entre π y -π)
  14. 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. 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. 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. 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. 18. Comportamiento de dirección 18 Persecución y evasión
  19. 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. 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. 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. 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. 23. Comportamiento de dirección 23 Merodeo Tiempo = O(1) Espacio = O(1) ¡También cambia de dirección a cada fotograma!
  24. 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. 25. * Excepto el contenido multimedia de terceros autores Federico Peinado (2019-2023) www.federicopeinado.es Críticas, dudas, sugerencias...

×