Multitudes con comportamientos modificados por el ambiente

90
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS ESTADO DE MÉXICO MULTITUDES CON COMPORTAMIENTOS MODIFICADOS POR EL AMBIENTE Asesor: TESIS QUE PARA OPTAR EL GRADO DE MAESTRO EN CIENCIAS COMPUTACIONALES PRESENTA FERNANDOPEREZROBLERO Dr. ISAAC RUDOMIN GOLDBERG. Comité de tesis: DR. NEIL HERNÁNDEZ GRESS. DR. BENES BEDRICH. Atizapán de Zaragoza, Edo. Méx., Julio de 2004.

Transcript of Multitudes con comportamientos modificados por el ambiente

Page 1: Multitudes con comportamientos modificados por el ambiente

INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS ESTADO DE MÉXICO

MULTITUDES CON COMPORTAMIENTOS MODIFICADOS POR EL AMBIENTE

Asesor:

TESIS QUE PARA OPTAR EL GRADO DE MAESTRO EN CIENCIAS COMPUTACIONALES

PRESENTA

FERNANDOPEREZROBLERO

Dr. ISAAC RUDOMIN GOLDBERG.

Comité de tesis: DR. NEIL HERNÁNDEZ GRESS. DR. BENES BEDRICH.

Atizapán de Zaragoza, Edo. Méx., Julio de 2004.

Page 2: Multitudes con comportamientos modificados por el ambiente

El querer representar el comportamiento tanto humano como animal, ha llevado a crear un smnumero de algorionos que nos permitan simularlos de una manera realista. El presente trabaJo logra recrear comportamientos grupales e individuales tomando en cuenta los siguientes puntos:

1 . Cada individuo presenta características propias que lo hacen diferente al resto del grupo al que pertenece. Estas características nos dicen el tipo de personaje que se representara (humano o animal), la personalidad o entrenamiento que puedan tener (civiles, seguridad), las condiciones en las que se encuentren, etc. Cada una de estas características se logra asignando un determinado valor a variables que representan cada una de ellas. Aun cuando el comportamiento puede ser único, cada individuo adquiere un comportamiento del grupo al que pertenece distinguiéndolos de otros grupos.

2. Al desenvolverse dentro de un ambiente en constante cambio, cada individuo se ve afectado por los eventos que se presenten dentro del mismo. Estos eventos afectaran a los individuos dependiendo de las características que cada uno de los individuos o grupos posean, logrando así diversas reacciones ante un mismo evento. Para recrear el ambiente se crearon diferentes escenas y escenarios que nos permiten simular diferentes eventos y poder observar la reacción de los individuos.

El resultado nos permite recrear comportamientos complejos a partir de comportamientos simples, generando comportamientos iniciales que permitan ser modificados por eventos externos a ellos.

Page 3: Multitudes con comportamientos modificados por el ambiente

L\DICE.

l INTRODUCCION.

1.1 PLANTEAMIENTO DEL PROBLEMA.

1.2 OBJETIVOS.

1.3 CONTRIBUCION DE LA TESIS.

2 TRABAJOS RELACIONADOS

2.1 COMPORTAMIENTO

2.2 MULTITUDES

2.3 GENERACION DEL COMPORTAMIENTO.

2.4 COLISIONES.

2.5 NIVEL DE DETALLE

2.6 AMBIENTE (ESCENARIOS)

2.6.1 REPRESENTACIÓN DE DESASTRES.

3 DESARROLLO.

3.1 COMPORTAMIENTO.

3.1.1 TIPO DE PERSONAJE.

3.1.2 PERSONALIDAD O ENTRENAMIENTO.

3.1.3. COMPORTAMIENTO BASE.

11

12

13

13

15

15

15

17

27

31

37

37

41

41

41

41

42

Page 4: Multitudes con comportamientos modificados por el ambiente

3 14. TIPO DE GRUPOS

3 1 5. COMPORTAMIENTO FINAL.

3 1.6. ESTlMULOS.

3.1.7. DECISIONES O ACCIONES.

3 1.8 MAPAS DE COMPORTAMIENTOS.

3.1.9 GRUPALES.

3.1.10 INDIVIDUALES.

3.2 RUTAS DE DESPLAZAMIENTO.

3.2. l COLISIONES.

3.2.1.1.- GENERACIÓN DE UN MAPA DE GRADIENTES.

42

42

43

43

45

45

45

48

48

3.2.1.2.- MODIFICACIÓN DE LOS PUNTOS DE CONTROL DE LAS

CURVAS DE BEZIER. 49

3.3 NIVEL DE DETALLE.

3.3.1 ALGORITMO BASADO EN PUNTOS. (POINT-BASED).

3.3.2 OCLUSION (CULLING)

3.4 ESCENAS Y ESCENARIOS (AMBIENTE).

3.4.1 ESCENAS.

3.4.2 ESCENARIOS.

3.5 ASIGNACION DE CARACTERISTICAS.

3.5.1. A TRAVÉS DE UN ARCHIVO.

3.5.2. A TRAVÉS DE LA INTERFAZ DE USUARIO.

3.6 DESARROLLO DE LA SIMULACION.

3.6.1 ESCENA 1 (EXPLOSION).

51

51

52

54

54

55

56

57

60

61

62

Page 5: Multitudes con comportamientos modificados por el ambiente

3 6 2 ESCENA 2 (ERUPCION).

, 63 ESCENA 3 (OBSTACULOS).

3 64 ESCENA 4 (ANIMALES).

4 RESULTADOS.

5 CONCLUSIONES

6 TRABAJOS FUTUROS.

BIBLIOGRAFÍA

6

68

78

79

84

86

88

90

Page 6: Multitudes con comportamientos modificados por el ambiente

7

LIST¡\ DE FIGURAS

F1g. l. Estructura del comportamiento propuesta por Craig ReyNolds. 18

Fig. .., Estructura del comportamiento Becharaiz y Thalmann . 18

Fig. 3. Actor reaccionando ante un evento. 19

Fig. 4. Grupo de agentes autónomos. 20

Fig. 5. Nivel de autonomía vs. inteligencia de la entidad 21

Fig. 6. Agente interaccionando con un elevador. 22

Fig. 7. Agentes con diferentes comportamientos. 23

Fig. 8. Punto de acción. 24

Fig. 9. Diferentes mapas de ~omportamiento. 25

Fig. l O. Representación del mapa de comportamientos. 25

Fig. 11. Grupos evitando colisiones con objetos. 27

Fig. 12. Áreas no permitidas. 27

Fig. 13. Regiones para la creación de las curvas. 28

Fig. 14. Evitando obstáculos utilizando voronoi. 29

Fig. 1 S. Vehículos siguiendo una ruta determinada. 29

Fig. 16. Nivel de detalle. 3 1

Fig. 17. Impostores. 33

Fig. 18. Creación de impostores utilizando compresión de texturas. 34

Fig. 19. Point based rendering. 35

Fig. 20. Point based rendering y z-butrer. 36

Fig. 21 . Agentes siguiendo al líder. 38

Fig. 22. Simulación de una evacuación. 39

Page 7: Multitudes con comportamientos modificados por el ambiente

F1g . .23. Erupc1on.

F1g. 2-l. Creación del mapa de comportamiento.

F1g. 25. Estructura propuesta del comportamiento.

Fig. 26. Curvas de Bezier.

Fig. 27. Evitando obstáculos.

Fig. 28. Point-based rendering.

Fig. 29. Culling.

Fig. 30. Culling y point based rendering.

Fig. 31. Mapa de alturas utilizado para la simulación de una erupción volcánica.

Fig. 32. Fonnato del archivo de texto para cargar los atributos.

Fig. 33. Interfaz de usuario.

Fig. 34. lnicio de la simulación de la explosión.

Fig. 35. Diferentes personalidades.

Fig. 36. Momento de la explosión.

Fig. 37. Se crea el mapa de comportamientos.

Fig. 38. Persecución.

Fig. 39. Vista general de la erupción.

Fig. 40. Inicio de la simulación de la erupción.

Fig. 41. Dispersión de los personajes

Fig. 42. Personajes subiendo el volcán.

Fig. 43. Inicio de la erupción.

Fig. 44. Comienza la huida.

Fig. 45. Personajes de seguridad adoptando dispositivo.

Fig. 46. Personajes de seguridad fonnando una línea.

8

-W

-l3

44

47

50

52

53

54

56

59

60

63

64

65

66

67

68

69

70

71

72

73

74

75

Page 8: Multitudes con comportamientos modificados por el ambiente

F1g. 47 Trayectonas antes de la erupción

F1g 48. Trayectorias después de la erupción.

Fig. 49 Trayectonas antes de la colisión.

Fig. 50. Trayectorias después de la colisión.

Fig. 51. Inicio de la simulación de los animales.

Fig. 52. Se activa el mapa de comportamientos (alimentos).

Fig. 53. Las hormigas comienzan su ir y venir.

Fig. 54. Mapas dinámicos.

q

76

77

78

79

80

81

82

88

Page 9: Multitudes con comportamientos modificados por el ambiente

10

LISTA DE TABLAS

1. Niveles de detalle según la autonomía 17

.., Resumen de diferentes técnicas de crear comportamientos. 26

J. Resumen de las diferentes técnicas para evitar colisiones. 30

4. Resumen de los diferentes algoritmos para incrementar la velocidad de una simulación. 36

5. Resultados 85

6. Comparación del presente trabajo vs trabajos relacionados. 87

Page 10: Multitudes con comportamientos modificados por el ambiente

11

I INTRODUCCION.

El comportamiento humano es y ha sido objeto de estudio de diferentes ramas del saber, lo que nos da una idea de lo complicado que es el poder definirlo y como consecuencia el simularlo. El comportamiento humano resulta aún mas complejo cuando se trata del estudio de una persona en particular, ya que cada individuo es único y con características propias, no así el comportamiento grupal, que al ser un grupo de individuos se puede predecir o determinar una reacción general o bien determinar los objetivos que pueda tener el conjunto en general. Entre los comportamientos generales de una multitud se tienen situaciones específicas, como pueden ser: huir si se sienten amenaz.adas, formarse para ingresar a un recinto, seguir a un líder, etc.

El generar individuos o grupos virtuales a los que se les puedan asignar determinados comportamientos, es de gran interés para muchas industrias, siendo la del entretenimiento la que mas provecho ha obtenido de la creación de este tipo de simulaciones, así como la pionera en la generación de algoritmos capaces de crear multitudes, esto lo podemos obse1var en las diferentes películas y videojuegos que se han producido y en los que se representan a personajes que interactúan entre si, con su entorno e incluso con actores reales.

Dentro del comportamiento encontramos características que no son posibles de determinar de manera precisa, como es el caso de la personalidad de un individuo, que se debe de obtener de manera aleatoria, ya que no es posible predecir qué personalidad tendrá un individuo en particular. La reacción que tendrá un individuo ante un estímulo proveniente de su entorno dependerá tanto del comportamiento del individuo como de la formación o experiencia que posea, así, un individuo que tenga un entrenamiento o preparación especial reaccionará de manera diferente a un individuo que no lo tenga.

Page 11: Multitudes con comportamientos modificados por el ambiente

12

En s1m11itud con los humanos, los animales al reunirse, forman conJuntos que dependiendo del tipo de animal es el nombre que se le da, parvadas a los pájaros, manada a los rnam1teros, banco a los peces, etc. Estos grupos de animales también tienen comportamientos propios y reacciones ante estímulos provenientes de su entorno. Al igual que los humanos, los animales también ven modificados sus comportamientos por estos estímulos.

El trabajo propuesto nos permite crear personajes con determinadas características que interactúan con su entorno y dependiendo de estas será la reacción que tendrán ante estímulos provenientes del ambiente.

Como el comportamiento humano es dificil de interpretar y por lo mismo de ser programado, se considera que cada individuo tiene un comportamiento base; caminar, descansar, etc., una condición (si se encuentra dentro de un grupo o aislado), una personalidad (en este caso se simula la preparación o entrenamiento, es decir, el tipo de personaje de que se trate) y una reacción (que dependerá de las características propias de cada individuo y de los estímulos provenientes de su entorno).

Para el caso de los animales el comportamiento se programa principalmente por el tipo de animal de que se trate, en este caso pueden ser hormigas, mamíferos y pájaros.

l.l. PLANTEAMIENTO DEL PROBLEMA.

El objetivo principal de este trabajo es generar comportamientos a nivel individual y grupal. Cada individuo es creado con las características iniciales que el usuario desee y será el entorno el que modifique el comportamiento con el que previamente haya sido programado.

Para lograr una simulación que permita distinguir los diferentes comportamientos, cada individuo debe ser identificado tanto en sus características fisicas como en las acciones que realice. De esta manera se logra una simulación realista. En las características físicas tomamos como referencia la vestimenta que cada individuo porta, y las acciones que realicen dependerán de los atributos que cada uno posea.

La generación del comportamiento debe generarse a partir de comportamientos simples hasta lograr uno más complejo, siendo éste uno de los principales problemas, ya que en principio se debe de considerar cuales serán esos comportamientos simples y qué comportamientos se desean crear en los personajes.

Otro punto importante dentro de la simulación es el escenario. Éste debe poder crearse de una manera fácil, rápida y sencilla. Cada escenario debe incluir eventos que modifiquen los comportamientos iniciales de cada individuo. Para ello es necesario que cada escenario provea

Page 12: Multitudes con comportamientos modificados por el ambiente

13

diferentes eventos que alteren el curso nonnal de la escena. Al ser individuos autónomos. estos esran mtlu1dos por el escenano, que además de incluir eventos, también será el causante de las tra~·e<.:tonas que cada individuo tome durante el recorrido del escenario al presentar diversos obstáculos que estos deberán salvar.

1.2. OBJETIVOS

El presente trabajo tiene los siguientes objetivos:

• Crear multitudes con diferentes comportamientos tanto a nivel grupal como a nivel individual.

1. Los Comportamientos generados pueden ser aplicados a humanos y a animales.

, La asignación de estos comportamientos serán a través de un archivo o bien de forma aleatoria. Esto dependerá del usuario.

• Desarrollar una aplicación que nos permita generar escenarios de una forma rápida y sencilla. Los escenarios serán fundamentales en la simulación al ser los proveedores de eventos y obstáculos.

