Title: Presentaci
1Departamento de Computación Facultad de
Ciencias Exactas y Naturales Universidad de
Buenos Aires
An Investigation Into the Use of
Synthetic Vision
for NPCs/Agents
in Computer Games
Autor
Director
Watt, Alan
a.watt_at_dcs.sheffield.ac.uk
Co-Director
Tesis de Licenciatura Octubre 7, 2002
2An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
3An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
4An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
Trabajo Previo
- Olivier Renault utiliza en 1990 una visión
sintética de 30x30 píxeles para animación,
valiéndose del front buffer para rendering
normal, del back buffer para identificación de
objetos, y del z-buffer para distancias. Propone
comportamientos de alto nivel para atravesar un
corredor evitando obstáculos. - Terzopoulos propone en 1994 un sistema de visión
estereoscópica para simular la visión de peces
artificiales. - Hansrudi Noser utiliza en 1995 una visión
sintética para navegación de un actor digital.
Emplean una memoria por medio de voxels para
evasión de obstáculos y representación de
conocimiento. - Bruce Blumberg propone en 1997 una visión
sintética basada en energía de movimiento para
navegación en bajo nivel y evasión de obstáculos
de un perro virtual. - James Kuffner en 1999 realiza una visión
sintética con falso coloreo y memoria visual para
resolver cuestiones de navegación. - Ninguno de los trabajos anteriores se enfoca en
la realización de un sistema de visión sintética
para el uso en los juegos de computadora.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
5An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
6An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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)
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
7An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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).
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
8An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
9An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
10An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
11An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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,
sin memoria, 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.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
12An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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).
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
13An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
14An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
Módulo de IA (cont.)
Heurística Walk Around
- Estrategia Camino libre central
- Estrategia Camino libre más a la derecha de la
mitad izquierda del viewport
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
15An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
Módulo de IA (cont.)
Heurística Walk Around (cont.)
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
16An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
Módulo de IA (cont.)
Heurística Walk Around Giro
- Si hubo falla, se intenta girar aleatoriamente a
izquierda o derecha.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
17An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
18An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
Módulo de IA (cont.)
Heurística Looking-For
?x, ?y ? ?0, cantidad de píxeles de tolerancia en
el viewport estático para los ejes x e y. ?d ? ?,
0 ? ?d ? 1, tolerancia en el depth buffer para la
profundidad. PUr, bounding box radio del power-up
en píxeles. ?x ?y PUr o.depth ?d PUr (
NP / FP ) Armar lista objectlist vacía Recorrer
el static viewport Si el píxel p es un power-up
de la clase buscada entonces Para cada objeto o
de la lista objectlist Si p.x ? o.x - ?x, o.x
?x y p.y ? o.y - ?y, o.y ?y y
p.depth ? o.depth - ?d, o.depth ?d
entonces Se trata de un píxel del objeto o,
dejar de comparar objetos y seguir con el
próximo píxel del viewport. Si p no pertenecía a
ningún objeto, agregar un objeto o a objectlist
con o'.x p.x o'.y p.y o'.depth p.depth
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
19An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
Problemas Conocidos
The Higher Floor Problem
- Lo que no es piso propiamente dicho, pero se
dibuja en el static viewport con el color del
piso debido a la normal del polígono, Walk Around
no sabe identificarlo y puede producirse que
Bronto se quede estancado intentando atravesar
obstáculos como si no existieran.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
20An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
Problemas Conocidos (cont.)
The Perspective Problem
- Como Walk Around utiliza un rectángulo para
determinar puntos de destino en el static
viewport, no se está teniendo en cuenta el efecto
de la perspectiva, esto produce que Bronto esté
corto de vista y elija destinos relativamente
cercanos.
- Como Bbbr es un valor estimado y está obtenido
experimentalmente para no estar demasiado corto
de vista, Bronto también podría intentar pasar
por lugares donde no cabe.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
21An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
Problemas Conocidos (cont.)
The Looking-For Problem
- La heurística utilizada en Looking-For no toma en
cuenta obstáculos ni el ancho de Bronto, causando
que se quede estancado si algo interfiere en el
camino entre su posición actual y el destino
deseado.
Problema
Solución
Otros Casos con Problemas
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
22An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
23An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
Demostración
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
24An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
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.
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
25An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
Trabajo a Futuro
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002
26An Investigation Into the Use of Synthetic Vision
for NPCs/Agents in Computer Games Sebastian
Enrique
Preguntas
Autor
Director
Watt, Alan
a.watt_at_dcs.sheffield.ac.uk
Co-Director
Tesis de Licenciatura DC FCEyN - UBA Octubre 7,
2002