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.
2. ● Existe solapamiento entre la IA y el tema de
la Física… y hasta de la Animación
Física y animación 2
Motivación
3. ● Percibir y moverse… son requisitos
fundamentales de los agentes racionales
● Pero movimientos hay de muchos tipos
○ De hecho hay juegos sin movimiento, y otros donde
la “IA” son únicamente algoritmos de movimiento
Física y animación 3
Motivación
4. ● Arranca la industria del videojuego en 1972
○ Los primeros videojuegos no tienen IA
● Las primeras IAs aparecieron en clones de
Pong con oponentes controlados por
ordenador, o clones de Space Invaders
○ Básicamente lo único que hacían era moverse…
hacia el lado que debían :-)
● Se popularizaron mucho las recreativas
como Speed Race (1974)
○ Tenía una “IA primitiva”
(coches que se acercan)
y dos niveles de dificultad Física y animación 4
Hitos históricos
5. ● Space Invaders, el boom de 1978
○ Tenía una dificultad incremental
○ Usaba distintos patrones de movimiento
dependientes de la entrada del jugador
● Numerosas secuelas y títulos
similares fueron añadiendo
patrones de movimiento
más complejos
Física y animación 5
Hitos históricos
6. ● Karate Champ (1984)
○ Fue el primer juego de lucha en
usar notablemente la IA
○ Diferentes patrones de lucha
(otra forma de movimiento) para representar
personalidades distintas en sus luchadores
● Juegos como Warcraft (1994)
incluyen sutilezas como movimientos
sutiles de las tropas para romper
filas y aproximarse al enemigo
Física y animación 6
Hitos históricos
7. ● Movimiento en 2D (aunque el mundo sea
3D, basta con que el suelo lo sea)
Física y animación 7
Fundamentos del movimiento
Z positivo es hacia abajo
Z negativo es hacia arriba
La Y se ignora
en este caso
8. ● En Unity es igual (X y Z intercambiados)
Física y animación 8
Fundamentos del movimiento
En 2D el eje Z es la
profundidad
9. Física y animación 9
Fundamentos del movimiento
MECÁNICA
Clásica
ESTÁTICA
Cuerpos en
equilibrio
DINÁMICA
Cuerpos
acelerados
CINEMÁTICA
Sin considerar las
causas de esa
aceleración
FÍSICA
10. ● Todos los algoritmos de movimiento
comparten el mismo esquema
Física y animación 10
Fundamentos del movimiento
ESQUEMA
DINÁMICO
Cuerpos
acelerados
ESQUEMA
CINEMÁTICO
Sin considerar
las causas de
esa aceleración
11. ● La cinemática estudia únicamente el
movimiento de los cuerpos acelerados
○ Cambios en el estado de la posición, velocidad… e
incluso aceleración de un agente
○ Algoritmo cinemático: recibe posición y orientación, y
en el momento t devuelve la velocidad deseada
● La dinámica, más amplia, considera además
las causas que originan dicho movimiento
○ Aplica fuerzas, y afectará la masa, la energía...
○ Algoritmo dinámico: además recibe velocidad, incluso
aceleración, y en el momento t devuelve fuerza a
aplicar para aproximarse al movimiento deseado
Física y animación 11
Fundamentos del movimiento
12. ● El más simple, aunque todavía se usa
○ En juegos 2D con velocidad fija y cambio brusco de
dirección (a veces ese cambio en el tiempo se
suaviza, para refinar el camino recorrido)
Física y animación 12
Movimiento cinemático
SMOOTHING
Estado ESTÁTICO del agente, sólo con
posición (2D) y orientación (0..2π radianes)
Un algoritmo de movimiento CINEMÁTICO, recibe dicho estado estático del
agente y devuelve como “dirección de salida” la velocidad lineal y angular
(rotación) que debe tener este para que realice cierto movimiento
13. ● Más complejo, se usan en simulación (ej.
manejo de un vehículo) y en los videojuegos
actuales, de movimiento más realista
Física y animación 13
Movimiento dinámico
Estado CINEMÁTICO del agente,
añadiendo al estado estático la
velocidad lineal y angular
(rotación en radianes/segundo)
Un algoritmo de movimiento DINÁMICO, recibe el estado
cinemático del agente y devuelve como “dirección de
salida” la fuerza (directamente proporcional a una
aceleración lineal y angular) que debe aplicarse a este
para que realice cierto movimiento
14. ● Esta es la base del algoritmo, que actualiza
posición y orientación según el movimiento
que está realizando el “agente cinemático”
Física y animación 14
Algoritmos cinemáticos
* Nos pasan el “movimiento requerido” y el tiempo
Todo esto suele quitarse,
por ser despreciable
15. ● Función adicional para modificar la
orientación acorde a la velocidad lineal
○ Si queremos orientarnos de golpe, directamente
Física y animación 15
Orientación natural
*atan2 es la función
arcotangente de dos parámetros
16. * Algoritmo de Seguimiento
(no confundir con Persecución,
que es algo más inteligente
y lleva predicción)
Física y animación 16
Seguimiento y huida
* Modificación para Huida
(no confundir con Evasión,
versión mejorada con predicción)
SEEK
FLEE
PURSUE
EVADE * Normalización
17. Física y animación 17
Llegada
* Algoritmo de Llegada
(para que los agentes no
se queden “orbitando”
alrededor del destino,
sino que lleguen de
verdad a detenerse
en el objetivo)
ARRIVE
18. Física y animación 18
Llegada
* Lo contrario a la Llegada sería la Salida
(marcharse primero despacio y luego cada vez
más deprisa… aunque no se usa mucho)
19. Física y animación 19
Merodeo (uno de muchos posibles)
* Algoritmo para Merodeo
WANDER
*randomBinomial equivale a
pedir dos números aleatorios
entre 0 y 1, y restarlos
*asVector convierte la
orientación o en un vector de
dirección (x,y) = (sin(o),cos(o))
20. ● ¿Qué maneja el movimiento cinemático?
A. La aceleración lineal y angular
B. La posición y la orientación
C. Lo del estático, más velocidad lineal y rotación
D. Lo del estático, más lo del dinámico
● Desarrolla tu respuesta (en texto libre)
Física y animación 20
Participación
21. * Excepto el contenido multimedia de terceros autores
Federico Peinado (2019-2023)
www.federicopeinado.es
Críticas, dudas, sugerencias...
22. ● Muchos algoritmos de movimiento predicen,
como en los juegos online, aunque es típica
del lanzamiento de proyectiles
○ Permite saber cuál será el punto de impacto y si la
trayectoria colisionará o no con cierto objetivo
○ Ej. Las balas reales trazan
un arco parabólico ¡y hay
videojuegos que lo emulan!
○ Si la complejidad es grande,
hay rozamientos, etc. se hace
un apuntado iterativo
(= se simulan N lanzamientos) Física y animación 22
Predicción física
*
La
gravedad
acelera
a
9,81
m/s
2
aunque
en
videojuegos
a
veces
se
usa
el
doble
23. ● Hay movimientos como el salto en los que
el agente se lo juega todo a una carta
○ Truco: El diseñador puede marcar puntos de salto
(¡incluso evitar saltos demasiado
difíciles en sus niveles!)
○ Se puede anotar la velocidad
mínima de salto, o sólo marcar
la zona de aterrizaje y que el
agente calcule su velocidad
○ Lo ideal sería marcar los
huecos saltables y que luego
el agente los salte como quiera
Física y animación 23
Saltos y otros movimientos
LANDING PAD
HOLE FILLER
24. ● La orientación tridimensional suele emplear
cálculos matemáticos en cuaterniones
○ Extensión de los números reales con
tres unidades imaginarias (i, j, k)
○ Orientarse en 3D es de
por sí difícil... a
veces se ofrece un eje Z
o se simula la Deriva
con Alabeo + Inclinación,
como en un avión real
Física y animación 24
Saltos y otros movimientos
Deriva
Alabeo
Inclinación
25. ● Millington, I.: Artificial Intelligence for
Games. CRC Press, 3rd Edition (2019)
Física y animación 25
Más información
26. ● El movimiento dinámico añade la
consideración de fuerzas al cinemático, que
es un estudio del movimiento más sencillo
● Es típico predecir la física de proyectiles,
para ver donde llegan nuestros disparos
● Saltar o controlar un coche requiere de
ciertos trucos, y el 3D, de mayores cálculos
● Hay algoritmos cinemáticos básicos en
videojuegos como la persecución, la huida,
la llegada y el merodeo
Física y animación 26
Resumen
27. ● Hitos históricos
● Fundamentos del movimiento
● Predicción física
● Saltos y otros movimientos
● Algoritmos cinemáticos
○ Persecución
○ Huida
○ Llegada
○ Merodeo
Física y animación 27
Puntos clave
28. Si puedes habla también de Control de
Sistemas (Conducción), PID y cosas así… pues
molaría, pero eso tal vez en Movimiento
Dinámico [Mencionarlo pero no lo cubrimos en
la asignatura]
Física y animación 28
29. Ojo, menuda explicación de vectores y de algo
más general incluso: TENSORES
https://www.youtube.com/watch?v=f5liqUk0Z
Tw
CHULÍSIMO: https://www.myphysicslab.com/
Física y animación 29