1. Cada escenario será creado a partir de un mapa de alturas que permita representar diversos aspectos del ambiente.

.., Al ocurrir un evento dentro del escenario se creará un mapa de comportamiento, que será el que modifique el comportamiento inicial de cada individuo.

• Crear multitudes autónomas, capaces de generar y determinar las rutas que seguirán al encontrarse un obstáculo o al presentarse un evento. Cada individuo deberá ser capaz de generar una nueva ruta al encontrar un obstáculo, para ello se utilizaran diferentes algoritmos que permitan salvar los obstáculos.

• Lo anterior encaminado a lograr un objetivo principal: Construir multitudes o individuos con comportamientos cargados previamente y que sea el entorno en el que se desenvuelve el que modifique los comportamientos.

1.3 CONTRIBUCIÓN DE LA TESIS

A diferencia de trabajos anteriores en donde los comportamientos son generados "dentro" del personaje o bien implementados en el ambiente (ya sea a través de mapas de comportamientos o puntos de acción), en la presente tesis se combinan ambas formas. Los individuos adoptarán comportamientos propios y los mapas de comportamiento serán los encargados de disparar los comportamientos o acciones que tuvo cada uno de los individuos.

Page 13: Multitudes con comportamientos modificados por el ambiente

14

El comportamiento se genera partiendo de un componamiento base tanto individual como grupal (como puede ser el caminar y seguir al líder, o correr y huir). Este comportamiento base sera modificado por diferentes atributos que puede tomar el individuo, así como los diferentes estímulos provenientes de su entorno.

Los atributos que puede adoptar un individuo o grupo en particular, pueden ser cargados de una manera detallada a través de un archivo, en el cual son especificados los diferentes personajes, condiciones, comportamientos, etc.

Los mapas de componamientos se generan de dos maneras: en tiempo de ejecución y a veces. cargados de antemano.

Con el fin de evitar las colisiones con el entorno sin afectar la autonomía, se generaron dos algoritmos para llevar a cabo esta tarea:

1.- Se genera un mapa de gradientes, que se calcula con el escenario (que es creado usando un mapa de alturas), y de esta manera se restringe los lugares a donde tendrán acceso los personajes, este mapa se utiliza con obstáculos grandes.

2.- Modificando los puntos de control de las curvas de Bezier, al hacer esto se modifica la trayectoria de las curvas evitando el obstáculo, esto se utiliza cuando los obstáculos son pequeños.

Para aumentar la velocidad de la simulación se utilizo "Point Based rendering" que hace un óptimo uso de la distancia que existe entre el usuario y los personajes, para crear versiones de los mismos con el nivel de detalle apropiado.

La técnica de mapas de alturas ha sido muy utilizada en la creación de terrenos, y es por eso que en el presente trabajo se hace uso de esta técnica. Pero la información que proporciona el mapa de alturas no únicamente se utiliza en la creación del terreno, también es utilizada en la planeación de caminos ya que es posible calcular el gradiente que existe en los diferentes puntos del terreno tomando las alturas que estos poseen.

Page 14: Multitudes con comportamientos modificados por el ambiente

15

2 TRABAJOS RELACIONADOS

2.1 COMPORTAMIENTO.

El comportamiento humano ha sido por siglos objeto de estudio de diferentes ciencias; cada una aborda al ser humano desde una óptica que le permita comprenderlo. Sin embargo, todos estos esfuerzos que desde la antropología, la sociología, la psicología, etc. se vienen haciendo, han contribuido a la formación de una visión fragmentada de lo que es el hombre y su comportamiento.

Por comportamiento humano debemos entender no sólo los hechos observables externamente, es decir, los actos y acciones que todos podemos observar y que podemos, de algún modo, medir y cuantificar objetivamente, sino también los hechos de la experiencia subjetiva (emociones, pensamiento, prejuicios, valores, etc.) que, por el momento, no los podemos observar de un modo objetivo. La razón estriba en que ambos tipos de hechos tienen su origen en la actividad eléctrica del cerebro [ I].

La psicobiología define al comportamiento como movimientos organizados externos al organismo. En los mamíferos, el comportamiento correspondería al "conjunto de los movimientos organizados externos, producidos por la activación del sistema muscular esquelético, bajo el control de la actividad neural" [5]. Y es esta definición la que se toma para desarrollar el presente trabajo.

2.2 MULTITUDES

Se entiende por multitud a un gran número de animales o personas reunidas en un lugar, cada grupo tiene un comportamiento general e individual de sus individuos.

Page 15: Multitudes con comportamientos modificados por el ambiente

16

El comportamiento grupal o de multitudes es más predecible que el comportam1emo ind1v1dual. algunos de los comportamientos generales de una multitud se presentan en situaciones especificas, como pueden ser huir si se sienten amenazadas, formarse para ingresar a un recinto, seguir a un líder, etc.

Aun cuando dentro de las multitudes sus integrantes posean diferentes comportamientos, todos ellos tomaran el comportamiento de conjunto del grupo al que pertenezcan.

Dentro de las características que se deben de considerar para lograr un mayor realismo en la creación de multitudes virtuales podemos mencionar las siguientes; el movimiento grupal e individual, trayectorias a seguir, ropa, iluminación, etc.

Las multitudes pueden ser de diferentes tipos dependiendo de un parámetro en particular, en el caso de la creación de multitudes virtuales, la mayoría de las veces las multitudes se toman de acuerdo al tipo de control que tendrán los agentes. Daniel Thalmann, Soraia Raupp Musse y Marcelo Kallmann [3] proponen la siguiente clasificación de acuerdo a niveles de autonomía:

MULTITUDES GUIADAS: en la que los comportamientos son definidos explícitamente por los usuarios.

MULTITUDES PROGRAMADAS: en las que los comportamientos son programados en un script.

MULTITUDES AUTÓNOMAS: en las que los comportamientos son especificados usando reglas u otros métodos complejos.

Page 16: Multitudes con comportamientos modificados por el ambiente

17

La s1gu1ente tabla eJemplifica la clasificación del nivel de autonomía (LOA) usando dos tareas diferentes: ··grupos yendo a un punto en específico" y "la reacción de un grupo ante un l!vemo··.

1. Niveles de detalle según la autonomía. --- - -- --- ----- ·--- ----~--

Nivel de detalle Yendo a un punto especifico Reacción ante un evento : Guiadas Los grupos necesitan recibir durante la Grupos necesitan recibir una

i simulación un conjunto de puntos. información acerca del evento y

la reacción que será aplicada. 1

1

Programadas Los grupos son programados para Los grupos pueden manejar los 1 maneJar la información de las eventos con los cuales son ! trayectorias evitando las colisiones con programados.

1 1 otros agentes y los obstáculos. 1

1 Autónomas Los grupos están habilitados para Los grupos pueden percibir un ! percibir la información del ambiente y evento y decidir la reacción que

decidir la trayectoria a seguu hasta aplicará. Esta reacción puede alcanzar el objetivo, usando la estar programada o existente en percepción o la memoria. la memoria grupal.

Dependiendo de la aplicación se puede escoger qué nivel de autonomía aplicar. En general, si la simulación quiere enfocarse al comportamiento de una entidad, esta entidad podría tener un máximo LOA.

2.J GENERACION DEL COMPORTAMIENTO.

El comportamiento humano es una de las tareas computacionales más dificiles de simular, esto debido a la gran cantidad de parámetros a tomar en cuenta para hacerlo. Una de las primeras tareas para llevarlo a cabo, es limitar el comportamiento a un grupo de características que permita representarlo, es decir, definir las partes que serán tomadas en cuenta en la simulación. Craig W. Reynolds [16) fue uno de los pioneros en la generación de comportamientos a agentes autónomos. Los comportamientos son generados en términos de cálculos geométricos, es decir, fueron comportamientos en el cual los personajes no necesitaban un comportamiento previo o que tomaran en cuenta el comportamientos como el resultado de variables internas de cada individuo como la personalidad, memoria o la emoción, sino mas bien el comportamiento era proporcionado de acuerdo al calculo de variables que afectaban parámetros fisicos, como la velocidad. dirección, aceleración, etc.

Page 17: Multitudes con comportamientos modificados por el ambiente

La estructura propuesta por Craig Reynolds fue la siguiente.

Selección de la acción: estrategia, objetivos, planeación

Dirección: determinación de la trayectoria

Locomoción: animación, articulación

Fig. 1. Estructura del comportamiento propuesta por Craig Reynolds.

18

Una propuesta en la que se consideraron parámetros internos de los personajes, fue el realizado por Becheiraz y Thalmann [2], en donde el comportamiento está basado en cuatro módulos: percepción, generación de emociones, selección de comportamientos y ejecución de acciones. El modulo de percepción provee a los módulos de comportamiento y de emociones el estado de percepción de cada actor. Este modulo se compone de objetos, actores y las acciones de los actores. El modulo del comportamiento hace uso de la percepción y las emociones para seleccionar un comportamiento, y a controlar la emoción de un actor a través del modulo de acción. La estructura del comportamiento se muestra en figura No. 2.

PERCEPCION EMOCION

COMPORTAMIENTO

ACCION

Fig. 2. Estructura del comportamiento Becharaiz y Thalmann.

Page 18: Multitudes con comportamientos modificados por el ambiente

19

El sistema de animación de compo11amiento descrito por Becharaiz y Thalmann, se enfoca en producir compollamientos animados que envuelven a personajes autónomos. Para incrementar la credibilidad, este sistema no solamente permite definir los comportamientos, también contiene un modelo que permite generar emociones producidas por los personajes. Estas emociones son definidas por condiciones emergentes, es decir, como y cuando pueden ocurrir. Las reacciones seleccionadas por los actores en respuesta están relacionadas con el carácter de cada personaje, así, podemos encontrar emociones de esperanza, miedo, estrés, alegría, etc. todos ellos representados por gestor faciales y corporales.

El uso de un modelo emocional, genera una reacción distinta a cada personaje, con lo que se evita que dos personajes tengan la misma reacción ante un mismo estimulo, dando la sensación de que cada actor tiene su propia personalidad.

Dentro de las caractensttcas a tomar en cuenta para simular un comportamiento, es necesario conocer la reacción que un personaje adoptara ante un evento o estimulo. La emoción es la reacción emotiva de una persona a una percepción. Esta reacción induce a que el cuerpo reaccione, a una expresión facial, un gesto o seleccionar un comportamiento específico. Una emoción ocurre entre la percepción y la consecuente reacción. Dos personas tienen diferentes reacciones a una misma percepción acorde a como haya sido afectada. En la figura No. 3 vemos a un actor sonriente (mostrando la emoción de alegría) ante un espectáculo presentado por su compañero.

Fig. 3. Actor reaccionando ante un evento.

Para seleccionar la acción apropiada es necesario que el actor conozca el estado del ambiente. Sin embargo los actores no nada mas son pasivos, también ellos pueden causar eventos los cuales determinarán que otros actores los tomen en cuenta para el comportamiento final. Por lo tanto la percepción se clasifica en tres categorías: Percepción de los objetos y actores, acciones de actores y eventos.

Page 19: Multitudes con comportamientos modificados por el ambiente

20

En la estructura anterior encontramos que para definir el comportamiento únicamente se tomaron en cuenta la percepción que tiene el individuo de su entorno y la emoción que este tiene en un momento determinado, pero la percepción y emoción no son suficientes para definir un comportamiento, ya que un comportamiento también se ve modificado por las experiencias que un personaje puede llegar a tener, en este caso la memoria se traduce como la experiencia que tendría un personaje e influirá en la reacción de un personaje ante un evento al modificar el comportamiento final del personaje.

Daniel Thalmann, Soraia Raupp Musse, y Marcelo Kallmann [3], realizaron un trabajo tratando de identificar los mecanismos que pueden ser simulados en actores virtuales, esto basado en la vinculación de la percepción, emoción, comportamiento y acción que tendría un individuo, así como el nivel de autonomía.

Este trabajo estuvo basado en lo propuesto por Becheiraz y Thalmann (2], pero determinando niveles de autonomía para los personajes, así como el que los personajes poseyeran memoria. Definiendo como memoria la capacidad de reproducir o recordar que es lo que ha sido aprendido y retenido a través de mecanismos asociativos. Los niveles de autonomía (LOA) los definen como la cualidad o estado de controlarse a si mismo.

Fig. 4. Grupo de agentes autónomos.

Para ellos la inteligencia no nada mas debe de residir en agentes humanos, también puede ser incluido en objetos y grupos de personas y de esta manera crear interacciones entre ellos. Es por esto que es necesario el poder guardar dentro de cada objeto la descripción de cada uno de ellos, es decir, de todas las interacciones posibles que pueden ofrecer a un agente.

; ' • ~' 15.

' ': ~ 1

Page 20: Multitudes con comportamientos modificados por el ambiente

21

La información que se le proporciona a cada objeto se hace a través de su autonomía. As1. cada vez que se incrementa la información al obJeto, éste incrementa su nivel de autonomía hasta lograr un estado total de esta.

~1vel de autonomía

Autónomas Programadas

Inteligencia de la entidad

Agentes

Grupos

Guiadas

Objetos

Fig. 5. Nivel de autonomía vs. Inteligencia de la entidad

En la figura No. 6 encontramos a un agente en una estación de tren, el cual se encuentra envuelto e interaccionando con varios objetos: sillas, una ventanilla y un elevador, muchos de los objetos tienen una programación guiada mientras que el elevador tiene una funcionalidad más compleja al ser autónomo. En este caso el agente percibe e interactúa con los objetos al sentarse en la silla, comprar un boleto en la taquilla o bien tomar el elevador.

Page 21: Multitudes con comportamientos modificados por el ambiente

22

Fig. 6. Agente interaccionando con un elevador.

En el trabajo propuesto por Soraia Raupp Musse y Daniel Thalmann [14] (del cual tomamos una parte para la realización de este trabajo en cuanto al desplazamiento se refiere) los comportamientos están determinados de acuerdo a una jerarquía compuesta por multitudes, grupos e individuos. Los grupos son las estructuras más complejas para ser controladas por diferentes grados de autonomía, esto comparado con la generación de una multitud que puede ser generada de una forma sencilla con un comportamiento simple.

