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

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

Post on 29-Jan-2016

212 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • UsingSynthetic Visionfor Autonomous Non-Player Charactersin Computer GamesASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002

  • Synthetic Vision en JuegosASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioObjetivoLograr mayor nivel de realismo en los personajes manejados por la computadora (NPC o Non-Player Characters) utilizando tcnicas de sensado del ambiente para que el mdulo de inteligencia artificial (IA) que gobierna el comportamiento de cada agente, lo haga exclusivamente mediante el uso de esa informacin sensada.MedioInicialmente un sistema de sensado visual que produzca con alguna representacin semntica lo que el agente est viendo en cada momento. Ese sistema es lo que se propone en este trabajo.PotencialGenerar personajes totalmente autnomos, 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.

  • Synthetic Vision vs Computer VisionASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioComputer VisionTcnica utilizada en robots reales. Es difcilmente aplicable para crear agentes autnomos complejos en aplicaciones en tiempo real como los juegos de computadora. Lidia con:Deteccin de distancias.Reconocimiento de formas.Ruido.

    Synthetic VisionTcnica utilizada para agentes en mundos virtuales. Es una representacin en 2D de lo que el agente ve en un instante dado en su mundo 3D. Permite tratar fcilmente problemas de:Percepcin de profundidad.Reconocimiento de objetos.Deteccin de movimiento.

  • Synthetic Vision PropuestoASAI 2002 31 JAIIOSanta Fe Argentina Septiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioViewport EstticoUtiliza falso coloreo para identificacin de objetos.Provee adicionalmente informacin de profundidad.Viewport DinmicoUtiliza falso coloreo para representacin de movimiento instantneo. PropuestaDe la escena renderizada desde el punto de vista del agente, se generan dos viewports. Uno conteniendo informacin esttica, el Static Viewport, y el otro conteniendo informacin dinmica, el Dynamic Viewport. La informacin est dada por falso coloreo en cada pxel, brindando una semntica al color representado, en el modelo RGB.

  • Static ViewportASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioColor de la EstructuraLos polgonos de la estructura de la escena se dividen en tres clases:

    Piso: Polgonos con la componente Z de la normal mayor o igual a 0.8. Utilizamos el color verde (0.0, 1.0, 0.0).

    Techo: Polgonos 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 polgonos. Utilizamos el color azul (0.0, 0.0, 1.0).

    (la coordenada Z apunta hacia el cielo)

  • Static Viewport (cont.)ASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioColor de Otros ObjetosA cada clase de objeto se le asigna un nico color. Por ejemplo:

    Todo power-up de energa 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 infantera se representa con (0.2, 1.0, 0.6).

    Toda persona inocente se representa con (0.7, 0.7, 0.5).

  • Static Viewport (cont.)ASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioProfundidadEl uso de la tecnologa actual de motores 3D y hardware de aceleracin 3D permiten obtener gratis la informacin 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 nmero real entre 0 y 1, llammoslo dx,y.

    Para calcular la distancia perpendicular d a la que se encuentra lo que representa dicho pxel del agente:

    d = ( f n ) . dx,y + n

    f es la distancia al plano ms lejano del View Frustum.n es la distancia al plano ms cercano del View Frustum.farnearView FrustumViewpoint

  • Dynamic ViewportASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioSemntica del ColorCada pxel con coordenadas (x, y) en el viewport dinmico representa la informacin de movimiento instantnea del objeto con coordenadas (x,y) en el viewport esttico.

    Sea V el vector velocidad del objeto en las coordenadas dichas, y D el vector de direccin de visin del agente, cada componente de color se obtiene como:

    Rojo: Mapeo de la magnitud de V, ||V|| [0, Vmx], 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].

  • Dynamic Viewport (cont.)ASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioSemntica del Color (cont.)Si normalizamos los vectores:

    VN = V / ||V||yDN = 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 tambin en cero, y produce un seno en uno.

  • Mdulo de IAASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioDescripcinDesarrollamos un mdulo de IA muy simple para demostrar cmo podra ser usada la visin sinttica.

    Consiste en dar comportamiento autnomo a un NPC dentro de un juego del gnero FPS (First Person Shooter).

    El comportamiento est basado en reglas y es reactivo.

    Sobre el FPSEl NPC, Bronto, cuenta con dos propiedades: Energa 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 energa como las municiones disminuyen linealmente, cuando la energa de Bronto llega a 0, muere.

    Bronto puede incrementar los valores de energa y municiones recogiendo power-ups del piso.

  • Mdulo de IA (cont.)ASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioComportamiento EstticoSe definen una serie de estados en los cuales Bronto estar dependieno de los valores de sus propiedades energa y municiones.

    Lo llamamos comportamiento esttico porque se resuelve con el viewport esttico y profundidad.

    Las variables a tener en cuenta son:H: Energa actual de Bronto.Hini: Energa inicial de Bronto.Hut: Umbral superior de energa.Hlt: Umbral inferior de energa.Anlogas para municiones (Wxx).EstadosWA (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).

  • Mdulo de IA (cont.)ASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioWalk AroundBronto est en este estado cuando no tiene ningn objetivo en concreto. Se dedica slo a caminar evitando obstculos.

    A travs de una heurstica, se elige un punto de destino que corresponda a piso en el static viewport.

    A travs de una desproyeccin, 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.

  • Mdulo de IA (cont.)ASAI 2002 31 JAIIOSanta Fe ArgentinaSeptiembre 2002Using Synthetic Vision for Autonomous Non-Player Characters in Computer GamesEnrique, Sebastian; Watt, Alan; Maddock, Steve; Policarpo, FabioLooking-ForBronto est en este estado cuando est necesitado de algn o ambos power-ups. En LW, LH, y LHW Bronto camina, mientras que en LQW y LQH corre.

    A travs de una heurstica, se recorre el static viewport obteniendo todos los objetos que correspondan al power-up buscado.

    Luego, se selecciona el power-up ms 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 haba ningn power-up del buscado o la heurstica fall al intentar encontrar una coordenada en el viewport que corresponda a piso con las caractersticas mencionadas, se ejecuta el comportamiento Walk Around.

    Como en Walk Around, este proceso de seleccin de destino se repite ca