Realidad Virtual para mejorar un game engine con una herramienta de modelado 3d y soporte de Kinect

El objetivo de este proyecto está dividido en dos partes. La primera consta de realizar el prototipo de un sistema que permita la creación de esculturas digitales tomando como referencia el movimiento de las manos en un espacio real. El segundo, trata de desarrollar una herramienta para un game engine en específico que facilite a los desarrolladores de videojuegos el uso de un sensor de profundidad (Kinect).

1. Sistema para la creación de esculturas digitales


El sistema cuenta con dos formas de modelado. El modelado geométrico utiliza como base algunos elementos previamente definidos, para que el usuario pueda modificar la forma y geometría de dichos elementos base. El segundo tipo de modelado es el libre, en esta forma de modelar, no existe una figura base, sino que el usuario utiliza la punta de su dedo índice para indicar al sistema en dónde quiere que cree una geometría.

Para desarrollar esta parte del proyecto se trabajó primordialmente en el reconocimiento de las manos y dedos con un Kinect utilizando una nube de puntos. Además, se requirió diferenciar la mano derecha de la mano izquierda. Al mismo tiempo, se desarrolló el sistema para poder modificar la geometría de los objetos, para mas tarde, integrar estas dos partes de manera que la geometría de los objetos fuera modificada de acuerdo a la información que mandaba en Kinect con respecto al movimiento de las manos.

Existen varias herramientas para poder manipular la geometría como son la rotación, translación, figuras base, crear, borrar y suavizar la geometría. Se buscó tener una interfaz sencilla e intuitiva, utilizando la mano izquierda para manejar los menús, y la mano derecha para hacer las modificaciones geométricas a la escultura digital. Los usuarios tienen la opción de exportar y guardar su escultura digital.

Por otra parte, el proyecto cuenta con un sistema de juego, en el cuál dos jugadores tienen que hacer la escultura digital de la palabra que el juego les indique, para después mandárselo al otro jugador, quien tiene que adivinar que fue lo que modeló su compañero.

Para obtener animaciones realistas, simulaciones y/o visualizaciones de los movimientos musculares, se quiere generar un modelo basado en Lattice Boltzmann y movimientos de activación biofísicos. Con eso, se podrá simular mejor su funcionamiento y simular animaciones de movimientos humanos de manera más realista y precisa.

2. Easy Kinect Plugin


En esta segunda parte del proyecto se desarrolló un plugin que sirva para facilitar la integración de un sensor de profundidad (Kinect) en Unity, que es uno de los game engines mas usados por los desarrolladores de videojuegos.

El uso de este plugin es sumamente sencillo, pues está preconfigurado para leer los huesos de un rig de un modelo 3D y puede usarse para una o dos personas. Además, el plugin cuenta con movimientos predeterminados que permiten reconocer si una persona está realizando algunos movimientos como levantar los brazos o saltar.


Créditos

Este proyecto fue realizado gracias al apoyo de Google Faculty Research Award

Participantes del proyecto:

Dr. Moisés Alencastre
Dra. Lourdes Muñoz
Dr. Gilberto Echeverría
Dr. Milton Elías
Ing. Jonathan Langford (IMT)

Ing. Octavio Navarro (DCC)
Ing. Cristina Manrique (ITC)
Lic. Cecilia Silva (LAD)
Ing. Mario Maqueo (DCI)
Ing. Hiugatzi Maldonado (ITC)

Ing. Miguel Ángel Ortíz (ISDR)
Ing. Andrés Osorio (IMT)
Ing. José Luis Valencia (ITC)
Ing. Estefanía Torres (ITC)
Ing. Mauricio Radín (ITC)
Ing. Rodrigo Forsek (ITC)