El comportamiento en este trabajo se generó utilizando tres caminos diferentes: un "script" de comportamientos, definiendo reglas de comportamiento y la generación de un comportamiento en tiempo real. La menor entidad a tratar son los grupos. En el caso de la inteligencia, memoria, intención y percepción, se cargan dentro de la estructura del grupo.

Usando el lenguaje de script es posible especificar un comportamiento específico a la multitud o al grupo. Los eventos y las reacciones son usados para representar reglas de comportamiento.

Dentro del lenguaje script también puede ser programada la reacción de un personaje o bien, directamente de un control externo.

Page 22: Multitudes con comportamientos modificados por el ambiente

23

Fig. 7. Agentes con diferentes comportamientos.

"La multitud tiene algo de animal, es sumisa a las fuerzas de la naturaleza; depende de la lluvia o del buen tiempo, del calor o del frío" manifestó el sociólogo francés Gabriel de Tarde [17] y con esto vemos que el ambiente también juega un papel importante dentro de la generación del comportamiento humano, un ejemplo podemos verlo cuando ocurre un evento en el entorno en el que se desenvuelven los personajes, por ejemplo habrá quienes corran cuando comience a llover, otros quizás se resguarden, etc,. la acción que adopten dependerá de un sinnúmero de características propias de cada individuo, es por ello que asi como algunos autores colocan el comportamiento directamente en el personaje (Becheiraz y Thalmann [2]), otros lo asignan en el entorno de los personajes. Dentro de los segundos encontramos el trabajo propuesto por Soraía Raupp Musse y Daniel Thalmann [14] donde el comportamiento (en este caso la reacción que tendrá un personaje) puede ser especificado en puntos de acción o bien por el propuesto por Franco Tecchia, Celine Loscos, Ruth Conroy y Yiorgos Chrysanthou [19] donde los comportamientos se declaran en determinadas regiones conocidas como mapas de comportamientos.

Los puntos de acción no generan propiamente un comportamiento, sino mas bien son puntos en donde los personajes ven modificados el comportamiento con el que fueron programados inicialmente. Los puntos se encuentran programados con acciones que el person~je adoptara una vez que este se encuentre cerca de el.

Page 23: Multitudes con comportamientos modificados por el ambiente

24

• Fig. 8. Punto de acción.

Los mapas de comportamientos se pueden definir como aquellas áreas que tienen un comportamiento específico para cada punto, el cual será tomado cuando un individuo caiga dentro de esa área.

Los mapas de comportamiento han sido usados para poder asignar de una manera rápida y fücil los comportamientos que tendrán los personajes dentro de una escena, en el trabajo propuesto por Franco Tecchia, Celine Loscos, Ruth Conroy y Yiorgos Chrysanthou [19] , no solamente el comportamiento es asignado a traves de mapas sino también las rutas a seguir para evitar las colisiones, los puntos de atracción, la visibilidad de los personajes, etc. Cada una con diferentes características que modifican el comportamiento de los personajes.

Page 24: Multitudes con comportamientos modificados por el ambiente

25

Fig. 9. Diferentes mapas de comportamiento.

La capa de comportamiento, permite al usuario definir los comportamientos que tendrán los personajes en una área determinada a través de un color especifico, así, cuando un personaje se encuentre dentro de esta área adoptará el comportamiento con que haya sido programado. En el mapa de colisiones se especifican áreas por donde los personajes no tienen acceso, haciendo que se desplacen únicamente por lugares permitidos.

Fig. 1 O. Representación del mapa de comportamientos.

En este trabajo los agentes son representados por triángulos verticales en donde cada agente se representa con un color diferente para poder distinguirlos entre si, la dirección es representada por un pequeño triangulo horizontal.

Page 25: Multitudes con comportamientos modificados por el ambiente

26

En la s1gu1ente tabla se hace un resumen de las diferentes tecmcas que nos penrnten generar el componam1ento.

, Resumen de diferentes técnicas de crear comportamientos. Script 1 \lapa Puntos de Acción Reglas (Módulos) 1

1 1

Comportamiento ¡

Permite generar Genera el Genera los Son variables que se comportamientos en comportamiento en comportamientos encuentran "dentro " en tiempo de ejecución, un área determinada y puntos, los cuales son de cada personaje y por lo regular están son adoptados por los adoptados por el permite simular un 1

basados en reglas. personajes cuando se personaJe cuando se comportamiento ¡ 1

encuentran dentro de encuentra cerca del dependiendo del valor 1

él. punto. de cada una de ellas.

Al ser el comportamiento humano un top1co en el cual no hay nada definido. la simulación de éste se rige por lo que se el usuario desea crear. En la presente tesis los comportamientos son generados de dos maneras:

\. El comportamiento es asignado directamente en el personaje siguiendo un conjunto de reglas en la generación de estos. Cada comportamiento dependerá de las características con que haya sido creado un individuo en particular, así como del grupo al que pertenezca. Estos comportamientos son los que conocemos como comportamientos base.

2. Al ser parte importante en la modificación del comportamiento, el ambiente será el encargado de proveer de estímulos, a través de mapas de comportamientos, que permiten a los individuos tomar decisiones dependiendo del evento que ocurra.

Estas dos maneras de generar el comportamiento fueron tomadas por considerar que son las mas adecuadas en los escenarios que se generaron. La generación de un script que nos permita generar los comportamientos en tiempo de ejecución, es una tarea que se tiene contemplada generar en un futuro.

Page 26: Multitudes con comportamientos modificados por el ambiente

27

2. 4 COLISIONES

El evitar colisiones de los personajes con objetos que se encuentren dentro de la escena, es fundamental en la creación de multitudes, ya que con esto se logra que un personaje se mueva a través de la escena de una forma autónoma haciendo la simulación mas realista.

En la parte de la colisión en el trabajo de Soraia Raupp Musse y Daniel Thalmann [ 14 ], se definieron dos maneras de evitarlos, la primera es definiendo todos los objetos dentro de la escena, es decir, que los personajes conocieran la ubicación de los objetos dentro de la escena y la segunda, declarando áreas donde los agentes puedan caminar, asignándoles una curva de Bezier, que sería la trayectoria que sigan durante un recorrido.

Fig. 11. Grupos evitando colisiones con objetos.

Fig. 12. Áreas no permitidas.

Page 27: Multitudes con comportamientos modificados por el ambiente

28

