miércoles, 29 de marzo de 2017

Experimentación cambios de gravedad en Oculus Rift


Para el desarrollo de esta semana, se planteó realizar un experimento de experiencia de usuario, El cual buscaba a través de VR ver cómo sería el manejo de un vehículo en diferentes gravedades, como lo son estar en la Tierra, en la Luna, o en el espacio. Y de esta manera, poder evaluar el efecto de "VR sickness" y su relación con conceptos físicos como son la fuerza de gravedad.

Para esto, se desarrolló el código para cambiar las físicas del escenario, esto se puede hacer en Unity a través del atributo Physics.gravity. Y de igual manera, se le informa de esta modificación al usuario a través de los cambios de escenarios en el SkyBox del juego.

De esta forma, se generó una experiencia de usuario, en la cual, se notó una disminución en el "VR sickness", en la medida que el usuario estaba consciente del cambio de las físicas en el ambiente, que no son similares a las del mundo real, por lo que el mareo producido por la inmersión en el nuevo ambiente se disminuye con respecto a un escenario más realista. El resultado de este experimento se puede apreciar en los siguientes vídeos: 


sábado, 25 de marzo de 2017

Integración de Oculus Rift y G29 Driving Force


Durante el trabajo de esta semana, se buscó obtener una experiencia más real del ambiente virtual, a la vez que se disminuye el factor de "Virtual Reality Sickness". Para esto, se decidió integrar al Oculus Rift el G29 Driving Force manufacturado por Logitech.

De esta forma, definimos como control de juego el manubrio para girar de izquierda a derecha, y el acelerador y freno para mover el vehículo. Adicionalmente, se importó un asset de un vehículo para simular donde estaría ubicado el usuario.

El resultado final del experimento se muestra en los siguientes videos. Y se concluye que, efectivamente el tener una silla y un manubrio disminuye el factor de "Sickness" en el contexto de carros en realidad virtual. Es necesario trabajar con cuidado en aspectos como calibración de la aceleración y la velocidad de giro, para poder obtener una mejor experiencia de usuario.


miércoles, 15 de marzo de 2017

Oculus Rift + Unity 5


Para el desarrollo de esta semana, una vez instalado y configurado Oculus Rift en el PC, lo que resta es integrarlo con nuestra aplicación para convertirla en VR. En el caso de Unity 5, desarrollamos una pista de carreras en primera persona para este fin. Mostraremos entonces los pasos necesarios para convertir nuestra aplicación a VR.

Lo primero es, ir a Edit -> Project Settings -> Player. Esto nos ubicará una serie de opciones en el inspector de Unity acerca de la configuración del jugador. 

Las opciones se dividen en este caso, dependiendo si el proyecto se enfoca en VR para dispositivos móviles (v.g. Android), o aplicaciones de PC. En este caso, al ser la aplicación para PC, nos centraremos en la pestaña con símbolo "download". Y en la sección Other Settings elegiremos la opción de Virtual Reality Supported; y seleccionamos Oculus en caso que este no se detecte automáticamente.

Con esto, hemos configurado nuestro dispositivo para que la cámara principal pueda ser controlada por el HMD ofrecido por Oculus, y que este mismo refleje el escenario de nuestra aplicación vista desde la cámara. En el caso de nuestra aplicación, al ser primera persona, es suficiente agregar la cámara principal como hijo del Player, y controlar su movimiento por medio de scripts.

El resultado de este proceso se puede apreciar en los siguientes videos, por lo que en la próxima ocasión, se revisará el tema de buenas prácticas en el desarrollo de aplicaciones VR.


sábado, 11 de marzo de 2017

Introducción e instalación de Oculus Rift

Para el segundo ciclo de aprendizaje, se decidió trabajar en la tecnología Oculus Rift. El Oculus Rift, es un sistema de realidad virtual el cual integra HMD (Head Mounted Device), constellation sensor, y controles. Para poder usar este sistema, se requiere configurar el computador a través del instalador de Oculus, el cual se puede encontrar en el siguiente enlace. Una vez realizado este proceso, y de conectar y configurar el hardware de Oculus, es posible probar el dispositivo.

A través de la interfaz visible al usuario desde el HMD, es posible seleccionar/comprar aplicaciones y juegos compatibles con este sistema:


Uno de los aplicaciones ofrecidos por Oculus es el Dream Deck, el cual expone diferentes escenas a modo de muestra del tipo de experiencia que se le puede ofrecer al usuario con este dispositivo.

Por lo tanto, durante las siguientes semanas, se explorarán las buenas prácticas para el desarrollo de ambientes virtuales y su integración con otros ambientes de desarrollo como Unity.

miércoles, 8 de marzo de 2017

Finalización del ciclo de trabajo de Haptic


Después de varias semanas de aprendizaje, se concluye el ciclo de desarrollo de Haptic a través del demo de tower defense en primera persona. En este caso, se agregó la funcionalidad de "shield" a la aplicación. Con el fin de poder extender las mecánicas del juego.

En este caso, el jugador podrá invocar un escudo que lo protegerá de máximo tres ataques enemigos antes que este desaparezca del escenario. Este escudo podrá ser movido por el usuario a voluntad sobre el escenario a través del uso del Haptic. Una vez el escudo ha desaparecido del escenario, este tardará un tiempo en recargarse antes de poder volver a ser usado.

Finalmente, una vez cargado el 100% del escudo, el jugador será capaz de invocarlo nuevamente en el escenario a través del botón secundario del Haptic.

Adicional a esta mecánica, se implementó un sistema de puntuación, el cual le da 10 puntos al jugador por derrotar a enemigos usando bombas, y 5 puntos por defenderse usando el escudo. Y de igual manera, se implementa un sistema para aumentar la velocidad de los enemigos gradualmente  a medida que el jugador avanza en la partida; para aumentar la dificultad del mismo.

Con esto se muestran los resultados obtenidos en los siguientes videos, y se continuará con el proceso de aprendizaje de una tecnología HMD (Head Mounted Device) en la siguiente iteración:



miércoles, 1 de marzo de 2017

Creacion de juego interactivo con Haptic y Assets Unity 5



Para el trabajo de esta semana, se decidió crear un juego simple que integrara los Assets presentes en Unity con el uso del Haptic de Geomagic Touch.

Para esto, se creó un juego de tipo Tower defense en primera persona, en la cual la mecánica principal es usar el Haptic a modo de plataforma móvil para desplazar bombas en orden de derrotar enemigos específicos y evitar que alcancen al jugador.

Para esto, se importaron de la tienda de Unity asserts para la reconstrucción de un escenario forestal, en el cual el jugador será perseguido por tres tipos de enemigos, robots, osos, y zombies


Para defenderse, el jugador tendrá la oportunidad de hacer aparecer de forma aleatoria tres tipos de bombas en el escenario, "Atom" que sirve para derrotar a los robots, "Spikes" a los osos, y "Bombs" a los zombies. De forma que, un enemigo solo puede ser derrotado con el tipo de bomba adecuada.



Estas bombas aparecerán de forma aleatoria a la izquierda, al frente, y a la derecha del jugador al presionar las teclas "A", "S", y "D" respectivamente. Mientras que se esté presionando la tecla, la bomba estará en el aire cambiando de forma aleatoria, una vez se suelta la tecla, esta cae y el jugador debe usar rápidamente el Haptic para impulsarla en el escenario. 

En caso que el jugador falle y lo alcance un enemigo, aparecerá la cara del zombi enfrente del enemigo y será Game Over, para reiniciar el nivel se puede presionar la tecla "N".


Finalmente, se muestran videos de los gameplays resultantes del trabajo de esta semana: