GUIÓN DE LA PEC2 Definición del tema concreto de la aplicación La aplicación de realidad virtual que voy a crear se trata de una habitación en penumbra que contiene una serie de elementos sobre los cuales el usuario puede interactuar. La aplicación arranca con el usuario fuera de la habitación, y con el objetivo de que se adentre en ella y comience a explorar los elementos y sorpresas que en ella se encuentran…. Entre las dificultades a superar se encuentra la de encontrar el interruptor de la luz que iluminará la escena y hará más sencilla la exploración del cuarto. Entre los elementos que conforman la habitación cabe destacar una pecera(sin inquilinos por el momento), dos interruptores en la pared que pueden desencadenar sorpresas, una mesa de vidrio, una lámpara, una silla y un armario entre otros. La aplicación se encuentra ubicada temporalmente en una época concreta del año (la Navidad), echo que influye directamente en la composición de la escena. El objetivo que persigue la aplicación es la pura diversión y entretenimiento por parte del usuario que interactúa con ella, aunque también podría considerarse un leve aspecto psicológico/sociológico de estudio del comportamiento humano al adentrarse en una habitación a oscuras y desconocida. Definición del tipo de aplicación En la aplicación se dan los tres tipos de interacción existentes: Interacción explorativa: El entorno es navegable. Interacción manipulativa: El usuario puede manipular algunos de los objetos y cambiar su estado geométrico (rotar y mover en este caso). Interacción contributiva: El usuario puede inducir cambios en algunos objetos, como por ejemplo, el nivel de iluminación de la escena, entre otros. Identificación del tipo de usuario El tipo de usuario que va a utilizar la aplicación podría definirse como un tipo de usuario medio-avanzado en materia de realidad virtual (ya que para el tema concreto de la aplicación no es necesario ser experto en ningún tema), pues el público objetivo al que está destinado serán los alumnos y el consultor de la asignatura de Realidad Virtual. Ocasionalmente, la aplicación podría ser utilizada por usuarios inexpertos al estar expuesta en Internet y ser accesible por cualquier persona en cualquier momento. Identificación de los tipos de interfaces de entrada Las interfaces físicas de entrada serán el ratón y/o el teclado. Identificación de los tipos de interfaces de salida La interfaz física de salida será un monitor. Identificación de las herramientas de modelado de objetos Voy a utilizar un tipo de modelado geométrico, y los programas: - 3D Studio Max - Whitedune Identificación de las herramientas de desarrollo Como herramienta de desarrollo utilizaré el lenguaje JavaScript, adaptando algunas de las funciones de los tutoriales de la pac1, así como también funciones de otros compañeros y creando partes propias. Naturaleza del entorno y de los objetos Los objetos virtuales que voy a necesitar para mi aplicación son los objetos cotidianos que puedan encontrarse en una habitación: una mesa, una silla, un armario, interruptores, una ventana, una lámpara, las paredes, la puerta y, en el caso concreto de esta aplicación, una pecera y algunos complementos para ella. Estos objetos serán creados en un 90% por mi, ya sea a través del propio WhiteDune ó a través de 3Dstudio Max, pero algunos de los objetos que se utilizan en la aplicación han sido obtenidos de librerías de páginas web(en concreto el jarrón1, las plantas2 y las texturas del suelo de la pecera, el armario, la silla y las paredes y el suelo de la habitación2) Formas de interacción La interacción que va a establecerse en mi aplicación será un tipo de interacción monousuario que se desarrollará en un espacio reducido (frente a un ordenador), en la que el usuario no deberá desplazarse físicamente para interactuar con el entorno virtual y en la que la interacción con los objetos será una observación a distancia (PVV). Los elementos que utilizaré para establecer esta interacción serán los siguientes: PlaneSensors, SphereSensors, CylinderSensors, TouchSensors y ColorInterpolators(este último asociado ó en combinación con un TimeSensor). El lenguaje de programación utilizado será JavaScript. 1 2 Objetos extraídos de la página web: http://www.amazing3d.com/free/free2.shtml Objetos extraídos de la página web: http://3dp2.0catch.com/aqua1.html Estados del sistema(diagramas) Para definir los estados de algunos de los objetos que conforman el sistema, usaré diagramas de autómatas finitos. Pulsar Icartel* Cartel felicitación apagado Cartel felicitación encendido Pulsar Icartel* *Icartel: Interruptor de encendido del cartel Pulsar Iluz** Escena en penumbra Escena iluminada Pulsar Iluz** **Iluz: Interruptor de encendido de la luz ybolas<ysuelo*** Bolas de nieve visibles Bolas de nieve invisibles ybolas>ytecho*** ***ybolas: Posición en la coordenada y de las bolas de nieve ysuelo: Posición en la coordenada y dónde he establecido el suelo de la escena ytecho: Posición en la coordenada y dónde he establecido el “techo” de la escena, dónde empiezan a caer los copos de nieve Notas a tener en cuenta: Una vez el cartel de felicitación está encendido, se rige mediante un comportamiento pasivo que simula el efecto de parpadeo. El cambio de estado en la visibilidad de los copos de nieve se produce para que el usuario no detecte que vuelvo a colocar los copos en el punto inicial de caída, pero independientemente de eso, los copos de nieve tienen también un comportamiento pasivo asociado de caída y vuelta al lugar de inicio. Otros tipos de interacción usuario-entorno Además de la interacción con los objetos arriba señalados, existen estos otros tipos de interacción en la aplicación: Planta+tierra de la pecera: Estos dos objetos tienen asociado un planesensor que permite moverlos en el plano xy. Jarrón: Este objeto tiene asociado un cilindersensor que permite rotarlo. Lámpara: Este objeto tiene asociado un spheresensor que permite rotarla. Recursos VRML y JavaScript Como he comentado en un punto anterior, crearé objetos VRML mediante los programas 3D Studio Max y WhiteDune, amén de obtener otros de librerías de Internet(ver apartado Naturaleza del entorno y de los objetos). Sobre los recursos JavaScript, información más detallada podrá encontrarse en el apartado Identificación de las herramientas de desarrollo. Estudio de las geometrías y texturas a utilizar Para acceder al estudio de las geometrías y texturas necesarias en mi aplicación, ver apartado Naturaleza del entorno y de los objetos.