En la s1mulac1ón del mov1m1ento y las acciones a realizar, Soraia Raupp Musse y Daniel fhafmann (14 j utilizaron dos upos de obJetivos: Puntos de Interés (IP por su abreviatura en ;ngles) y Puntos de Acción (AP por su abreviatura en inglés).

Estos dos tipos de puntos definen las trayectonas que seguirán las multitudes. Cada uno Je ellos genera una curva de Bezier que es por la que los agentes transitaran. Las trayectorias de los agentes que pertenecen a un mismo grupo pueden ser similares pero nunca la misma, ya que a cada uno se le define una región.

e~

..... --' ,.._

------- ~~ '· - :----.......~ -' ~ ._ 1

..... ------.:::::._ -- .

= 2 -----====-..

---------------

Fig. I 3. Regiones para la creación de las Curvas.

Los AP permiten que los agentes tengan una reacción diferente en cada lP al que se acerquen.

La creación de trayectorias también juega un papel importante dentro de la creación de personaJes autónomos y para lograrlo podemos encontrar diferentes maneras de llevarlo a cabo.

El uso de diagramas de voronoi [8] es una manera de llevar a cabo esta tarea. en donde cada obstáculo es tratado como un sitio, es decir, genera una región de voronoi, esto provoca que las fronteras del voronoi sean trayectorias entre estos obstáculos. Esto puede ser aplicado tanto a obstáculos móviles como estáticos.

Page 28: Multitudes con comportamientos modificados por el ambiente

29

Fig. 14. Evitando obstáculos utilizando voronoi.

Debido a la complejidad computacional que representaba el crear diagramas de voronoi no era un método muy usado, y en caso de usarse, se hacia en ambientes donde existiera el menor numero de obstáculos con la finalidad de que el calculo para llevar a cabo los mapas de voronoi no fueran muy grandes. También presenta el inconveniente de que para crear el voronoi es necesario que las posiciones de los obstáculos deben de ser conocidos de antemano. Esto • significa que aun cuando el obstáculo sea móvil, es necesario conocer la posición del objeto para poder crear el diagrama correspondiente a los puntos que representan al obstáculo.

Un método también usado para el trazado de rutas es el propuesto por Craig Reynolds [16], el cual genera formas geométricas (cilindros) a través de los cuales los personajes habrán de moverse.

... .._.._,,..,_, ... ___ ~ ---··,i!

¡

, _....,,,. __ ,,, ___ .._ .• ,,_s-••·--,nc-,-----•-...___.._.,,, ____ , __ _..,~...,._,~,-- •·-·• ~~""' · -- • • •---,,., .. , .• _ ·-~· ,, _.....___. __ • . .,J

Fig. 15. Vehículos siguiendo una ruta determinada.

Page 29: Multitudes con comportamientos modificados por el ambiente

i

1

i 1

30

Esto permite a los personajes recorrer la figura, pero con la consiguiente perdida de autonom1a, ya que umcamente podrán moverse dentro de esta ruta preestablecida.

En la presente tesis, la colisión se evita de dos maneras posibles: dependiendo del tamaño de los obstáculos y a través de un mapa de gradientes, pero con la prioridad de que los personajes fueran lo mas autónomos posibles, ya que como hemos visto el establecer rutas o conocer el lugar donde se encuentran los obstáculos resta autonomía a los personajes.

La información que requiere para llevar a cabo el gradiente así como la modificación de los puntos de control, es proporcionada por el terreno, el cual al poder generarse de acuerdo a las necesidades del usuario, y los personajes no necesitan conocer de antemano las posiciones de los objetos lo cual les resta autonomía. y es por eso que se escogieron estos dos algoritmos para evitar la colisión de los personajes con su entorno.

En la siguiente tabla se hace un resumen de los diferentes algoritmos que se analizaron así como las ventajas y desventajas de cada uno de ellos.

3 R esumen d 1 d"fi I" . e as 1 eren tes tecmcas para evitar co 1s1ones.

Mapas de Figuras .Modificación de

caminos Voronoi

geométricas Gradiente los puntos de

control 1 Ventajas Determina las Genera Los caminos Permite detectar Evita los

áreas por las cammos son generados los obstáculos en obstáculos cuales un entre los a través de tiempo de modificando los

diferentes figuras . . .

puntos de control personaje ejecuc,on puede obstáculos, geométricas, tomando en de la curva por la cammar, y se pudiendo que limitan las cuenta las que se desplaza un evita la generarse áreas por elevaciones del personaje detección de aun cuando donde terreno.

' los los transitaran los ' obstáculos. obstáculos personajes, ;

sean evitando los móviles obstáculos.

Desventajas Resta Se Resta Se debe de Los personajes se

'

'

i

1

autonomía a necesitan Autonomía a calcular un mapa deben de desplazar i los personajes conocer los los personajes para cada sobre una curva y

1

puntos en personaje e ,r los obstáculos a donde se verificando el evitar deben de ser encuentran gradiente a cada tamaño pequeño. cada uno paso que !

delos efectúe. ¡

personajes. 1

Page 30: Multitudes con comportamientos modificados por el ambiente

31

2.5 NIVEL DE DETALLE

Uno de los principales problemas en la creación de multitudes es el consumo de recursos computacionales. Existen diversas técnicas para incrementar la velocidad la simulación de una escena. Dentro de estas técnicas podemos encontrar las siguientes: Oclusión ( culling), Nivel de Detalle (LOD, por sus siglas en ingles) y el uso de imágenes. Todas estas tienen en común la idea de reducir la complejidad de una escena pero sin perder las características visuales.

Los algoritmos de ocultamiento básicamente descartan objetos, o parte de estos, que no son visibles en la imagen final: Un objeto es presentado siempre y cuando se encuentre dentro del campo visual o si no se encuentra oculto por otro objeto.

Anteriormente este algoritmo requería una organiz.ación específica de la escena en general, la escena es dividida en unidades más pequeñas o celdas. Ahora con el uso del hardware es posible saber el campo visual que tiene el usuario, conociendo esto, podemos descartar los objetos que se encuentren fuera de este campo visual, por lo que en la escena final únicamente se dibujaran aquellos objetos que se encuentren dentro del campo de visión del observador.

El nivel de detalle tiene como finalidad reducir el número de polígonos que serán dibujados usando diversas representaciones del decrecimiento de un objeto, por cada frame, es seleccionado la resolución adecuada. Para el criterio de selección se utiliza la distancia al observador, en este caso el usuario.

1 :_.39f!2.~los

,/

• . , ¡' . . . .. .

.,.. ...• ... ~

'\ .

•;

Fig. 16. Nivel de detalle.

¡•

Page 31: Multitudes con comportamientos modificados por el ambiente

3:

Lna de las desventajas que se tiene al utilizar este tipo de algontmos es la generación :rntomatica de la resolución adecuada para el objeto, esto con la finalidad de que el objeto a representar, no parezca que ha perdido detalle y el resultado sea lo más parecido al original.

Otra técnica empleada para aumentar la velocidad en el dibujado de cada uno de los frames, es el uso de impostores, es decir, simples texturas-mapeadas en un polígono. Como las texturas no son generadas en tiempo real, se requiere que previamente se hayan creados, esto como se puede ver, consume una gran cantidad de memoria para poder almacenarlas.

Esta tipo de técnica se conoce como impostores animados, ya que a cada polígono se calcula una imagen, pero ¿que sucede cuando el personaje del cual se toma la imagen esta constantemente cambiando?. En este caso se utiliza la técnica con una variante, que aun cuando se basa en impostores toma en cuenta los cambios que los personajes sufren durante el desarrollo de la simulación.

La aplicación a humanos virtuales, ha dejado de utilizar impostores animados para extender el concepto a lo que se ha dado por llamar impostores dinámicos, es decir, tomando en cuenta la apariencia del personaje del que se tomará la imagen. Esta técnica es utilizada en el trabajo propuesto por Amaury Aubel, Ronan Boulic, Daniel Thalmann [ 1 1 la cual permite la generación de este tipo de impostores. La técnica de impostores dinámicos calcula en cada frame la siguiente imagen para crear el impostor, aunque la transición entre una imagen y otra puede llegar a tener perdidas, el cerebro llena los espacios y compone la imagen por lo que estas perdidas pasan desapercibidas, un ejemplo es lo que sucede con los dibujos animados, los cuales cambian de posición en un determinado tiempo dando la sensación de movimiento, y aun cuando la transición entre una imagen y otra existan perdidas el cerebro interpreta la imagen como una sola.

Los polígonos utilizados para mapear las texturas suelen ser cuadriláteros que utilizan la técnica de "billboard". El cuadrilátero es colocado con frente hacia el observador y la textura es actualizada dentro de un determinado tiempo.

La textura que es mapeada no es más que una copia del agente virtual. Bajo estas condiciones, si se una textura es tomada muchas veces, el cuadrilátero se reduce a dos triángulos

Page 32: Multitudes con comportamientos modificados por el ambiente

33

Fig. 17. Impostores.

Esta textura es actualiz.ada cada vez que el agente se mueve o bien cada vez que la cámara cambie de posición. Sin embargo, cada vez que esto ocurre, es necesario generar una nueva imagen del agente. Esto se hace a través de tres pasos.

1. Se envía la textura a un buffer y se toma la postura y lugar de la cámara.

2. Se actualiz.a la escena con la textura que se tiene en la memoria.

3. Todo esto con el consiguiente aumento de tiempo.

Como ya se menciono uno de los principales problemas de esta técnica es el gran consumo de memoria que utiliz.a, es por eso que dentro de la creación de impostores se utilizan técnicas que hacen que el consumo de memoria se reduzca.

Un ejemplo de este tipo de técnica es la empleada por el trabajo creado por Franco Tecchia, Celine Loscos, Yiorgos Chrysanthou [18], en el cual proponen diversos niveles de nivel de detalle, y la generación de impostores con la compresión de imágenes.

Ellos tratan de solucionar los principales problemas que presenta la técnica de impostores, como puede ser la perdida de datos entre la transición de los impostores entre cada frame, y los estallidos que se producen cuando una imagen es plasmada en el objeto para obtener la imagen final. Así como reducir el consumo de memoria y la complejidad geométrica de los objetos empleados para colocar la textura, en este caso el polígono utiliz.ado para la colocación de la textura es un plano.

Page 33: Multitudes con comportamientos modificados por el ambiente

34

El principal problema que trataron de resolver es el estallido que se produce entre las diferentes muestras cuando el punto de vista cambia. Al cambiar el punto de vista, la proyección que se hace de cada punto del impostor no se realiza al mismo tiempo, dando una replica inexacta del objeto original. Desafortunadamente, el algoritmo que utiliza para la creación de multitudes no logra corregirlo del todo. Otra solución a este problema seria el incrementar el número de muestras, pero esto haría que la simulación se hiciera más lenta y el consumo de memoria se incremente.

Es por eso que se utiliza un algoritmo que permite que una imagen pueda ser comprimida y de esta manera reducir el consumo de memoria .

. ·-,. ·'. ·.r·

;· ~.:.

. ·,. -·· ,· , il

Fig. 18. Creación de impostores utilizando compresión de texturas.

Point Based Rendering es una técnica alternativa a la representación tradicional basada en triángulos y es muy empleada en la simulación de modelos muy complejos, que de otra manera requeriría un gran numero de triángulos para poder representarla. Esta técnica permite representar un objeto como un conjunto o nube de puntos, donde cada uno de ellos cuenta con una normal a su superficie que permita simular al objeto de manera realista.

Page 34: Multitudes con comportamientos modificados por el ambiente

35

M. Wand and W. StraBer [21] hacen uso de esta técnica a través de una aplicación de multiresoluciones jerárquicas de puntos, lo que les permite crear escenas complejas capaces de representar miles de objetos con un rango de FPS aceptable.

El algoritmo trabaja en una interpolación lineal de mallas de triángulos de topología arbitraria, es decir, basado (como ya se mencionó) en una jerarquía de triángulos y puntos previamente calculada, por lo que el tiempo de generación de la imagen es independiente de la complejidad de las mallas de triángulos. Esto les permitió animar grandes multitudes en movimiento.

Un ejemplo de lo logrado por este algoritmo lo podemos observar en la siguiente imagen [21 ].

Fig. 19. Point Based Rendering.

Para agiliz.ar aun mas la escena utiliz.ando point based, Michael Wand Matthias Fischert lngmar Meter, Friedhelm Meyer auf der Heide y Wolfgang StraBer, hacen uso del Z-Buffer, lo que les permite actualiz.ar la escena de forma dinámica e interactiva.

En la figura No. 20 podemos observar el uso del Z-Buffer y de point based, en la que podemos apreciar la complejidad de la escena en la que los objetos de la escena son actualiz.ados sin sufrir distorsiones.

Page 35: Multitudes con comportamientos modificados por el ambiente

36

Fig. 20. Point Based Rendering y Z-Buffer.

En la siguiente tabla vemos un resumen de los diferentes algoritmos analizados para incrementar la velocidad de una simulación.

4 R esumen d l dºf; 'd d d e os 1 erentes atgontmos para incrementar a ve oc1 a l . ' e una s1mu ac1on. Culling hnpostores Point - Based Nivel de detalle

Oculta la parte de la Utiliza imágenes Genera puntos que Genera diferentes escena que el previamente creadas representa a objetos cantidades de observador no alcanza para la simulación de complejos. triángulos para la a ver. personaJes representación de un

objeto, dependiendo de la distancia del observador.

En la presente tesis, la manera en que se resolvió este problema fue utilizando al representación de los personajes basados en puntos (point - based), el cual permite que los personajes sean objetos geométricos, pero que a medida que la distancia crece entre un personaje y el observador cambie la estructura del personaje y se vuelva mas ligero para la simulación, en este caso a mayor distancia el personaje tiende a volverse un conjunto de puntos. Esto permite generar un gran numero de personajes sin tener los problemas que se originan al utilizar uno que necesite una gran cantidad de memoria o bien el tener que calcular el numero adecuado de polígonos para la representación de un personaje.

Page 36: Multitudes con comportamientos modificados por el ambiente

37

2.6 AMBIENTE (ESCENARIOS)

La real academia española define al ambiente como "Condiciones o circunstancias fisicas. sociales. econom1cas. etc .. de un lugar, de una reunión, de una colectividad o de una época·· o bien .. lo que rodea a un cuerpo" (4].

También se puede definir de la siguiente manera "'Entorno en el cual opera una persona e incluye el aire. el agua, el suelo, los recursos naturales, la flora, la fauna, los seres humanos y sus 1 nterrelaciones".

Simplificando, podemos decir que el ambiente "es el entorno en que se desenvuelve un individuo"'.

Desde el punto de vista social, el ambiente juega un papel importante en la creación del comportamiento humano. ya que éste depende del entorno en donde se desenvuelve un individuo. Pero el ambiente no únicamente influye en lo social, también es generador de reacciones debido a los diferentes estímulos que provee y que influyen directamente en las personas, un ejemplo claro es la lluvia, que siendo un factor externo y perteneciente al ambiente, genera diferentes reacciones en las personas, donde la mayoría de ellas buscaran un lugar en donde protegerse y para otras, será totalmente indiferente y continuarán con lo que se encuentren haciendo. Cuando un estímulo proveniente del ambiente es muy grande, como es el caso de un desastre, el comportamiento humano puede ser mas predecible o estudiado.

2.6.1 REPRESENTACIÓN DE DESASTRES:

Los eventos que ocurren alrededor de un personaje y que pueden provocarle una reacción pueden ser de diversas índoles, pero en forma general podemos clasificarlos de acuerdo a su naturaleza en dos tipos: naturales y los provocados por el hombre. A su vez, cada uno de ellos puede tener otra clasificación de acuerdo a la magnitud del evento, siendo las de grandes magnitudes las que representa un desastre, dentro de los desastres naturales podemos encontrar inundaciones, terremotos, erupciones volcánicas, etc. Dentro de los provocados por el hombre podemos mencionar explosiones, ataques, etc.

La simulación de desastres es una aplicación muy interesante dentro de las graficas computacionales, esto debido a la gran cantidad de características que pueden ser simuladas y que permiten poner en prácticas diferentes algontmos tendientes a resolver los problemas en la simulación, como el caso de las rutas de evacuación del área de desastre, los comportamientos que adoptan los personajes, evitar obstáculos. etc.

Page 37: Multitudes con comportamientos modificados por el ambiente

38

El trabajo desarrollado por Murakami, Kazuhisa Minami, Tomoyuki Kawasoe y Toru Ishida [12], considera que la simulación tradicional de una multitud durante una evacuación, únicamente considera el análisis de los personajes en forma individual sin considerar la interacción social que existe al formar parte de un grupo. Sin embargo la interacción social es común y ejerce una fuerte influencia en las respuestas o acciones que tendrá un personaje durante una evacuación real. Si durante la evacuación una persona escucha que alguien llora, tratara de evitar esa área o bien ira ayudarla. Por otro lado, si existiera un guía durante la evacuación esta se llevaría a cabo de manera más rápida.

Basado en lo anterior el sistema propuesto por estos investigadores es un sistema en el cual cada comportamiento de un personaje se encuentra compuesto de diferentes respuestas. Cada agente genera su propio escenario, el cual determina la respuesta del agente a su ambiente. La creación de un líder también es parte fundamental de este trabajo, ya que está demostrado que el seguir a un líder durante una evacuación hace que ésta sea mas eficiente .

..... -.-.....

Fig. 21. Agentes siguiendo al líder.

,. • •

Soraia Raupp Musse y Daniel Thalmann (14] logran simular la evacuación de un edificio, pero como se ha visto, las reacciones que adoptan los personajes pueden ser programadas en un lenguaje script o bien proporcionada por un controlador externo (comportamientos guiados).

Las rutas que los personajes seguirán durante el evento son proporcionadas a través de puntos de interés, que permiten a los personajes generar una ruta de escape, así como evitar la colisión con los objetos que encuentren a su paso.

Page 38: Multitudes con comportamientos modificados por el ambiente

39

Fig. 22. Simulación de una evacuación.

En el presente trabajo se simula la erupción de un volcán, que aunque no es el propósito principal de este trabajo se utiliza para la representación de los diferentes comportamientos que podrían adoptar los personajes.

Dentro de los comportamientos que se simulan en el presente trabajo está precisamente el seguir a un líder, y será éste el que tome algunas decisiones, como puede ser el seguir una determinada trayectoria, y el comportamiento que adoptaran los personajes dependiendo de las características de cada uno de ellos.

Page 39: Multitudes con comportamientos modificados por el ambiente

En la figura No. 23 podemos apreciar la simulación de la erupción del volcán .

¡l\Buld/,.o.•.,). Fidiafilcl). F"u,dOllrtln2 X lte::al:. /

Rei!Cy

I•

• J __!] • t)J.main-HD'OSl:#t .... :~~~l"l.__:J •·c:\ustllPs_llErt\.)( MAPA!§

Fig. 23. Erupción.

¡;; Tí-:r.;.·n ; k1..";~·1

. -ll;U<_

Dec11ions

Dostance~_;J

G,aaient~_;j

Attl\le

i;;;- Cull

Ouit

Ln303. Col37

GWI F1ª4cl ltc:!()a-m .

40

Page 40: Multitudes con comportamientos modificados por el ambiente

-l l

3. DESARROLLO.

3.1 COMPORTAMIENTO.

En la presente tesis, la generación de comportamientos se lleva a cabo tomando reglas sencillas para simular cada uno de ellos, estas reglas se derivan de tomar en cuenta el tipo de comportamiento que se desea que cada uno de los personajes adopte. Las características que se tomaron en cuenta para lograr el comportamiento son las siguientes:

3.1.1 TIPO DE PERSONAJE:

El tipo de personaje indica si lo que será simulado, es un personaje humano o un animal. Los valores que pueden adoptar son declarados previamente y asignados de acuerdo a la escena que le corresponda, así en la escena de un desastre natural o una explosión los personajes creados serán hu manos.

3.1.2 PERSONALIDAD O ENTRENAMIENTO:

Es el Conjunto de características o cualidades originales que destacan en algunas personas. El simular la personalidad de un individuo es una tarea bastante complicada de llevar a cabo y es por eso que se decidió que cada uno de los personajes pudiese adoptar una personalidad ya establecida de antemano.

Esta característica trata de simular el carácter que tendrá cada personaje, en este caso los posibles valores son: ciudadano y atacante en el caso de la personalidad y el entrenamiento podrá adoptar el valor correspondiente a un personaje de seguridad. Aun cuando la personalidad es propia del ser humano, los animales pueden adoptar diferentes personalidades dependiendo de la especie a la que pertenezca, y es por ello que los valores para representar la personalidad de los animales son: mamíferos, insectos y pájaros.

Page 41: Multitudes con comportamientos modificados por el ambiente

-C

El que un personaJe adopte una personalidad preestablecida indica que el valor de la \ anabfe que representa esta característica se manuene constante como se muestra a continuacion.

=define SECURITY "P" ::define CITIZEN "Q" =define ATACANTE "R"

Cabe aclarar que estos valores pueden ser numéricos en los que el incremento en cada uno de ellos podría representar una personalidad diferente, pero para poder representarlo visualmente se necesitaría que los personajes fueran creados con esa finalidad, fin que no persigue esta tesis.

3.1.J. COMPORTAMIENTO BASE:

El comportamiento base también ha sido llamado comportamientos elementales [14] y son los comportamientos que los personajes adquieren inicialmente y son la representación de los comportamientos mas simples que un personaje puede adoptar. Para definir este tipo de comportamiento tomamos en cuenta la definición que nos proporciona la psicobiologia, por lo que los comportamientos base creados en el presente trabajo son caminar, descansar y en el caso de algunos animales el poder volar.

3.1.4. TIPO DE GRUPOS:

