Resumen: E-028 UNIVERSIDAD NACIONAL DEL NORDEST E Comunicaciones Científicas y Tecnológicas 2005 Evaluación de una herramienta para el desarrollo de modelos de realidad virtual. 1,2,3 Pintos, Roxana E. - Mariño, Sonia I. 1,2 - Godoy, Maria V. 1. Area de Ingeniería Web. Facultad de Ciencias Exactas y Naturales y Agrimensura. UNNE. 9 de Julio 1449. 3400 Corrientes. 2. Departamento de Informática. Facultad de Ciencias Exactas y Naturales y Agrimensura. UNNE. 9 de Julio 1449. 3400 Corrientes. 3. Departamento de Ciencias de la Información. Facultad de Humanidades. UNNE. Av. Las Heras 727 – 3500 Resistencia - Chaco E-mail: [email protected], [email protected], [email protected] Introducción La realidad virtual es una técnica adecuada para la enseñanza, debido a la facilidad que posee para captar la atención de los estudiantes mediante su inmersión en mundos virtuales relacionados con los diferentes campos del saber, lo cual puede ayudar en el aprendizaje de los contenidos de cualquier materia. Asimismo, la realidad virtual es aprovechada como un recurso didáctico para motivar la atención del niño a través de dibujos tridimensionales y de la interactividad que poseen los sistemas virtuales. considerándose como una herramienta ideal a la hora de transmitir conocimiento. En el presente trabajo, se presenta el desarrollo de una herramienta para modelizar realidad virtual y una síntesis de los objetos utilizados en 3DStudio Max, así como de los modificadores aplicados a lo mismos. Se trabajó con los conceptos de jerarquía, cinemática, vinculación, uso de materiales y animación, principalmente. Fue imprescindible retomar el vocabulario 3D, lenguaje de las matemáticas, que indica que la geometría 3D se compone de formas fundamentales que constituyen bloques de construcción. El centro del mundo 3D es el vértice, un punto del espacio. Cabe esclarecer que la posición del vértice 3D en el espacio se expresa con tres valores numéricos correspondientes a x, y, z. Estos valores se miden desde un punto central, el origen del espacio universal (0,0,0); que se lo puede considerar el centro del universo, ya que es un punto inamovible respecto al cual se realizan las mediciones. Materiales y métodos VRML no es un lenguaje de programación, es un lenguaje de especificación de mundos virtuales. Esta tecnología aún es muy reciente como para contar con una filosofía de trabajo conocida y aceptada formalmente (como ocurre con la programación convencional). Introducción al diseño. Antes de iniciar el proceso de diseño, se revisó nuevamente la sintaxis y estructura básica de un archivo ‘.wrl’. Se determinó que en un mundo virtual existen componentes estáticos y dinámicos. Los componentes estáticos son las figuras geométricas que le otorgan forma al objeto que se está modelando. En cambio, los componentes dinámicos son los eventos transmitidos entre los objetos que forman el mundo virtual, que le permite a los mismos presentar interacciones (movimiento o sonido) visibles para el usuario [4]. Se investigó que la estructura básica de un mundo VRML está compuesta por una o más escenas gráficas, cada una de ellas contenidas en un archivo. Las escenas gráficas están compuestas por un grupo de nodos, que a su vez contienen campos y eventos. Los nodos representan el componente esencial en un archivo VRML. Pueden ser de distinto tipo y existen nodos que pueden agrupar otros nodos. Además, vale señalar aquí a los nodos que actúan como sensores (detectando las acciones del usuario e informando de ellas a otros objetos) y a los nodos que se encargan de modelar los sonidos. Los nodos a su vez contienen campos que describen propiedades. Todo campo tiene un tipo determinado y no se puede inicializar con valores de otro tipo. Los eventos son mensajes enviados entre los nodos a través de rutas. Estos eventos permiten otorgarle dinamismo a los componentes de un mundo VRML [5]. Pasos preliminares en el diseño Identificación de objetos. Se aplicó un estudio similar al análisis orientado a objetos, identificando los mismos a partir de la evaluación de las herramientas que se utilizarán y los antecedentes obtenidos a partir del muestreo realizado. En el caso del sistema digestivo, los objetos a modelar serán: boca, faringe, esófago, estómago, duodeno, páncreas, hígado, vesícula biliar, intestino grueso, intestino delgado, recto y ano. También se definieron los sucesos más significativos para los componentes del sistema. Por ejemplo, en el sistema digestivo, el esófago facilita el desplazamiento del bolo alimenticio desde la faringe hacia el estómago. Especificación de atributos. Se entiende por atributos a aquellos datos que otorgan cualidades físicas relevantes a un objeto, para su modelamiento posterior. Con los objetos ya identificados, se procedió a realizar una lista adecuada para la finalidad del proyecto a realizar. La misma incluye características de color, tamaño, evento y principalmente; si el objeto realiza algún movimiento por sí mismo (si tiene contracciones). Identificación de eventos. Un evento involucra cambios en los valores de uno o más de sus atributos. Algunos de los cambios pueden ser de posición, color, tamaño, sonido, entre otros. Resumen: E-028 UNIVERSIDAD NACIONAL DEL NORDEST E Comunicaciones Científicas y Tecnológicas 2005 Para identificar los eventos se revisó nuevamente toda la información obtenida, con el objetivo de adquirir una clasificación satisfactoria. Existen dos tipos de eventos u operaciones: internos o externos. Un ejemplo de evento interno es la detección de colisiones; un ejemplo de evento externo es la activación del sonido mediante el clic del mouse. En el caso del aparato respiratorio, el estado de los pulmones en los momentos de la respiración (inspiración y espiración). Comunicación entre objetos. Los objetos del mundo virtual se comunicarán por medio de mensajes, quienes deben ir encaminados por una ruta. Se investigó que en VRML los cambios en los nodos, producto de su interacción, son posibles gracias al envío de mensajes por medio de eventos que son encaminados vía una ruta (llamada ROUTE). Se identificó la existencia de estas interacciones, teniendo en cuenta la información obtenida y, además, se indicaron aquellos objetos que presentan variaciones en su movimiento o características físicas. En el sistema digestivo, el intestino delgado envía al intestino grueso las sustancias no aprovechadas en el proceso de digestión. Incorporación de luces y cámaras. 3DS Max ofrece acceso a herramientas para crear varios tipos de luces. En este caso, se utilizó el objeto ‘Luz direccional libre’ que emite un haz de luz creando la ilusión de iluminación. Esta luz brilla desde una dirección uniformemente, como un haz de rayos paralelos. Brinda un efecto similar al del sol, donde todo es iluminado en la misma dirección [6]. Las cámaras son un mecanismo de visualización utilizado en el proceso de creación de imágenes [1]. Fueron insertados varios objetos ‘Cámara con objetivo’ que funcionan de manera similar a las cámaras de cine reales. Exportar la escena Finalizada la escena, se exportó el archivo en formato ‘.wrl’. Mediante la obtención de la ‘Especificación del Lenguaje de Modelado de Realidad Virtual’ (VRML) se tornó más amena la interfaz del editor para comprender la sintaxis de los nodos y los campos. Resultados Como se menciona en éste trabajo, se explica el procedimiento para la modelización de las partes del cuerpo humano con el objeto de construir un software educativo. Primera escena: “Partes del cuerpo” Esta escena gráfica se realizó en el programa de diseño gráfico 3DStudio Max. Se procedió a efectuar cada parte del cuerpo de manera independiente. A continuación se detallan los pasos que se siguieron para obtener algunas de dichas partes: La cabeza se creó utilizando el objeto ‘Esfera’. Para que este objeto se pueda modelar, se aplicó un modificador ‘FFD (caja)’ que permitió activar el ‘nivel de selección subobjeto’ en la persiana Catálogo de modificaciones para seleccionar y mover los puntos de control, generados con el modificador aplicado. Se agregó al catálogo un modificador ‘SuavizaMalla’ para suavizar todas las aristas angulares gracias a que muestra una malla de control alrededor del objeto para realizar esta operación. Para crear los rasgos faciales (incorporación de la nariz, la boca y las cuencas oculares), se añadió el modificador ‘Malla editable’que es una herramienta de modelado poligonal. Aquí se trabajó con el nivel de selección de vértice y polígono, principalmente. La malla de control permitió realizar operaciones poligonales básicas, como Biselar, Extruir o Cortar directamente. La diferencia entre las dos primeras operaciones es que Biselar primero extruye las caras y luego las bisela. Aunque el botón Extruir parece desactivado, Biselar utiliza el campo Extruir que aparece al lado [1]. Estas herramientas se encuentran disponibles en la persiana ‘Editar geometría’. Se emplearon los campos de ambos botones para realizar un biselado preciso para obtener la nariz. En el caso de la boca, se utilizaron las herramientas Cortar y Extruir. Para las cuencas oculares, se añadieron vértices al área en torno a los ojos que luego fueron seleccionados y ligeramente empujados dentro de la cabeza. En el caso del cuello se seleccionaron los polígonos de la base de la cabeza y se aplicó a los mismos la herramienta Extruir. Para la creación de los ojos, se utilizó el objeto ‘Esfera’ y una nueva función de cuadrícula flotante llamada CuadrAuto (para cada uno de ellos). Teniendo en cuenta la documentación revisada, el cursor de CuadrAuto sigue la superficie del objeto. Una flecha muestra la normal a cara actual en el centro de una cuadrícula flotante [1]. Debido a que los ojos son objetos independientes, se crearon mapas planos para los mismos. Para ello, en el ‘Editor de materiales’ se trató la imagen seleccionada y se aplicó un modificador de ‘Mapa UVW’ al globo ocular. El modelado del cuerpo se realizó utilizando la técnica llamada Solevación. Según la información obtenida, ésta técnica consiste en crear un objeto 3D mediante la colocación de formas 2D en un recorrido. El proceso general consiste en definir un recorrido y una forma, y luego extruir la forma a lo largo del recorrido [1]. Como primer paso, se efectuó el recorrido para la solevación empleando la forma ‘Línea’. Para la creación de la representación del cuerpo, se utilizó la forma ‘Elipse’ y se incorporó el modificador ‘Spline editable’ para acceder fácilmente a sus vértices para editarlos. La solevación del cuerpo se inició seleccionando la línea creada y agregándole el compuesto ‘Objeto solevado’. En la persiana ‘Método de creación’, se eligió ‘Asignar forma’ y se seleccionó la elipse. Para agregar detalles a la solevación, se aplicó un modificador ‘Malla editable’ para realizar la forma de la cola y el ombligo. Para el desarrollo de las manos, se empezó con la creación del objeto ‘Caja’ para cada una de ellas. Nuevamente, se incorporó el modificador ‘Malla editable’ para tratar los polígonos que forman dicho objeto. Para Resumen: E-028 UNIVERSIDAD NACIONAL DEL NORDEST E Comunicaciones Científicas y Tecnológicas 2005 suavizar el objeto, se incorporó el modificador ‘SuavizaMalla’. Para el modelado propiamente dicho, se utilizaron los subobjetos vértice y polígono para Malla editable. En cuanto a los pies, la metodología a seguir fue similar a la utilizada cuando se crearon las manos. Aquí se utilizó, fundamentalmente, la herramienta ‘Extruir’. Las piernas y los brazos también se iniciaron con el objeto ‘Caja’. Se incorporó el modificador ‘Malla editable’ y se alternó entre las herramientas ‘Biselar’ y ‘Extruir’ hasta obtener las formas más semejantes. Incorporación de objetos ‘Ayudantes’ Los objetos ayudantes de VRML97 se insertaron en el visor Superior de Max, el objetivo es que aparezcan bien orientados en el visor Anterior. Algunos de los objetos que se utilizaron en esta escena son: - Anchor: este objeto crea un enlace a un archivo VRML. Dicho enlace se encuentra incrustado en un objeto. El Anchor envía al visualizador a otro archivo. Este archivo es un ‘.wrl’ (texto o gráficos) u otro punto de vista. Este nodo es activado por el usuario estableciendo afuera un evento, tal como clickear sobre un objeto particular o dentro de un objeto Proximity Sensor en la escena [2]. Por ejemplo, haciendo clic en la cabeza del personaje, se pasa a un primer plano de la cabeza (o sea, tiene un enlace a una cámara que se encuentra en la escena). - NavigationInfo: describe características físicas del navegador y la escena. Especifica al visualizador / navegador qué tipo de navegación usar, cuan rápida será la misma, el tamaño de un avatar (entendiendo por avatar el espacio físico de la presencia del usuario), y el límite de visibilidad [2]. El objeto insertado en esta escena permite rotar el mundo para verlo desde distintos ángulos (el usuario permanece inmóvil) y que el usuario camine normalmente siendo afectado por la gravedad. - Background: este objeto posee parámetros que permiten crear un cielo y/o base para el mundo. Con las especificaciones de base se crea un horizonte que suministra la sensación de que los objetos no están simplemente flotando alrededor de un espacio [2]. El objeto incrustado permite que la escena posea cielo y tierra a la vez, mezclando diversos colores para obtener una gama de matices. Segunda escena: “Movimiento de las extremidades” Se trabajó sobre el modelo del niño obtenido en la primer escena. Se creó una estructura esquelética vinculada que luego se conectó a la malla del cuerpo del niño. Para ello se utilizaron diferentes herramientas, además de integrar conocimientos de cinemática y vinculación, principalmente. Antes de empezar con el esqueleto, fue necesario combinar las partes del cuerpo en una única malla editable. Para ello, se adecuaron las intersecciones de todos los elementos de la geometría. Se utilizó el tipo de objeto ‘Booleano’ del panel ‘Objetos de composición’ para unir las partes, convirtiendo luego en una malla editable. Creación del esqueleto para la animación Para las piernas se trabajó con una cadena de huesos. Luego de haber ajustado los huesos, se definieron los límites de ‘Cinemática inversa’ para que dichos huesos tengan movimiento. Fue imprescindible ajustar los valores de los parámetros de los paneles ‘Movimiento’ y ‘Jerarquía’. Según la información obtenida, en la cinemática inversa (CI), el movimiento de un objeto subdescendiente crea un efecto sobre los descendientes y ascendientes que se encuentran encima. La norma general en la CI es: los padres obedecen a los hijos [1]. Se crearon ‘Efectores finales’ en la punta de los dedos y los talones. Los efectores finales son objetos que se utilizan en el sistema de CI interactiva para controlar la animación de CI [1]. Para los brazos, la parte superior del cuerpo y la cabeza, se creó una cadena de cinemática directa a partir de cajas. Aquí también se configuró el panel ‘Jerarquía’ y se utilizó ’Cinemática directa’. Se investigó que cuando se transforma el objeto ascendiente en la cinemática directa, los objetos descendientes y subdescendientes también se transforman. La norma general en la cinemática directa es: los hijos obedecen siempre a sus padres [1]. Luego de colocar las cajas adecuadamente, se procedió a realizar la vinculación jerárquica. Se emplearon las herramientas ‘Seleccionar y vincular’ y ‘Vista esquemática’ para dicha operación. Para conectar los huesos y las cajas, se creó una estructura esquelética unitaria mediante objetos ficticios. Los objetos ficticios no se representan pero pueden utilizarse para tareas de vinculación y animación. Se crearon objetos de éste tipo para los pies y otro en la base de la columna para separar la vinculación de las piernas de los huesos del torso, de manera que la rotación del torso no se transmita a las piernas. Debido a que los efectores finales son objetos que se utilizan para controlar la animación, se procedió a vincularlos a los objetos ficticios. Finalmente, se aplicó un modificador ‘Piel’ para animar la malla del niño mediante la animación del esqueleto, obteniendo así un personaje totalmente animado. Cabe aclarar que para esta escena en particular , falta trabajo por realizar, debido a que se pretende que la animación capte la atención del niño. Resumen: E-028 UNIVERSIDAD NACIONAL DEL NORDEST E Comunicaciones Científicas y Tecnológicas 2005 Editor de texto El archivo ‘.wrl’ obtenido, se manipuló en el editor de texto ‘VrmlPad’ que permite operar, editar e imprimir archivos fuente. Básicamente, los objetos insertados en MAX se muestran en el ‘Árbol de escena’ (Figura 8). Este árbol desdobla la jerarquía de la escena. Para cada nodo, despliega: i) un icono que indica el tipo de nodo (ejemplo: Transform). Cada tipo de nodo tiene un icono particular que está asociado son él [3]. ii) el nombre que se asignó al nodo (ejemplo: parpado_izquierdo). En esta etapa; fue necesario el uso de la ‘Especificación del Lenguaje de Modelado de Realidad Virtual’ para despejar las dudas con respecto al tratamiento de nodos, campos, eventos y scripts. Luego de realizar todas las exploraciones necesarias en la interfaz del editor de texto, se procedió a la visualización del archivo ‘.wrl’ en ‘Cosmo Player’. La Figura 1 muestra parte de la ventana del visualizador. Figura 1. Ejemplo de un modelo de realidad virtual Conclusiones Lo explicado hasta este momento solo es una parte del software educativo que se pretende obtener. En una segunda etapa se tiene previsto aplicar el potencial creativo para diseñar los sistemas fundamentales del cuerpo humano, y lograr la interacción para contribuir .a la enseñanza – aprendizaje de los temas desarrollados. Referencias [1] Anónimo (1999): “Bienvenido al mundo de 3DSMax “, Tutorial de 3D Studio Max R3. [2] Anónimo: “Step by Step of how to implement the VRML nodes into your MAX file”,disponible en www.dform.com/inquiry/tutorials/3dsmax/index/howto.html. [3] Anónimo (2002): “VrmlPad Help”, Temas de ayuda de VrmlPad 2.0. [4] Alvarez, D. “Metodología de desarrollo VRML”. Universidad Politécnica de Valencia, disponible en: http://www.arrakis.es/~dalvarez/. [5] Hilera, J. R.; Oton, S. y Martinez, J. (1999). “Aplicación de la Realidad Virtual en la enseñanza a través de Internet”, disponible en: http://www.ucm.es/info/multidoc/multidoc/revista/num8/hilera-oton.html . Visitado en marzo de 2004. [6] Pumarega, J. L.; Zimmermann, M. y Ortiz, R. “Floppy's VRML97 Tutorial”, Vapour Technology Ltd.; disponible en http://www.w3.org/TR/REC-html40/loose.dtd .