Title: Presentaci
1Using
Synthetic Vision
for Autonomous Non-Player Characters
in Computer Games
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
2Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Synthetic Vision en Juegos
Objetivo
- Lograr mayor nivel de realismo en los personajes
manejados por la computadora (NPC o Non-Player
Characters) utilizando técnicas de sensado del
ambiente para que el módulo de inteligencia
artificial (IA) que gobierna el comportamiento de
cada agente, lo haga exclusivamente mediante el
uso de esa información sensada.
Medio
- Inicialmente un sistema de sensado visual que
produzca con alguna representación semántica lo
que el agente está viendo en cada momento. Ese
sistema es lo que se propone en este trabajo.
Potencial
- Generar personajes totalmente autónomos, que
sensen el ambiente de un modo similar al que lo
hace un humano, y lleven la experiencia de cada
juego y jugador a niveles nunca antes logrados.
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
3Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Synthetic Vision vs Computer Vision
Computer Vision Técnica utilizada en robots
reales. Es difícilmente aplicable para crear
agentes autónomos complejos en aplicaciones en
tiempo real como los juegos de computadora. Lidia
con
- Detección de distancias.
- Reconocimiento de formas.
- Ruido.
Synthetic Vision Técnica utilizada para agentes
en mundos virtuales. Es una representación en 2D
de lo que el agente ve en un instante dado en su
mundo 3D. Permite tratar fácilmente problemas de
- Percepción de profundidad.
- Reconocimiento de objetos.
- Detección de movimiento.
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
4Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Synthetic Vision Propuesto
Propuesta
De la escena renderizada desde el punto de vista
del agente, se generan dos viewports. Uno
conteniendo información estática, el Static
Viewport, y el otro conteniendo información
dinámica, el Dynamic Viewport. La información
está dada por falso coloreo en cada píxel,
brindando una semántica al color representado, en
el modelo RGB.
Viewport Estático
- Utiliza falso coloreo para identificación de
objetos. - Provee adicionalmente información de profundidad.
Viewport Dinámico
- Utiliza falso coloreo para representación de
movimiento instantáneo.
ASAI 2002 31º JAIIO Santa Fe Argentina
Septiembre 2002
5Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Static Viewport
Color de la Estructura
- Los polígonos de la estructura de la escena se
dividen en tres clases - Piso Polígonos con la componente Z de la normal
mayor o igual a 0.8. Utilizamos el color verde
(0.0, 1.0, 0.0). - Techo Polígonos con la componente Z de la normal
menor o igual a -0.8. Utilizamos el color rojo
(1.0, 0.0, 0.0). - Pared El resto de los polígonos. Utilizamos el
color azul (0.0, 0.0, 1.0). - (la coordenada Z apunta hacia el cielo)
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
6Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Static Viewport (cont.)
Color de Otros Objetos
- A cada clase de objeto se le asigna un único
color. Por ejemplo - Todo power-up de energía se representa con (1.0,
1.0, 0.0). - Todo power-up de municiones se representa con
(0.0, 1.0, 1.0). - Todo enemigo de infantería se representa con
(0.2, 1.0, 0.6). - Toda persona inocente se representa con (0.7,
0.7, 0.5).
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
7Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Static Viewport (cont.)
Profundidad
El uso de la tecnología actual de motores 3D y
hardware de aceleración 3D permiten obtener
gratis la información de profundidad tomada del
Z-Buffer. A cada coordenada (x, y) del Static
Viewport, corresponderá una coordenada (x, y) en
el Z-Buffer que contiene un número real entre 0 y
1, llamémoslo dx,y. Para calcular la distancia
perpendicular d a la que se encuentra lo que
representa dicho píxel del agente d ( f n )
. dx,y n f es la distancia al plano más lejano
del View Frustum. n es la distancia al plano más
cercano del View Frustum.
far
near
View Frustum
Viewpoint
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
8Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Dynamic Viewport
Semántica del Color
- Cada píxel con coordenadas (x, y) en el viewport
dinámico representa la información de movimiento
instantánea del objeto con coordenadas (x,y) en
el viewport estático. - Sea V el vector velocidad del objeto en las
coordenadas dichas, y D el vector de dirección de
visión del agente, cada componente de color se
obtiene como - Rojo Mapeo de la magnitud de V, V ? 0,
Vmáx, en el intervalo 0, 1. - Verde Mapeo del coseno del ángulo entre V y D, ?
-1, 1, al intervalo 0, 1. - Azul Mapeo directo del seno del ángulo entre V y
D, ? 0, 1, al intervalo 0, 1.
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
9Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Dynamic Viewport (cont.)
Semántica del Color (cont.)
Si normalizamos los vectores VN V /
V y DN D / D El coseno puede obtenerse
como cos(V, D) VN . DN VN1 . DN1 VN2 .
DN2 VN3 . DN3 Y el seno sen(V, D) ?(1
cos2(V, D)) Por lo tanto, todo objeto inanimado
se verá con color (0.0, 0.5, 1.0), un tono
azulado por tener velocidad cero, se asume un
coseno también en cero, y produce un seno en uno.
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
10Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Módulo de IA
Descripción
- Desarrollamos un módulo de IA muy simple para
demostrar cómo podría ser usada la visión
sintética. - Consiste en dar comportamiento autónomo a un NPC
dentro de un juego del género FPS (First Person
Shooter). - El comportamiento está basado en reglas y es
reactivo.
Sobre el FPS
- El NPC, Bronto, cuenta con dos propiedades
Energía y Municiones. - El modelo de un FPS se ha simplificado no es
posible que Bronto dispare con armas o reciba
impacto de armas enemigas. - Tanto la energía como las municiones disminuyen
linealmente, cuando la energía de Bronto llega a
0, muere. - Bronto puede incrementar los valores de energía y
municiones recogiendo power-ups del piso.
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
11Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Módulo de IA (cont.)
Comportamiento Estático
- Se definen una serie de estados en los cuales
Bronto estará dependieno de los valores de sus
propiedades energía y municiones. - Lo llamamos comportamiento estático porque se
resuelve con el viewport estático y profundidad. - Las variables a tener en cuenta son
- H Energía actual de Bronto.
- Hini Energía inicial de Bronto.
- Hut Umbral superior de energía.
- Hlt Umbral inferior de energía.
- Análogas para municiones (Wxx).
Estados
- WA (Walk Around).
- LH (Looking-For Health).
- LW (Looking-For Weapon).
- LHW (Looking-For Health and Weapon).
- LQW (Looking Quickly for Weapon).
- LQH (Looking Quickly for Health).
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
12Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Módulo de IA (cont.)
Walk Around
- Bronto está en este estado cuando no tiene ningún
objetivo en concreto. Se dedica sólo a caminar
evitando obstáculos. - A través de una heurística, se elige un punto de
destino que corresponda a piso en el static
viewport. - A través de una desproyección, se obtiene el
punto de destino en coordenadas del mundo. - Luego, se traza una curva de Bezier entre Bronto
y el punto de destino, que será el camino que
Bronto recorrerá. - Si no es posible encontrar un punto de destino,
Bronto intenta girar aleatoriamente a izquierda o
derecha. - Si se detecta que Bronto está estancado, rota
180º. - Este procedimiento se repite cada vez que Bronto
ya recorrió un porcentaje determinado de la
última curva trazada.
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
13Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Módulo de IA (cont.)
Looking-For
- Bronto está en este estado cuando está necesitado
de algún o ambos power-ups. En LW, LH, y LHW
Bronto camina, mientras que en LQW y LQH corre. - A través de una heurística, se recorre el static
viewport obteniendo todos los objetos que
correspondan al power-up buscado. - Luego, se selecciona el power-up más cercano a
Bronto, y se busca la coordenada en el viewport
que corresponda a piso, esté a la misma
profunidad que el power-up, y se encuentre debajo
del mismo. - Esa coordenada es la que se establece como la de
destino para luego desproyectar y trazar la curva
de Bezier. - Si no había ningún power-up del buscado o la
heurística falló al intentar encontrar una
coordenada en el viewport que corresponda a piso
con las características mencionadas, se ejecuta
el comportamiento Walk Around. - Como en Walk Around, este proceso de selección de
destino se repite cada vez que Bronto recorrió un
porcentaje determinado de la última curva de
bezier trazada.
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
14Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Módulo de IA (cont.)
Comportamiento Dinámico
- Para demostrar un posible uso del viewport
dinámico, agregamos - comportamientos reactivos ante la presencia o
ausencia de enemigos. - Específicamente utilizamos la componente verde
para saber si el - objeto viene (cos(V,D)lt0) o se aleja
(cos(V,D)?0) de Bronto. - Los estados definidos son
- Dont Worry ? No Hay Enemigo ? (Hay Enemigo ? ( H
lt Hut ? W lt Wut ) ? cos(V,D) ? 0) - Cuando no hay enemigos o todos los que se ven se
alejan de Bronto y alguna propiedad está por
debajo del umbral superior se debe continuar con
el comportamiento estático. - Avoid ? Hay Enemigo ? ( H lt Hut ? W lt Wut ) ?
cos(V,D) lt 0 - Cuando se ve al menos un enemigo que se acerca a
Bronto y alguna propiedad está por debajo del
umbral superior debe evitarse. - Intercept ? Hay Enemigo ? H ? Hut ? W ? Wut
- Cuando se ve al menos un enemigo y ambas
propiedad están por encima del umbral superior
debe interceptarse.
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
15Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Demo
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
16Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Conclusiones
- El sistema de visión sintética propuesto brinda
la suficiente información como para poder ser
usado en módulos de IA para crear NPCs más
reales, sensando el ambiente en lugar de acceder
directamente a la información del juego. - El sistema de visión es perfecto en el sentido
que las condiciones de luz no están consideradas
en el falso coloreo un objeto en una zona poco
iluminada, que sería difícil de ver, es percibido
perfectamente igual que si estuviera plenamente
iluminado. - La información brindada por el viewport dinámico
también es perfecta. Podría agregarse ruido para
hacerlo más humano. - Se ha implementado un simple agente sin memoria
con resultados satisfactorios, el desafío ahora
es agregar memoria y aprendizaje, y posiblemente
otros sentidos como el auditivo.
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
17Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Demo PadCenter
PadCenter fue construido por Andreas Ente,
ENTE.endres_at_t-online.de, http//padworld.exp-netwo
rk.de/
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002
18Using Synthetic Vision for Autonomous Non-Player
Characters in Computer Games Enrique, Sebastian
Watt, Alan Maddock, Steve Policarpo, Fabio
Demo Quake III
Quake III Arena, id Software, http//www.quake.com
/
ASAI 2002 31º JAIIO Santa Fe
Argentina Septiembre 2002