Esta variable fue creada con la finalidad de representar la cohesión existente entre los personajes dentro del grupo en el que se encuentren. Esta condición puede definirse de dos maneras: a nivel grupal e individual. Cuando se asigna a un grupo indica si dentro de el existe o no un líder, en el caso de existir, será éste el encargado de guiar al grupo a través del escenario En forma individual, indica si los personajes se encuentran agrupados o separados del grupo (dispersos), esto podría parecer contradictorio, pero un personaje aun cuando se encuentre dentro de un grupo puede estar aislado pero moviéndose con el grupo.

3.1.5. COMPORTAMIENTO FINAL:

El comportamiento final que adoptará un individuo será la suma de los atributos anteriormente mencionados, así, tendremos multitudes con lideres o sin lideres, donde la mayoría de sus integrantes se encuentren descansando o bien en movimiento, pero en donde algunos de sus integrantes se encuentren dispersos y con personalidades de atacantes o entrenamientos que permitan perseguir a un atacante, etc.

3.1.6. ESTIMULOS:

Como se ha visto, los estímulos provenientes del ambiente en el que se desenvuelven los personajes son importantes en la generación del comportamiento sobre todo en las reacciones o acciones que llevaran a cabo sobre todo cuando el evento producido en el ambiente es de gran magnitud. En el presente trabajo los estímulos provenientes del entorno se logran en base; a la erupción de un volcán, una explosión y en el caso de los animales, la búsqueda del alimento.

Page 42: Multitudes con comportamientos modificados por el ambiente

El color del mapa de componam1ento varia dependiendo de la escena que se este representado. roJo en la escena I y 2, verde y roJo en la escena 4.

El cambio de comportamiento que experimentaran los personajes al interactuar con el mapa. sucede en el momento mismo en el que ocurre el evento. Para lograrlo se verifica s1 la posición en la que se encuentra cada uno de los personajes se localiza dentro del área relevante del mapa de comportamiento, si esto se cumple el comportamiento que el personaje adquirirá, dependerá del tipo de evento que haya ocurrido.

La propuesta para la creación del comportamiento en la presente tesis es representada en el siguiente esquema, en donde cada bloque representa una regla o atributo que los persona_1es podrán adoptar, los cuales son el resumen de la creación del comportamiento anteriormente explicado.

PERSONALIDAD O ENTRENAMIENTO

TIPO DE PERSONAJE

TIPO DE GRUPOS

COMPORTAMIENTO BASE

COMPORTAMIENTO

ESTIMULOS

DECISION O ACCION

Fig. 25. Estructura propuesta del comportamiento.

Page 43: Multitudes con comportamientos modificados por el ambiente

43

3.1.7. DECISIÓNES O ACCIONES:

Las decisiones o acciones que tomen los personajes dependerán de las características o atributos que hayan adquirido inicialmente los personajes.

Cada una de las características anteriormente descritas son variables que pueden adoptar diferentes valores dando como resultado una gran variedad de comportamientos finales, pero en la presente tesis los comportamientos fueron definidos de acuerdo a las escenas que serían representadas por lo que el valor de estas variables quedaron fijas. Las decisiones o acciones son determinados por el ambiente a través de mapas de comportamientos.

3.1.8 MAPAS DE COMPORTAMIENTOS.

En los trabajos relacionados vimos los mapas de comportamientos y los usos que se les han dado. En el presente trabajo, los mapas de comportamiento se generan de dos maneras: de manera aleatoria y en lugares específicos, cualquiera de las dos formas se ejecuta en tiempo de ejecución, con lo que evitamos que los personajes conozcan de antemano el entorno que los rodea y que el personaje se vea limitado en su autonomía. En el caso de la generación aleatoria tenemos la escena 1 (explosión), la cual ocurre en un punto indeterminado de la escena, en el segundo caso la encontramos en la erupción del volcán, ya que el mapa se genera en un punto determinado (centro del volcán).

El escenario al ser un mapa, también proporciona estímulos que modifican el comportamiento de un personaje, sobre todo en lo referente al desplazamiento de los personajes. Esto se ve reflejado en los movimientos del personaje al momento de ocurrir una colisión, en primer lugar el personaje quedara parado en el sitio donde ocurrió el evento, y en segundo buscará un punto que le permita continuar con su camino. El punto se calcula de manera aleatoria.

Ya sea aleatorio o determinado, el punto central para generar el mapa de comportamiento es el punto donde ocurre el evento, esto se logra creando un cuadro alrededor del punto. El área de influencia del mapa de comportamiento será del tamaño del cuadro creado.

Área de influencia

Punto • central

Fig. 24. Creación del mapa de comportamiento.

Page 44: Multitudes con comportamientos modificados por el ambiente

En la presente tests, la obtención de las caractenst1cas que se tomaron en cuenta para representar un componam1ento, se hizo en base a la definición que proporc10na la ps1cob1olog1a xerca del componam1ento. así como algunas características comunes de los grupos de personas.

El componam1ento inicial de un personaje puede asignarse de dos maneras: en forma Grupal y10 Individual. Cada una de éstas cargan similares parámetros en los personajes, pero con las diferencias que el usuario desee.

3.t.9 GRUPALES:

1. Tipo de personajes: Humanos y Animales.

, Tipo de grupos: Que dentro del grupo exista un líder o no, la diferencia radica en que al existir un líder, será el que trace la ruta a seguir.

3. Comportamientos base: Descansar, caminar y en el caso de los pájaros volar.

-l Personalidad o entrenamiento: Seguridad, atacante, civiles, y en el caso de los animales, honnigas, herbívoros y pájaros.

5. Decisiones o acciones: Huir, atacar, morir, o quedarse quieto, y en el caso de los animales, comer ya sea llevándose la comida a su guarida (como es el caso de las honnigas) o bien comer en el lugar donde encontraron la comida.

3.1.10 INDIVIDUALES:

A cada individuo podrá cargársele las mismas condiciones que al resto del grupo, o bien, hacerlo de fonna independiente, en este caso el atributo mas imponante será el tipo de grupo que el personaje tendrá que puede ser: Dentro del mismo o Aislado.

El atributo tipo de grupo es independiente del tipo de personajes, ya que tanto las multitudes animales como los humanos pueden tener o no un líder que los guíe.

3.2 RUTAS DE DESPLAZAMIENTO.

Las rutas de desplazamiento son los caminos por donde los individuos o grupos transitarán. Cada individuo se desplaza a través de una ruta en específico, teniendo un punto de panida y uno de llegada.

Page 45: Multitudes con comportamientos modificados por el ambiente

-1-6

Lis rutas se generaron empleando curvas de Bezier [ 14], a cada individuo se le genera una curva independiente, esto con la finalidad de que el desplazamiento no sea tan rectthneo y se .ipegue mas a una trayectona que seguiría un grupo en la realidad.

Las pos1c10nes in1c1ales se generan de forma aleatona, cuidando que estos caigan en lugares permttidos y tomando en cuenta la situación de cada personaje. una vez obtenido el punto inicial. se generan puntos aleatorios que serán los nuevos destinos del personaje, tomando en cuenta la condición del mismo, esto es porque un individuo aun cuando pertenezca aun grupo puede tener una condición diferente. Al igual que la generación de los puntos iniciales, los puntos finales se crean en lugares en los lugares que puedan tener acceso, esto no significa que eviten los obstáculos, sino más bien que no caigan en puntos inaccesibles, como puede ser arriba de edificios. deba.10 montañas. etc.

El punto inicial de la ruta de desplazamiento es el punto en donde se encuentra un persona_1e, y el punto final será el punto a donde este se moverá. Los puntos iniciales y finales de cada miembro se calculan en forma aleatoria alrededor de un punto base, generalmente este punto es el de un líder, pero en caso de no existir se toma un punto aleatorio y de esta manera lograr la cohesión del grupo

La dirección de los individuos se logra tomando la posición actual de cada individuo y el punto siguiente, En objetos 2D la dirección se logra de forma adecuada, pero en los objetos 3 D la dirección es un punto a corregir, ya que no se desplazan de manera adecuada.

Page 46: Multitudes con comportamientos modificados por el ambiente

47

En la figura No. 26 podemos apreciar las curvas de desplazamientos de un grupo de personaJes.

Fig. 26. Curvas de Bezier.

La creación de las rutas toman en cuenta el mapa de altura del cual se genero el escenario, cada punto calculado se hace en base a esta mapa de alturas, con lo que se evita que los personajes salgan de nuestro escenario. De manera general el cálculo de rutas de desplazamiento cumplen las siguientes condiciones:

1. Los puntos iniciales y finales deben caer dentro del mapa de alturas, de no ser así, se calculan nuevamente.

2. Para el cálculo de las trayectorias de las aves, los puntos finales e iniciales se calculan en base a los puntos más altos del mapa de alturas.

3. Los puntos inicial y final deben de caer en lugares permitidos, con esto se evita que un personaje aparezca sobre un edificio.

Cada uno de los caminos es generado por la información proporcionada por el terreno en la que circularan las multitudes, así, la planeación de caminos dependerá del tamaño del

Page 47: Multitudes con comportamientos modificados por el ambiente

-+8

escenano. de los ob_retos que se encuentren dentro de la escena, de los esumulos que provea su entorno '! de la personalidad de cada personaJe.

3.2.1 COLISIONES

Para lograr que los personajes interactuaran con los obJetos que se encuentran dentro del escenario evitando que chocaran o colisionaran con ellos, se utilizaron dos algoritmos que permitieran a los personajes transitar dentro del escenario sin ningún problema y sin que la autonomía se viera limitada.

3.2.1.1.- Generación de un mapa de gradientes: de esta manera los personaJes ··conocen" los lugares a donde pueden tener acceso. Este mapa es utilizado con obstáculos grandes y se genera a partir de la información que proporciona el escenario a través del mapa de alturas.

Cada personaje tiene una posición que es determinada por un punto, pero la representación del mismo es a través de un modelo en 30, lo que provoca que aún cuando la colisión se evita tomando el gradiente, en la simulación se ve que el personaje colisiona contra los obstáculos, por lo que hubo necesidad de crear un cuadro alrededor de la posición del personaje y determinar el gradiente en base a éste.

El cálculo de gradientes es muy útil para conocer las posibles rutas que puede transitar un personaje, y con ello evitar la colisión con los diferentes objetos que presenten valores de cambio máximo muy altos, como puede ser un edificio.

El gradiente nos permite conocer el valor de la pendiente en un punto dado y de esta manera podemos proporcionar un valor de cambio por la que podrá caminar un personaje, si el valor de cambio entre dos puntos es muy alto el personaje deberá buscar un nuevo camino y con esto evitamos la colisión con el objeto.

El gradiente máximo a la que podrá acceder un individuo es proporcionado por el usuario ya sea a través del archivo o de la interfaz. Si el usuario proporciona un valor muy alto, los personajes podrán acceder a puntos en donde el gradiente sea igual o menor a este.

El mapa de gradientes se calcula a través del mapa de altura que nos proporciona el escenario, y como hemos visto, el escenario a utilizar puede ser cualquiera que el usuario haya generado, permitiendo con esto, que la simulación sea mas interactiva.

Page 48: Multitudes con comportamientos modificados por el ambiente

49

El gradiente se calcula conociendo la altura de dos puntos, con lo que podemos ..:alcufar el valor de cambio que existe entre estos dos puntos at restar sus ..:orrespondientes alturas. En el caso de los personaJes, conocemos el punto actual en donde se encuentra cada uno ellos y el punto siguiente a donde se moverá, restamos la altura de los dos, si el valor obtenido es mayor al gradiente máximo proporcionado. el md1v1duo no podrá moverse hacia el punto futuro y buscará otra ruta a seguir. Esto se hace a cada paso que los personajes hacen.

Pero, ¿qué pasaría si el gradiente fuera negativo?, es decir, si el valor calculado es mayor al valor dado por el usuario, pero de forma negativa, el personaje buscara otro camino por donde pasar y con esto evitamos que un personaje caiga de un punto alto a un punto mas bajo a través de una pendiente muy pronunciada.

3.2.1.2.- Modificación de los puntos de control de las curvas de Bezier. Al hacer esto se modifica la trayectoria de las curvas evitando el obstáculo, pero sin perder los puntos a donde se dirigen los personajes. Esto es utilizado cuando los obstáculos son pequeños porque de otra manera la curva generada puede deformarse demasiado y alterar la trayectoria del personaje.

Como sabemos, las curvas de Bezier están formadas por cuatro puntos, dos de ellos son el punto inicial y final de la curva y los otros dos son los puntos de control que modifican la forma de la curva.

Teniendo esto en mente, si un personaje se encuentra con un objeto en el cual el gradiente sea muy grande y el objeto pequeño, se modifican los puntos de control de la curva que sigue el personaje a una nueva posición que permita evitar la colisión. Esto únicamente se aplica a obstáculos pequeños porque una de las finalidades de cambiar los puntos de control es que tanto el punto inicial y final de la curva permanezcan inalterables. Esto proporciona mayor realismo a la simulación, al dar la impresión que el personaje rodea el obstáculo.

Tanto el cálculo de gradientes como la modificación de los puntos de control permiten que sean los propios personajes los que tomen la "decisión" de la nueva ruta a seguir, logrando que los personajes tengan una mayor autonomía dentro del escenario.

Cuando un personaje colisiona se llevan a cabo determinados pasos para calcular una nueva ruta, primeramente el personaje se quedara parado cerca del punto donde ocurrió la colisión, cuando un personaje pertenece a un grupo se quedara en esa posición hasta que el grupo al que pertenezca busque un nuevo destino. Si el personaje se encuentra aislado, la búsqueda la hará de forma aleatoria, esto debido a que los personajes no cuentan con memoria para recordar los lugares por los cuales pueden transitar. Si se encuentra dentro de un grupo, la búsqueda del nuevo destino se hace a través del grupo en general, siguiendo al líder (si es que el grupo cuenta con uno) o tomando un punto al azar.

Page 49: Multitudes con comportamientos modificados por el ambiente

50

En la siguiente imagen se puede observar como un grupo de personajes evita la colisión con objetos del terreno. Las líneas de color amarillo representan las rutas por las que se desplazan los personajes, y los picos de color claro representan los obstáculos que son evitados.

:~

-~·Q:9~;1

Pig. 6 Sec. 1 i,/S ~ 2.4 c,n L n. 1 Cd. 2 Es:,,ñd (Es Ql

c,w.'U'S

Ac~_ Condition r E:-:plo!ion

Declbom J Dlstance:~iZO~O--iJ

J Gradlent 125 i.l Acli)l8 r., ¡;; Cull

