La caja de herramientas Unity* Toolkit para la tecnología Intel® RealSense™ es un paquete estándar de Unity. Contiene todos los dll y los script necesarios para ejecutar Intel RealSense desde Unity. Esta caja de herramientas hace que las propiedades de scripting estén disponibles en Inspector, lo cual facilita el uso.
Objetivo
El objetivo de esta guía es usar Unity Toolkit para crear una aplicación simple de RealSense. Por lo tanto, no vamos a ver todas las opciones que existen para el script de rotación dado.
Qué incluye la guía
La guía incluye los pasos necesarios para hacer girar un cubo con el movimiento de la mano.
Conocimientos previos
Se debe haber leído el archivo sdktoolkit.pdf, para tener una idea general de cómo funciona este complemento de Unity. Si se instaló el SDK de Intel RealSense en el lugar predeterminado, el archivo está en la carpeta Program Files (x86)\Intel\RSSDK\doc\PDF. En esta guía se supone también que el lector tiene conocimientos básicos de Unity, como importar paquetes externos, agregar un cubo a una escena y aplicar un script a un objeto de juego.
Requisitos
Unity Professional 4.1 o superior.
Una cámara 3D Intel® RealSense™ integrada en un dispositivo o externa.
Comencemos
Cómo importar el módulo de Visual Studio* (opcional)
Aunque este paso no es necesario, uso el módulo de ampliación porque Visual Studio me gusta más que el IDE MonoDevelop*. El módulo se puede descargar desde http://unityvs.com/.
Si no vemos esta opción, tendremos que importarlo manualmente desde el lugar donde se instaló en el disco rígido.
Importación de enemy ship de Unity*
Pensé que esta demostración sería más entretenida si usamos el objeto de juego "enemy ship" (nave enemiga), en lugar de un cubo sin ninguna gracia. Este objeto se puede obtener del paquete gratuito Space Shooter de Unity, disponible en la tienda de Unity. No me interesaba el paquete entero, por eso, en un proyecto de Unity aparte, importé el paquete Space Shooter y después exporté solo la nave enemiga. Sin embargo, se trata de una preferencia personal. También se puede usar un simple cubo para esta guía.
Importación de Unity Toolkit
El paquete que contiene Unity Toolkit para Intel RealSense incluye todo lo necesario para manipular objetos de juego. El paquete Unity se encuentra en la carpeta \RSSDK\Framework\Unity. Si instalamos el SDK de Intel® RealSense™ en la ubicación predeterminada, la carpeta RSSDK estará en C:\Program Files (x86).
Unity Toolkit se importa de la misma manera que cualquier otro paquete. Al hacerlo, hay opciones que permiten elegir lo que uno quiere. Para los fines de esta guía, usaremos las opciones predeterminadas e importaremos todo.
Como se puede ver en la imagen siguiente, ahora hay varias carpetas nuevas en la carpeta Assets.
- Plugins y Plugins.Managed contienen los dll necesarios para usar el SDK de Intel RealSense.
- RSUnityToolkit está en la carpeta que contiene todos los scripts y recursos para la caja de herramientas.
No entraremos en detalles acerca de qué es cada carpeta. Eso lo dejo como tarea.
Agreguemos la nave a la escena. Se puede usar cualquier objeto de juego 3D que se prefiera. A mí me gusta este. Todos los scripts funcionan bien con recursos estándares, como es un cubo tridimensional.
Agreguemos una luz direccional para iluminar un poco la nave y que se pueda ver mejor.
Cómo dar escala a un objeto de juego
Para sumar la posibilidad de cambio de escala a un objeto de juego, tenemos que agregar el script ScaleAction. Se encuentra en la carpeta RSUnityToolkit y en la subcarpeta Actions. Solo hay que arrastrar y soltar el script directamente sobre la nave enemiga en la vista de escena.
Ahora se pueden ver los parámetros del script ScaleAction en Unity Inspector.
En este paso, contraje todos los parámetros para mostrar las tres áreas básicas del script de escala: Start Event (evento de inicio), Scale Trigger (desencadenador de escala) y Stop Event (evento de detención).
Ahora comenzamos a establecer los parámetros
- Empecemos con Start Event. Expandimos la flecha para mostrar el desencadenador predeterminado. En este caso no hay que usar “Gesture Detected” (gesto detectado). Hay que usar “Hand Detected” (mano detectada). Hacemos clic con el botón derecho en “Gesture Detected” y seleccionamos Remove (eliminar)
- En el botón Add (agregar) de Start Event, hacemos clic y seleccionamos “Hand Detected”.
- Bajo “Which Hand” (qué mano), seleccionamos y elegimos ACCESS_ORDER_RIGHT_HANDS.
La configuración debería verse como en la captura siguiente:
Ahora queremos configurar el evento de detención.
- Expandimos Stop Event y eliminamos “Gesture Lost” (pérdida de gesto).
- Hacemos clic en el botón Add de Stop Event y elegimos “Hand Lost” (sin detección de mano).
- Junto a “Which Hand”, seleccionamos ACCESS_ORDER_RIGHT_HANDS.
La configuración debería verse como en la captura siguiente:
No tendremos que cambiar “Scale Trigger” porque tiene una sola opción. Así que usaremos el valor predeterminado.
El conjunto entero de parámetros debería verse en este punto como se muestra en la captura:
¡Felicitaciones! Ya está todo listo.
Guardamos la escena.
Guardamos el proyecto.
¡Y a ejecutar el juego!