using synthetic vision for autonomous non-player characters in computer games asai 2002 – 31º...

18
Using Synthetic Synthetic Vision Vision for Autonomous Non-Player Characters for Autonomous Non-Player Characters in Computer Games in Computer Games ASAI 2002 – 31º JAIIO ASAI 2002 – 31º JAIIO Santa Fe – Argentina Santa Fe – Argentina Septiembre 2002 Septiembre 2002 Autores: Autores: Enrique, Enrique, Sebastian Sebastian [email protected] [email protected] Watt, Alan Watt, Alan [email protected] [email protected] Maddock, Steve Maddock, Steve [email protected] [email protected] Policarpo, Fabio Policarpo, Fabio [email protected] [email protected] r

Upload: susana-zara

Post on 29-Jan-2016

229 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

UsingSynthetic Synthetic VisionVisionfor Autonomous Non-Player Charactersfor Autonomous Non-Player Characters

in Computer Gamesin Computer Games

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Autores:Autores: Enrique, SebastianEnrique, Sebastian [email protected]@dc.uba.ar

Watt, AlanWatt, Alan [email protected]@dcs.shef.ac.uk

Maddock, SteveMaddock, Steve [email protected]@dcs.shef.ac.uk

Policarpo, FabioPolicarpo, Fabio [email protected]@paralelo.com.br

Page 2: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Synthetic Vision en JuegosSynthetic Vision en Juegos

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

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.

Page 3: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Synthetic Vision vs Computer VisionSynthetic Vision vs Computer Vision

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

Computer VisionTé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 VisionTé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.

Sin VisiónComputer

Vision

Synthetic Vision

Page 4: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Synthetic Vision PropuestoSynthetic Vision Propuesto

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – Argentina Santa Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

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.

PropuestaDe 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.

Page 5: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Static ViewportStatic Viewport

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

Color de la EstructuraLos 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)

Page 6: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Static Viewport Static Viewport (cont.)(cont.)

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

Color de Otros ObjetosA 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).

Page 7: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Static Viewport Static Viewport (cont.)(cont.)

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

ProfundidadEl 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

Page 8: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Dynamic ViewportDynamic Viewport

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

Semántica del ColorCada 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].

Page 9: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Dynamic Viewport Dynamic Viewport (cont.)(cont.)

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

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.

Page 10: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Módulo de IAMódulo de IA

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

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.

Page 11: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Módulo de IA Módulo de IA (cont.)(cont.)

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

LW

LH

WA

LHW

LQW

LQH

H=HiniW=WiniHltH<Hut

WutWHutHWutW

HutHWltW<Wut

HltH<Hut

WltW<Wut

H<Hlt HltHW<Wlt

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).

Page 12: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Módulo de IA Módulo de IA (cont.)(cont.)

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

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.

Page 13: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Módulo de IA Módulo de IA (cont.)(cont.)

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

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.

Page 14: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Módulo de IA Módulo de IA (cont.)(cont.)

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

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)<0) o se aleja (cos(V,D)0) de Bronto.

•Los estados definidos son:

•Don’t Worry No Hay Enemigo (Hay Enemigo ( H < Hut W < 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 < Hut W < Wut ) cos(V,D) < 0Cuando 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.

Intercept

Don’t Worry Avoid

Page 15: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

DemoDemo

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

Page 16: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

ConclusionesConclusiones

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

•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 NPC’s 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.

Page 17: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Demo: PadCenterDemo: PadCenter

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

PadCenter fue construido por Andreas Ente, [email protected], http://padworld.exp-network.de/

Page 18: Using Synthetic Vision for Autonomous Non-Player Characters in Computer Games ASAI 2002 – 31º JAIIO Santa Fe – Argentina Septiembre 2002 Autores: Enrique,

Demo: Quake IIIDemo: Quake III

ASAI 2002 – 31º JAIIOASAI 2002 – 31º JAIIOSanta Fe – ArgentinaSanta Fe – Argentina

Septiembre 2002Septiembre 2002

Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesUsing Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, Fabio

Quake III Arena, id Software, http://www.quake.com/