Qui!

-· ·· 1 ·· ..

-~~J {-.::1d]: ,ii'J oo ..... --... _;!l!)nnct.-m1-i. ... !•-c,v.-..-ofnl.J~---.-Qill----J t:l~.L' 1z:52.,.

Fig. 27 .. Evitando obstáculos.

Para evitar que dos grupos colisionen, a cada paso que realizan, se calcula la distancia a la que se encuentra cada uno de ellos. Si la distancia calculada es menor a una distancia dada, uno de los grupos se parara y avanzara pasado un tiempo.

Aun cuando la colisión es evitada, integrantes de un grupo pueden dejar de pertenecer a su grupo y pasar a formar parte del grupo con el que se evito la colisión. Con ello se simula el intercambio de individuos entre diferentes grupos, dando como resultado que la simulación se aun mas real. Esto únicamente se puede lograr con personajes humanos porque los animales al ser de diferentes tipos no pueden llegar a mezclarse.

Page 50: Multitudes con comportamientos modificados por el ambiente

~ 1

3.J '11\'EL DE DETALLE.

Para darle solución al problema de crear una simulación con la cantidad suficiente de personaJes y que al mismo tiempo la velocidad de simulación sea adecuada para la representación de la escena y que logre economiz.ar el consumo de recursos computacionales, en este trabajo se tomaron dos caminos que permitiera cumplir con estas condiciones.

3J.l el algoritmo basado en puntos (POINT-BASED).

3J.2 Odusión (CULLING)

J.J. l. Basado en puntos (POINT-BASED)

El uso de este algoritmo tiene muchas ventajas respecto a otros, ya que aprovecha la distancia entre los personajes para poder representarlos con el menor número de puntos (de ahí el nombre del algoritmo) haciendo que la carga para la simulación sea menor. El número de puntos con que se representa a un personaje varia inversamente proporcional a la distancia a la que se encuentre el personaje del observador, por lo que a mayor distancia la representación del personaje será únicamente a través de puntos. Otra de las características de este algoritmo es que permite que la transición de un frame a otro sea de una forma suave evitando los estallidos que se producen cuando los frames cambian. El mayor provecho que se obtiene de este tipo de algoritmo es cuando en la escena existe un número considerable de objetos a simular, de lo contrario tiende a ser contraproducente.

Este algoritmo también provee una buena representación de la geometría de cualquier punto de vista, esto si lo comparamos con otras técnicas empleadas, donde el modelo aparece con algunas variaciones cuando el punto de vista cambia, como es el caso del uso de impostores.

La implementación de este algoritmo en nuestra aplicación se logró a través de una estructura jerárquica (octrees). Los vértices en el modelo son usados como los puntos que serán rendereados en el modelo, estos puntos son sumados uno por uno a la estructura, incrementando la resolución de los modelos tanto como sea necesario.

Todos los puntos obtenidos son marcados y almacenados en una lista. Esta lista será usada para seleccionar los puntos para simular el modelo. El número de puntos que serán rendereados son obtenidos de acuerdo a la distancia para cada personaje.

Page 51: Multitudes con comportamientos modificados por el ambiente

52

En la figura No. 28 podemos observar como a medida que la distancia entre el usuario y los personajes crece, los personajes son representados con puntos.

Fig. 28. Point-Based Rendering.

3.3.2 OCLUSIÓN (CULLING).

Como su nombre lo indica, esta técnica permite ocultar un objeto, en el caso de las graficas determina que objetos de la escena no son visibles. Existen muchos algoritmos que permiten conocer que objetos no son visibles en una escena, backface culling, view volume, oclusión, etc.

En la presente tesis se utilizó la técnica de view volume, que permite "encerrar'' la escena vista por el usuario dentro de una figura geométrica, en este caso se utilizo un cubo que envuelve a la parte de la escena que es vista por el observador (view volume), este cubo se obtiene del viewport de opengl por lo que su creación no representó mayor problema. Al obtener los seis planos que conforman al viewport, se hace un análisis punto por punto para analizar cuales de estos se encontraban dentro de los seis planos, si el personaje se encuentra dentro de este cubo se dibujará en caso contrario se deshecha y no se dibuja.

Page 52: Multitudes con comportamientos modificados por el ambiente

53

El tamaño del cubo puede variar según lo decida el usuario, permitiendo que la parte de la escena observada sea mayor o menor.

En la figura No. 29 vemos un ejemplo de como se lleva a cabo este algoritmo.

Fig. 29. Culling.

~ LI

La ventaja de este tipo de algoritmo consiste en que únicamente se dibujará o creará la porción de la escena que se encuentra en el campo de visión del observador, es decir, lo que alcanz.a a ver el observador, el resto de la escena que no es vista no es creada, permitiendo que la velocidad de la simulación aumente en forma considerable.

Page 53: Multitudes con comportamientos modificados por el ambiente

54

Fig. 30. Culling y Point Based Rendering.

3.4 ESCENAS Y ESCENARIOS (AMBIENTE).

3.4.1 ESCENAS

Una escena son las acciones a realiz.ar por una multitud y el escenario es el lugar en donde ésta se desarrollará. La escena es la que nos dice las acciones que tendrán las multitudes dentro de ella, pero también es la que nos dice las reacciones que tomaran los personajes dentro de la misma.

Una escena se encuentra ligada a un escenario en particular, por lo que dependiendo del escenario serán las capas de una escena que se carguen.

En el presente trabajo se desarrollaron cuatro posibles escenas; tres humanas y una para los animales:

Page 54: Multitudes con comportamientos modificados por el ambiente

,

La pnmera escena simula la ex1stenc1a de un atacante, el cual produce una explos1on .1tectando a los personaJes que se encuentren cerca de la misma.

La segunda escena simula un desastre, en la cual los personajes deberán alejarse del lugar del siniestro.

3. Y una tercera escena en donde se puede apreciar cómo los individuos evitan los obstáculos.

-t Para la escena de los animales, se generaron tres tipos de comportamientos, el primero es para un grupo de hormigas, el segundo una manada de herbívoros, y el tercero es un grupo de páJaros.

Para cada una de las escenas fue creado un personaje en específico, aunque el comportamiento de cada uno de ellos puede variar dependiendo del usuario.

3A.2 ESCENARIOS

El escenario es el lugar en donde se desarrolla una escena, en otras palabras. el escenario es el ambiente en el que se desenvuelven los personajes.

En la creación de los escenarios se utilizaron mapas de alturas, lo cual presenta la ventaja en la creación de estos, ya que permite generar un sinnúmero de escenarios que pueden ser cargados en nuestra aplicación de una manera rápida y sencilla.

En un mapa de alturas se toman las diferentes tonalidades de grises que existen en cada pixel que componen a una imagen, y de esta manera generar una altura proporcional a la intensidad del píxel.

Como ya se ha mencionado, cada uno de los escenarios fue creado para una escena en especifico, esto se debe a que las escenas están diseñadas para representar un ambiente en especial, por ejemplo, en la escena de la erupción de un volcán, el escenario que la representa debe ser un ambiente en el que exista un volcán, de lo contrario la escena no podrá llevarse a cabo o bien puede ocurrir que la erupción se lleve a cabo en un lugar donde no existe volcán alguno. La primera escena es la única que permite cargar diferentes escenarios, ya que no se encuentra ligada a ninguno de ellos. En la generación de los mapas de alturas se utilizo el programa Adobe Photoshop, ya que nos permite generar diferentes tonalidades de grises.

Page 55: Multitudes con comportamientos modificados por el ambiente

56

En la figura No. 31 podemos apreciar el mapa de alturas utilizado para simular la erupción de un volcán. Cada imagen con una resolución de 1024 x 1024.

~CJl X,¡ . ··-¡ i

IF~=::;::;::==:----i1 ·1· ·- , ....... ~ ~,, . • -1

... ' ~. "

.•._J •.

"' ¡

t. T.! :; • _J.

- .. -· .

i 1

Fig. 31. Mapa de alturas utilizado para la simulación de una erupción volcánica.

Otra gran ventaja que nos presenta el uso de mapas de alturas es el hecho de conocer las alturas de cada píxel, esto nos permite conocer las pendientes que existen en cada uno de los puntos, y de esta manera calcular el gradiente entre un punto y otro.

3.5 ASIGNACION DE CARACTERISTICAS.

La asignación de las características o atributos a cada grupo o individuo se puede hacer de dos formas:

3.5.1. A través de un archivo

3.5.2. A través de la inteñaz de usuario

La diferencia entre ambos es que a través del archivo la asignación de las características se hace de una manera más detallada y personalizada, mientras que a través de la interfaz, la

Page 56: Multitudes con comportamientos modificados por el ambiente

:is1gnac1on de las características se hace de manera aleatona, y únicamente se asignan parametros lenerales de la escena.

3.5.1 A TRAVÉS DE UN ARCHIVO:

El comportam1ento de cada multitud se puede dar a través de un archivo de texto (en este caso se uuhza un archivo ".tx.C) llamado ··scene"', el cual nos permite programar cuantos grupos y clones tendremos, así como las características de cada uno de ellos.

El archivo se encuentra dividido en dos grupos principales: el comportamiento grupal y el comportam1ento individual. A su vez, cada uno de estos grupos esta dividido en párrafos para la asignación de cada una de los atributos.

Este archivo se encuentra es creado de la siguiente manera:

La escena que se desarrollará,

., El escenario en donde se desarrollara la escena.

3 El número de grupos (o multitudes).

-l El número de subgrupos, son las divisiones de los grupos que nos permite asignar de una manera rápida las características a los personajes que pertenecen a un grupo en especial, ya que cuando se intenta simular un gran numero de personajes, resulta tedioso el tener que asignar atributos a cada uno de los individuos.

5 El tipo de personaje, que permite asignar las personalidades de cada subgrupo (ej. en caso de ocurrir un desastre serán de seguridad y civiles).

6 El comportamiento, que nos dirá como se desenvolverán los subgrupos dentro de su entorno (ej, caminando, descansando, etc).

7 Las condiciones, esto nos permite asignar a cada subgrupo si estará dentro de un grupo en especial o se encontrará aislado.

8 Número de clones, es el número de personajes que integrarán a un grupo, y para los cuales las características serán cargadas de forma detallada.

9 Numero de subclones. Los subclones son los personajes que integraran un subgrupo, motivo por el cual tendrán características iguales.

1 O El tipo de personajes, condiciones, y comportamientos también serán asignados específicamente a cada individuo.

Page 57: Multitudes con comportamientos modificados por el ambiente

58

El archivo tamb1en contiene los nombres para cada uno de los grupos. asi como el tamaño del área de mtluenc1a de los mapas de componam1ento y la pendiente máxima por la que pudran transitar los md1v1duos.

El uso del tennino clon, se refiere a que algunos de los personajes tendrán las mismas características entre si. ya que como se menciono, el asignar diferentes atributos a cada uno de los personaJes seria una tarea tediosa.

La asignación de todas las características también se puede hacer de manera aleatoria. esto se logra asignando a las características el tennino "DEF AUL T".

Page 58: Multitudes con comportamientos modificados por el ambiente

File Eci: Format 1/iew Help

[SCENE] PRUEBA

[PLACE] PRUEBA

[NUM_GROUPS] 10

[NUM_SUBGROUPS] o

[CHARACTERG] 10 CITIZEN

[BEHAVIORG] 4 WALK 6 REST

[CONDITION] 10 CLIDER

[NUM_CLONES] 30

[NUM_SUBCLONES] o

[CHARACTERC] 14 SECURITY 16 CITIZEN

[CONDITIONC] 30 FOLLOW

[BEHAVIORC] 12 WALK 18 REST

[NAME_GROUPS] ·GROUPO GROUP1 GROUP2 GROUP3 GROUP4 GROUP5 GROUP6 GROUP7 GROUP8 GROUP9

[DISTANCE] 200

[GRADIENT] 25

Fig. 32. Fonnato del archivo de texto para cargar los atributos.

59

Page 59: Multitudes con comportamientos modificados por el ambiente

60

3.5.2 A TRAVÉS DE LA INTERFAZ DE USUARIO:

En la interfaz de usuario únicamente se asignan parámetros generales como son: Escena, número de grupos, número de clones, área de influencia del mapa de comportamiento y el gradiente.

Cro\•/ds

Scene: j 1 ~ No Groups: -, ,--- ~

i'lo Clones: j 1 ~ , ..

,'\ct_ Condition -' 1 r., Terrain r Reset

Quit

Decitions Distance. ~, 2-00 ___ ~

Graclient ¡, 5 ~

Active r Scene r., Cull

r Archivo

Fig. 33. Interfaz de usuario.

En lo correspondiente a la escena, se puede escoger entre las tres escenas anteriormente mencionadas, aunque en la interfaz tendrán otra denominación como a continuación se describe

1. escena l corresponde la explosión

2. escena 2 corresponde a la erupción, y

3. escena 3 será la simulación de como las multitudes evitan los obstáculos.

En el número de grupos y clones, se tendrá la cantidad de grupos que se dibujaran y los clones que tendrá cada uno de estos grupos. En la escena de los obstáculos, el escenario fue acondicionado para que los obstáculos a representar fueran del tamaño apropiado para poder simular la escena de forma adecuada.

En la parte de "set" podemos escoger el escenario que se quiera, siempre y cuando la escena elegida sea la numero l (explosión) ya que para otras escenas permanecerá desactivado.

El valor de la variable "Distance" será el que nos proporcione el tamaño del mapa de comportamiento, y este podrá ser elegido entre valores predeterminados.

Page 60: Multitudes con comportamientos modificados por el ambiente

bl

El valor del gradiente nos dice el máximo cambio de altura por la cual un personaje puede caminar. En el caso de los humanos se puede escoger entre valores predeterminados de 15 y 150

Para la simulación de los animales. se toma en cuenta que en el caso de los insectos el cambio de alturas entre diferentes puntos muchas veces no representa mayor problema (como en d caso de las hormigas que pueden trepar paredes verticales), por lo que el valor del gradiente es mavor.

El resto de las características de cada uno de los personajes se carga de manera aleatoria, ,entendo en cuenta la escena y el tipo de simulación, esto con el fin de evitar que se asignen atnbutos de animales a humanos y viceversa. El resto de la interfaz será explicada en el desarrollo de las escenas.

Con el fin de poder llevar un historial de cada una de las escenas simuladas, cada vez que se simula una de ellas se genera un archivo en donde se guardan las características utilizadas en esa aplicación en particular, esto nos permite poder ejecutar ese mismo archivo mas tarde.

3.6 DESARROLLO DE LA SIMULACION.

Cuando el programa es cargado, lo primero en aparecer son tres ventanas: dos de las cuales permite al usuario observar a las multitudes y una tercera que será la interfaz a través de la cual asignara los atributos a las multitudes a simular.

La ventana de la interfaz se constituye de cuatro regiones a saber (las dos primeras fueron explicadas en la sección de carga de atributos a través de la interfaz):

1. En la primera región se carga la escena a simular, el número de multitudes y el de clones de las que estará compuesta cada multitud.

2. En la segunda región, se cargan los valores de la distancia y gradiente.

3. En la tercera región se encuentra la activación de la escena, si la generación de la escena se hará a través de un archivo y activar o desactivar la propiedad de culling. Si la escena ha cargar es la numero 4, se activara el el botón para activar la aparición de las curvas que siguen los personajes en su recorrido.

4. En la cuarta región esta dedicada a activar las capas de comportamiento que en el caso de los personajes puede ser la generación de la explosión o que el volcán haga erupción, en el caso de los animales se genera la capa donde se encuentra la comida. En esta región también se encuentra los botones para activar o desactivar el que el terreno sea mostrado, así como el botón de reinicio, este ultimo botón nos sirve para reiniciar una simulación sin

Page 61: Multitudes con comportamientos modificados por el ambiente

pasos•

62

rener que salir del programa, evitando la perdida de tiempo. La escena a simular podra rener diferentes características a la anteriormente simulada.

Para la as1gnac1ón de los atributos a través de un archivo se deben de seguir los siguientes

1. Abrn un archivo de texto como se muestra en la figura 32.

., Asignar los atributos a cada grupo e individuo .

En caso de no asignar ningún valor a un atributo se debe de colocar la palabra DEFAULT

-l Una vez creado, para poder cargarlo a la simulación es necesario ejecutar el programa y activar la casilla de la interfaz de usuario" Archivo".

5 Es necesario que el archivo se encuentre en la misma ubicación del programa fuente y se guarde con el nombre de ''scene" para que el programa pueda reconocerlo.

Una vez que los personajes cuentan con los atributos correspondientes y el escenario ha sido cargado, se activa la casilla escena, y podemos ver el desarrollo de la escena a través de dos ventanas. En la ventana principal se puede ver la escena desde del punto de vista del observador, y en la ventana secundaria se observa una vista aérea de la escena. La ventana secundaria se genero dentro de la ventana principal con el fin de saber en que posición se encuentra el observador dentro de la escena, así como cada uno de los personajes que la integran. Para evitar que lo representado en la ventana fuera una carga en la simulación y esta se volviera mas lenta, cada uno de los personajes fue representado a través de un punto.

Para distinguir los diferentes tipos de personajes que se encuentran dentro de la escena. se asigno un color a cada uno de ellos, el rojo para los atacantes (en caso de existir), verde para los civiles, azul para los personajes de seguridad y amarillo para el observador.

3.6.1 ESCENA 1 (EXPLOSION)

En la escena de la explosión, los tipos de personaje que se crearon fueron de tres tipos, seguridad, civil y atacante. En esta escena se simula la explosión provocada por un atacante. En esta escena, la explosión es la que provee del estimulo que modificará el comportamiento de los personajes, así, la reacción o comportamiento final del atacante será la de huir, el comportamiento para los personajes de seguridad será la de seguir al atacante y los civiles dependiendo de la personalidad de cada uno de ellos será la reacción que adquirirán.

Page 62: Multitudes con comportamientos modificados por el ambiente

63

Fig. 34. Inicio de la simulación de la explosión.

Una vez que la simulación comienza, se pueden observar los diferentes comportamientos y personalidades de los personajes, los cuales son representados por su vestimenta y un personaje acorde a ese comportamiento. En la ventana secundaria se puede observar los diferentes colores con los que se representan a cada uno de los diferentes personajes así como el mapa de alturas que genera el escenario en el que se desenvuelven.

El comportamiento que adquieren los personajes son los previamente fueron cargados por el usuario o bien fueron dados aleatoriamente.

Page 63: Multitudes con comportamientos modificados por el ambiente

64

Fig. 35. Diferentes personalidades.

Una vez que la explosión se produce, en la ventana secundaria se puede observar la creación del mapa de comportamientos, en donde los personajes que se encuentren dentro de él morirán. Este comportamiento se representa con un tetraedro y con un punto de color blanco.

La explosión se representa con un sistema de partículas, el cual únicamente sirve como representación de la explosión jugando un papel decorativo, ya que las partículas no son las causantes de los daños que sufren los personajes.

Page 64: Multitudes con comportamientos modificados por el ambiente

65

Fig. 36. Momento de la explosión.

Los comportamientos que se activan dependerán de los comportamientos previamente cargados así como del evento que ha ocurrido. En los personajes civiles los comportamientos son los de huir o quedarse parados, el de los personajes de seguridad es el de perseguir a los atacantes y el de los atacantes huyen de los de seguridad.

Page 65: Multitudes con comportamientos modificados por el ambiente

66

Fig. 37. Se crea el mapa de comportamientos.

En la siguiente figura podemos ver en la ventana secundaria como los personajes que representan a los atacantes huyen de los de seguridad, esto se puede ver observando los puntos de color rojo (atacantes) seguidos de puntos de color verdes (verdes).

Una vez que los de seguridad persiguen a los atacantes se puede dar por terminado la simulación.

Page 66: Multitudes con comportamientos modificados por el ambiente

67 ,._~~~----------~----------------,1: .... =,i,:=..i.=

Fig. 38. Persecución.

La explosión se produce en tiempo de ejecución al activar la casilla de explosión (esta casilla también sirve para activar la erupción). En el momento de la explosión, el mapa de comportamiento (que será el área del daño) es creado a partir del punto donde ocurrió esta, en el supuesto de que algún personaje se encuentre dentro del mapa morirá o quedara herido, independientemente de su personalidad. El resto de los personajes que queden fuera del área de influencia del mapa de comportamiento pueden tomar diferentes comportamientos, como el de huir o quedar pasmados (no poder moverse).

Page 67: Multitudes con comportamientos modificados por el ambiente

68

3.6.2 ESCENA 2 (ERUPCION)

La segunda escena trata de simular la erupción de un volcán, aquí cabe aclarar que la erupción al igual que la explosión es puramente ornamental, ya que únicamente se toma el punto central del volcán para crear el mapa de comportamiento, algo mas real quizás seria que cada una de las partículas generaran un mapa alrededor de ella, pero no es el caso en este trabajo.

El mapa de comportamiento se genera del centro del volcán, por lo que es necesario conocer el punto en donde se encuentra el cráter para poder generarlo, ahí la importancia de que el mapa del escenario que se cargue para simular esta escena, sea un mapa creado expresamente, de lo contrario podría ocurrir que la erupción ocurra en un punto ajeno al volcán.

En la siguiente figura podemos ver una vista general de la erupción.

-~-L,1 .. ?'-.;

:;;- T::rr.aln RP.'>el

rn Bulld Á. tooug X r,nd In r,1.s- 1 A íiM ln fJJu2): Rti:lstl. / I •:

::Jlllnicia' ------· --.----·--·····--

..:..J .. fl ~ .,:) L_j (;.'.)u,.an-rrm-osctl._._.; !S']~·Hi ... ) 111-C:\ListoPer~IY.\ ) MAPAS GLU!

Fig. 39. Vista General de la Erupción

Oecltions

Dlstance: =ps=o -- ~

Gr.idiontj 15 ~

ACl1Ye

¡;¡ cun

Gun

LnD3.Cd37

t:)J:t:.;:. :I:30•.m

Las siguientes imágenes presentan una secuencia completa de lo que ocurre cuando el volcán hace erupción.

Page 68: Multitudes con comportamientos modificados por el ambiente

69

En la primera imagen podemos apreciar el inicio de la simulación, en donde se genera cada uno de los grupos o multitudes. AJ principio cada uno de los integrantes aparecen cerca unos de los otros, pero conforme transcurre el tiempo cada uno adopta el comportamiento con que fue programado.

Fig. 40. Inicio de la simulación de la erupción.

Dentro de la simulación podemos ver montículos que representan edificios por lo cuales los personajes no podrán pasar y deberán buscar rutas alternativas.

Page 69: Multitudes con comportamientos modificados por el ambiente

70

En la figura No. 41 podemos como los personajes se dispersan adoptando los comportamientos con que fueron programados. En la ventana secundaria se puede apreciar la distribución que adoptan los personajes al desplazarse por el escenario.

Fig. 41. Dispersión de los personajes.

Page 70: Multitudes con comportamientos modificados por el ambiente

71

En la siguiente imagen podemos apreciar como los personajes son capaces de subir el volcán no así por los montículos, ya que el gradiente en estos últimos rebasan el valor proporcionado o programado por el usuario, lo que permite apreciar que el mapa de gradientes utilizado para evitar la colisión funciona.

Fig. 42. Personajes subiendo el volcán.

Page 71: Multitudes con comportamientos modificados por el ambiente

72

En esta imagen podemos apreciar el inicio de la erupción volcánica, que como ya se mencionó únicamente sirve con un fin decorativo, pero que nos permite dar un mayor realismo a la simulación.

Al comienzo de la erupción los personajes que se encuentran en las cercanías del volcán (y por lo tanto dentro del mapa de comportamiento generado por este evento) caen muertos, mientras que el resto de ellos permanecen un instante estáticos. Los muertos son representados por una figura geométrica (pirámide).

Fig. 43. Inicio de la erupción.

Page 72: Multitudes con comportamientos modificados por el ambiente

73

Pasado el instante en el que los personajes quedan estáticos ( con lo que se simula un cambio de comportamiento) los personajes huyen del lugar de la erupción, buscando puntos que los alejen de la misma.

Fig. 44. Comienza la huida.

Page 73: Multitudes con comportamientos modificados por el ambiente

74

Los personajes de seguridad adoptan posiciones para proteger a los civiles, como se puede ver en la ventana pequeña, donde los puntos verdes se colocan frente al frente a los puntos azules que representan al personal civil.

Fig. 45. Personajes de seguridad adoptando dispositivo.

Page 74: Multitudes con comportamientos modificados por el ambiente

75

Los personajes de seguridad han adoptado una línea de protección frente al personal civil, que es lo que trata de simular esta escena, por lo que se puede dar por concluida Ja simulación.

Fig. 46. Personajes de seguridad formando una línea.

Page 75: Multitudes con comportamientos modificados por el ambiente

76

Las siguientes imágenes nos muestran como se crean las diferentes rutas que toman los personajes antes y después de la erupción.

En la figura No. 47 podemos ver que las trayectorias (líneas de color amarillas) que siguen los personajes incluyen escalar el volcán o pasar por lugares cercanos a éste, indicando que por esos lugares no existe ningún peligro.

Fig. 47. Trayectorias antes de la erupción.

Page 76: Multitudes con comportamientos modificados por el ambiente

77

En la figura No. 48 podemos ver las trayectorias que siguen los personajes una vez que la erupción fue activada (líneas de color rojo), y que estas trayectorias son creadas en puntos que alejan a los personajes del lugar de la erupción.

Fig. 48. Trayectorias después de la erupción.

Page 77: Multitudes con comportamientos modificados por el ambiente

77

En la figura No. 48 podemos ver las trayectorias que siguen los personajes una vez que la erupción fue activada (líneas de color rojo), y que estas trayectorias son creadas en puntos que alejan a los personajes del lugar de la erupción.

Fig. 48. Trayectorias después de la erupción.

Page 78: Multitudes con comportamientos modificados por el ambiente

78

3.6.3 ESCENA 3 (OBSTACULOS)

En la tercera escena, se creo con la finalidad de mostrar cómo los personajes modifican los puntos de control de la curva que siguen al chocar con un obstáculo. Para activar o desactivar la visualización de las curvas se activa la casilla de curves en la interfaz de usuario. Para tener una mejor vista de las curvas hacemos clic en el botón "+" lo que hará que la cámara (punto de vista del observador) se eleve y de esta manera tener una vista aérea de la escena, para volver a posiciones anteriores se hace a través de la tecla"-".

En la siguiente figura se aprecia que las rutas por las que se desplazaran los personajes colisionan con un objeto del terreno, el cual hará que los personajes modifiquen su trayectoria.

P~. '. "=,:-. 1

.:.J .Jj.

Crmo.;rts

1/1 '- 1.~c-n In. : :'"fll. 1

~IT.hn • r'TT[K.-ft ,,.

Esp,ñd ([s Q¡j

~]ln-1~--~·_:_i ~::~~llf~·::.!/ MAPAS

Fig. 49. Trayectorias antes de la colisión.

1\c:_c ond.llon 1 &;p10:ion

~:Terrnin: i AP.iP.I

Decilions

Dl<tance:~120=0-- ~

Graoiont ¡ zs ~

Acllve

1-' Cull

Qull

- -: .. -···· . ---, -

:1:02 dffl.

Page 79: Multitudes con comportamientos modificados por el ambiente

79

En esta figura se aprecia el momento en el que los personajes modifican los puntos de control de las curvas que transitan, con lo que evitan colisionar con el objeto.

Pl!IQ. 2 'i!:c. t 2/2 A 1.Scn1 ln 1 Cd. 2 f,q;wñd(Es G)

r,ct_Conditlon r- E>-:plo!lon

r.-(T~ffiiiñ·: f He:;et

-.lDJ x, O~r:1t,on~

cio:ancc,~3 Gracient ¡ 2s 3

¡., Cull

C:uit

:18!~; .:.J ~: ' ~.J J W~:Ptl!:radt ... ]_'!JOocuTeto2-M ... f a-c:\Llst~f!lraEnt\.)_._ M4PAS _ ·------ l:--GÍ.ÜJ ___ _

Fig. 50. Trayectorias después de la colisión.

3.6.4 ESCENA 4 (ANIMALES)

En el caso de los animales, tanto las hormigas como los herbívoros andan en busca de alimento y al igual que las dos primeras escenas, es necesario activar el estimulo de la comida, esto se hace al activar la casilla de "food" localizada en la interfaz de usuario.

El lugar de creación de los mapas de comportamiento se hace alrededor de cada uno de los puntos donde se localizan los alimentos, en el caso particular de las hormigas, se trato de imitar el comportamiento que tienen estos animales al encontrar su alimento, que el de transportarla hacia el hormiguero. En el caso de los herbívoros al encontrar el alimento se quedan reunidos alrededor del punto donde encuentren el alimento.

Page 80: Multitudes con comportamientos modificados por el ambiente

80

A diferencia de los otros escenarios en donde los personajes aparecen en grupos al inicio de la simulación, en este escenario se simuló que las hormigas brotaran de un hormiguero el cual podemos observar en la figura No. 51 y que al igual que el volcán fue creado usando el mapa de alturas para darle mayor realismo a la simulación.

Fig. 51. Inicio de la simulación de los animales.

En la ventana secundaria también podemos observar los diferentes animales que fueron creados, los puntos azules representan a las hormigas, los puntos de color verde son los pájaros y los puntos de color rojo representan a los mamíferos (los cuales son creados en grupos).

Page 81: Multitudes con comportamientos modificados por el ambiente

81

La siguiente figura nos presenta el momento en el que el mapa de comportamientos es activado. Esto lo podemos observar de manera mas explicita en la ventana secundaria, en la que podemos ver dos cuadros de color rojo y verde, los cuales representan las áreas en donde se encuentran el alimento de las hormigas y mamíferos respectivamente.

.. :-

,~;&; i

1 rt¡. C 1

• ' '! !1 t ,, !

~ ? ' t ! ~

! ! J

t ~ :.,

Fig. 52. Se activa el mapa de comportamientos (alimentos).

Page 82: Multitudes con comportamientos modificados por el ambiente

82

Una vez que los animales encuentran el área de sus respectivas comidas, adoptan el comportamiento que simula a los animales alimentándose, en el caso de las hormigas se simula un ir y venir de su hormiguero al lugar de la comida y en el caso de los mamíferos no saldrán del área en donde se encuentra la comida.

Fig. 53. Las hormigas comienzan su ir y venir.

El comportamiento de los pájaros, será el de buscar lugares propicios donde posarse, esto se logra haciendo uso de los valores del mapa de alturas y asignar los posibles lugares. La altura en la que los pájaros pueden posarse se da de manera predeterminada, es decir, nada mas pueden posarse por encima de determinada altura.

Page 83: Multitudes con comportamientos modificados por el ambiente

33

\I no contar con modelos propios para la simulación de las escenas, la representación de las escenas con humanos se llevo a cabo utilizando modelos de Quake 11 y lII [6], los cuales presentan mov1m1entos que se utilizaron para representar los diferentes comportamientos. Cada persona_1e se trato de adecuar a lo que cada uno representa, así, se logra que el observador pueda dderenc1ar entre un atacante y un civil, y que sea a través de la caracterización que se reconozca la personalidad de cada personaje.

Aun cuando cada modelo tiene un movimiento asignado, no poseen expresiones que puedan indicamos el estado de ámmo de cada uno de ellos. Esto tiene algunos inconvenientes al momento de simular algunos de los comportamientos que posee cada personaje, como puede ser el caminar y correr, que pueden confundirse, esto debido a que se utilizo el mismo movimiento para representar ambos comportamientos.

Los ammales también fueron representados con modelos de Quake [6] (aunque diferentes de los humanos), excepto los pájaros, los cuales fueron representados por un tetraedro.

Los mapas de comportamientos de las diferentes escenas pueden ser vistos en la ventana secundaria en el momento que se activa el evento, aunque se puede desactivar oprimiendo la tecla

Page 84: Multitudes con comportamientos modificados por el ambiente

~ RESULTADOS.

Una vez que el desarrollo se tenninó de implementar, se realizaron varias pruebas de funcionalidad y los resultados obtenidos pueden considerarse satisfactorios, ya que se obtuvieron comportamientos complejos especificando atributos individuales y grupales de fonnajerárquica a cada individuo.

Los mapas de comportamientos obtenidos para la modificación de los comportamientos, nos permiten obtener cambios en los comportamientos establecidos dentro de cada individuo de una forma fácil, lo cual significa que un comportamiento o acción puede ser asignada a una capa en específico y de esta manera lograr que un personaje se comporte de acuerdo al mapa en que se encuentre.

Para la selección de trayectorias se utilizaron diferentes algoritmos dependiendo del ambiente (tamaño de los obstáculos) y la relación que existe con los diferentes personajes para evitar que estos colisionen con los objetos que se encuentren a su paso.

La oclusión y point based permitieron que el sistema trabajara con un gran número de personajes dándole mayor realismo a la aplicación. Los resultados en cuanto al número de personajes creados y la velocidad de la simulación podemos verlo en la tabla 5.

Las maquinas utilizadas para la obtención de los datos fueron las siguientes.

• Maquina 1 Xeon 2.4 GHz, 1 GB RAM, con una tarjeta Nvidia Quadro FX 2000 • Maquina 2 Pentium 4 a 2.8 GHz y una tarjeta ATI FireGL Xl • Maquina 3 pentium ll a 700 MHz con una tarjeta GForce4 MX

Y la escena utilizada fue la escena l, ya que es la que cuenta con todos sus personajes representados por modelos Quake [6], así como la vista fue tomada desde un punto donde permitía ver la mayor cantidad de personajes.

Page 85: Multitudes con comportamientos modificados por el ambiente

85

' Resultados. \faquma

1 '.'Jo. ! No. Grupos

1 No. Clones Fps con Fps sin

1 PersonaJes 1 culling Culling 1 100 1 10 1 10 38 "6 - _\ ¡

\ 20 ---~-----

1 -WO i 20 19 1 16

1 2500 , 50 ! 50 18 5 1 1 10000 , 100 ' 100 2 1 ,

i 10000 100 100 7 2 -., ! 500 25 20 5 2 .. l

El mapa de comportamientos también fue un factor para que !a velocidad de simulación se incrementara, ya que anteriormente la manera de calcular si un personaje se encontraba dentro del mapa de comportamiento era a través de la distancia a la que se encontraba el personaje del evento que creaba al mapa. En el momento en que ocurría el evento se calculaba la distancia de todos los personajes al punto donde ocurría el evento, lo que hacia que la velocidad de la simulación disminuyera durante el proceso de calculo.

Page 86: Multitudes con comportamientos modificados por el ambiente

86

5 CONCLUSIONES

Los resultados obtenidos fueron satisfactorios ya que se cumplieron los principales objetivos que son:

1. Obtener comportamientos complejos, especificando atributos a cada grupo e individuo de forma jerárquica y usando capas de comportamiento. A cada uno de los personajes se le asigna un comportamiento inicial lo que le permite interactuar con el ambiente que le rodea aun cuando los mapas de comportamientos no sean activados, lo que marca una diferencia con otros trabajos relacionados, en donde los comportamientos se generan dentro del cada individuo o en las capas de comportamientos pero utilizando las dos formas al mismo tiempo. Los mapas de comportamientos se utilizaron para cambiar el comportamiento inicial de cada individuo lo que permite simular la acción que ejerce el ambiente en la vida de los seres vivos. Dentro de los comportamientos finales podemos mencionar el de los personajes de seguridad encargados de proteger a los civiles durante la erupción o el de los animales en busca de alimentos.

-, El poder crear ambientes de forma fácil y rápida a través del uso de mapa de alturas. Los mapas de alturas pueden ser creados utilizando diferentes programas que permitan la creación de mapas con diferentes tonalidades de grises como pueden ser: photoshop, paint, ect.

3. La utilización de diferentes algoritmos para la selección de rutas de desplazamientos, dependiendo del obstáculo que se presente, que permite que los personajes eviten una colisión con los objetos que se encuentran dentro de un escenario y que individuos que pertenecen a un grupo diferente sea capaz de cambiar de grupo, simulando la interacción que existe cuando dos grupos de personas se encuentran.

4. El empleo de diferentes algoritmos tendientes a aumentar la velocidad de simulación que permita simular una cantidad relativamente grande de personajes con la finalidad de dar mayor realismo a nuestra aplicación.

Page 87: Multitudes con comportamientos modificados por el ambiente

87

La s1gu1ente tabla nos permite ver la comparacion entre el trabajo propuesto con traba_1os que se han creado para la s1mulac1cm de multitudes y componamientos. Algunos de estos trabaJos umcamente se enfocan en la creación de grandes cantidades de personajes no así en la simulación del compor1am1ento. otros fueron creados para la simulación de comportamientos pero no para la creac1on de grandes cantidades de personajes, por lo que la comparación únicamente se hace con los parametros que coinciden con el trabajo propuesto.

6. Comparación del presente trabajo vs trabajos relacionados. , TRABAJO 1 A~ent Behaviour Hieran:hical Model for Real-time Dillplay of 1

I PROPUESTO , Simulator (ABS): Real Time Simulation Virtual Human!I: Franco Tel.-chia, ofVirtual Human Le\·els of 1 :

, C eline Loscos, Ruth Crowd!I Detailll and 1 , Conroy. Yiofl!:O!I Soraia Raupp Mu!lse lmposton 1 ,

1 1

Ch rysanthou and Daniel Thalmann Amaury Aubel, Ronan Boulic,

Daniel Thalmann

1 Planeación de Si Si Si No , cammos 1

1

, :

i lluminació~ --· -- - 1- - --- - - ---~- ---·---~- ----,

No No No No !

Comportamiento Si No Si Si grupal

I Comportamiento Si Si Si Si individual 1

1

1 Evitar colisiones Si Si Si No 1

'\fapa de Si Si No No comportamientos Oclusión Si No No No

1 \f ivel de detalle Si No No Si 1 Uso de un No No Si No / lenguaje Script '. Autonomía Si Media Media No

Page 88: Multitudes con comportamientos modificados por el ambiente

88

6 TRABAJOS FUTUROS.

Uno de los aspectos que se deben de mejorar es el poder representar los estados de animo cada uno de los personajes, esto se puede lograr con movimientos faciales, y de esta manera tener mas realismo en la simulación, así como la creación de un script que permita asignar tareas a los grupos en tiempo de ejecución, como puede ser el desplazarse a un punto o realizar una tarea en especifico haciendo que la aplicación sea mas flexible.

La implementación de memoria para cada personaje también es una tarea que se tiene contemplada crearse. La técnica empleada para construir la memoria seria a través de mapas, donde cada individuo tendría cargado un mapa por los lugares por donde ha caminado y guardar en memoria los lugares por donde se encuentran los obstáculos y evitarlos. La perdida de memoria se simularía degradando el color de cada uno de los mapas, en donde a mayor degradación del color mayor perdida de memoria existirá.

La creación de mapas dinámicos que permita aumentar la velocidad de la simulación a través de capas similares a la de comportamiento, es una tarea que se esta llevando a cabo. Esta capa se genera tomando como punto principal la posición de observador, pero a diferencia de las capas de comportamiento, esta capa toma una forma de triangulo, donde la posición del observador era un vértice del mismo. Este triangulo toma la misma dirección del observador por lo que se podría aplicar como una técnica de culling, en donde todos los que se encuentren dentro del triangulo serán visibles.

Figura No. 54 Mapas dinámicos.

Page 89: Multitudes con comportamientos modificados por el ambiente

89

Otra aplicación de este tipo de mapas es poder asignar a cada uno de los personajes un mapa que represente la posición de cada uno de ellos o el comportamiento que en ese momento tenga asignado, con lo que la interacción entre ellos sea más dinámica y la colisión entre ellos pueda evitarse. La simulación de la erupción volcánica también se vería beneficiada con este tipo de mapas ya que a cada partícula emitida por él podría generársele un mapa que represente el área de daño de cada una de ellas.

Page 90: Multitudes con comportamientos modificados por el ambiente

91

[12]. Murakam1, Y., Minami, K., Kawasoe, T., and Ishida, T.: Multi-Agent Simulation for Crisis \lanagement lEEEWorkshop on Knowledge Media Networking (KMN'02) Kyoto, JAPAN July 10 - 12. 2002 135.

[ 13] Pascal Bécheiraz, Daniel Thalmann "A Behavioral Animation System for Autonomous ~

Actors personified by Emotions". Proc. First Workshop on Embodied Conversational Characters (WECC98), Lake Tahoe, USA.

[14]. Raupp, S., Thalmann D.: Hierarchicall Model For Real Time Simulation of Virtual Human Crowds. IEEE Transactions on Visualization and Computer Graphics, Vol. 7, No.2 (April{June2001) 152,164.

[15]. Reynolds, C.: Flocks, Herds, and Schools: A Distributed Behavioral Model, Proceedings of ACM SIGGRAPH'87 (1987) 25, 34.

[16]. Reynolds, C., Steering Behaviors For Autonomous Characters, Proceedings of Game Developers Conference (1999)

[17]. Sánchez Lorena (agosto 2001 ), Revista Quo No. 46, página 45.

[18]. Tecchia, F., Loscos, C. and Chrysanthou, Y.: Image-based Crowd Rendering. IEEE Computer Graphics and Applications, Vol. 22 No. 2 (March,April 2002)

[19]. Tecchia, F., Loscos, C., Conroy R.and Chrysanthou, Y.: Agent Behaviour Simulator (ABS):A Platform for Urban Behaviour Development GTEC'2001, Hong Kong, (2001)

[20]. Tecchia, F.: Real-Time Rendering of Densely Populated Urban Environments. In Peroche and Rushmeier, editors, Rendering Techniques 2000 (10th Eurographics Workshop on Rendering),pages 45-56,Bmo, Czech Republic, June 2000. Springer-Verlag.

[21]. Wand, M., Strasser, W.: Multi-Resolution Rendering of Complex Animated Scenes. In: Computer Graphics Forum, Vol. 21 No. 3 (2002) 483,491.