En este post os introduciremos al mundo del desarrollo de aplicaciones para las Microsoft HoloLens.
1. Project Baraboo
En el año 2015, Microsoft presentó al mundo las HoloLens, un proyecto que desde el 2010 tuvo el nombre en código de Project Baraboo. Dicho dispositivo fue lanzado al mercado un año después.
Las Microsoft HoloLens poseen la principal característica de ofrecernos una realidad aumentada/mixta adaptable a nuestro entorno. Mediante el uso de sensores IMU y cámaras de profundidad, realizan un mapeo espacial de nuestro alrededor para posicionarse y reconocer el lugar donde nos encontremos. Esto permite, entre otras cosas, colocar hologramas sobre elementos físicos y mantenerlos en esa posición.
Este dispositivo funciona como un elemento completamente independiente, es decir, no requiere de ningún tipo de hardware externo para funcionar. Como sistema operativo dispone de un Windows 10 que ejecuta únicamente aplicaciones universales de Windows.
Podéis encontrar más detalle de las especificaciones técnicas en este enlace.
2. Requisitos previos
Antes de empezar, debemos cumplir unos requerimientos mínimos a nivel de hardware y software. Serían los siguientes:
- Procesador de 4 núcleos
- 8GB de memoria RAM
- Windows 10 Pro-Enterprise-Education de 64 bits (la versión Home no nos vale debido a que no soporta Hyper-V y lo necesitaremos para poder ejecutar el emulador)
- Recomendable disponer de una GPU dedicada (con la tarjeta integrada del procesador se puede mover el emulador, pero tendríamos un rendimiento muy limitado)
- Visual Studio 2017 con el SDK de UWP y las “Visual Studio Tools for Unity”
- Unity 2017 o 5.6
- Emulador de las HoloLens (podéis descargároslo aquí)
No es estrictamente necesario utilizar Unity para desarrollar sobre HoloLens, ya que podemos hacer una aplicación 3D utilizando otro motor o consumiendo directamente la API de DirectX.
3. Creando «HoloWorld»
Una vez preparado el entorno, vamos a realizar paso a paso una aplicación muy básica que nos servirá para conocer las bases del desarrollo para este dispositivo de Microsoft. A esta aplicación la llamaremos «HoloWorld», y gracias a ella seremos capaces de visualizar un cubo con las HoloLens. Para desarrollar esta aplicación usaremos la versión de Unity 2017.1.0p5 y Visual Studio 2017.
Abrimos Unity y pulsamos “New” para crear un nuevo proyecto (yo lo llamaré “KabelHoloWorld”). Si están activos, deshabilitamos los Unity Analitics, puesto que no nos van a hacer falta para esta aplicación tan básica que vamos a hacer. Pulsamos sobre «Create Project” cuando lo tengamos listo.
Una vez cargado el IDE de Unity, haremos una serie de cambios mínimos que expondremos a continuación (dichos cambios son más o menos comunes en la mayoría de aplicaciones que tengamos que desarrollar para las HoloLens).
3.1. Primeros ajustes
3.1.1. Ajustes de la escena
La cámara es uno de los elementos más importantes. En el panel Hierarchy, buscamos el objeto Main Camera y lo pulsamos para acceder a sus componentes y propiedades. Dado que un proyecto puede tener n escenas, tendremos que hacer estos cambios con cada nueva escena que creemos:
- En el componente Transform, modificamos la posición a (0, 0, 0). Por defecto, la posición viene establecida a (0, 1, -10). Es necesario hacer esto para que el punto de inicio sea el centro.
- En el componente Camera, cambiamos la propiedad Clear Flags a «Solid Color» y el Background a RGBA (0, 0, 0, 0). Esto lo hacemos así dado que no nos interesa generar ningún tipo de fondo (ponemos el color negro porque en las HoloLens éste se representa transparente).
- Cambiamos en Clipping Planes el valor Near. Por defecto aparece en 0.3, pero nosotros lo pondremos en 0.85. Esta propiedad establece la distancia mínima a la que un holograma se podrá ver.
Debería quedar algo así:
3.1.2. Ajustes del proyecto
Sólo tenemos que realizar estos cambios una vez por proyecto, con el objetivo de poder ofrecer una experiencia óptima. El framerate es muy importante en las HoloLens, por lo que tendremos que hacer algunos ajustes en la calidad gráfica. Seleccionamos en el menú superior Edit>Project Settings>Quality, clicamos en la flecha inferior al logo de UWP y ponemos «Very Low”. Éste es un ajuste de calidad inicial que podremos cambiar dependiendo de los requerimientos de la aplicación.
Como próximo paso, le indicaremos a Unity que estamos creando una aplicación holográfica en lugar de una clásica en 2D. Para ello, nos dirigimos a Edit>Project Settings>Player, pulsamos la pestaña con el logo de UWP, buscamos «Other Settings» y seleccionamos «Virtual Reality Supported”.
3.2. Añadiendo el cubo
Una vez realizados estos ajustes iniciales, podremos añadir nuestro cubo a la escena. Para ello, pulsamos el botón «Create» que hay en el panel de Hierachy y seleccionamos 3D Object>Cube. Al igual que hicimos antes con la cámara, pulsamos el nuevo cubo generado y cambiamos su posición, esta vez a (0, 0, 2). Además, le damos una rotación de (45, 0, 45). De este modo, estaremos colocando el cubo que hemos rotado a 2 metros enfrente del usuario.
Si nos vamos a la pestaña Game, deberíamos estar viendo algo así:
Una vez tengamos nuestro cubo, guardamos los cambios haciendo clic en File>Save Scene (o con CTRL+S). Yo he llamado a la escena “HoloWorldScene”.
3.3. Visualizando el cubo sobre las HoloLens
El siguiente paso será visualizar nuestro cubo sobre el dispositivo. Disponemos de dos opciones para hacer esto:
3.3.1. Holographic Remoting Player
Esta opción únicamente se puede realizar sobre unas HoloLens (no emulador) que se encuentren en la misma red que el equipo de desarrollo. Esta opción funciona a modo de preview (con limitaciones), permitiéndonos apreciar cómo se vería nuestra aplicación en las HoloLens.
Instalamos la app Holographic Remoting Player desde el Windows Store de las HoloLens. La arrancamos y esperamos a que muestre la IP del dispositivo.
Una vez obtengamos dicha IP, nos vamos a Unity, abrimos Window>Holographic Emulation, establecemos el Emulation Mode a «Remote to Device”, introducimos la IP obtenida y hacemos clic en «Connect». En caso de no conseguir conectarnos, probamos a reducir el bitrate máximo.
Estando ya conectados, pulsamos sobre el icono de reproducción de Unity para visualizar nuestra escena directamente sobre las HoloLens.
3.3.2. Build Solution
A diferencia de la primera opción, ésta es menos rápida pero más fiable de cara a cómo se va a ver la aplicación.
El proceso consiste en generar una solución UWP de Visual Studio y realizar un deploy de dicha solución, ya sea en el emulador o en las HoloLens.
Para ello, nos vamos a File>Build Settings y, pulsando el botón «Switch Platform», nos cambiamos a Universal Windows Platform. Una vez hecho el cambio, modificamos sus parámetros tal como aparecen en la siguiente imagen.
Una vez configurada la Build, pulsamos el botón «Build» y seleccionamos la carpeta donde queremos generar la solución. Ya generada, la abrimos desde Visual Studio.
Tendremos que configurar la arquitectura a x86 y seleccionar el emulador (o las HoloLens en caso de disponer de unas conectadas).
Pulsando el icono de reproducción se ejecutará el emulador y nuestra aplicación se desplegará en el mismo, abriéndose por sí sola cuando el proceso termine. Si todo ha ido bien, veremos el cubo blanco.
¡Con esto ya tendríamos nuestro «HoloWorld» listo y desplegado!
Siguientes pasos
Conociendo ya las bases del desarrollo para HoloLens, lo siguiente sería incluir MixedRealityToolkit en nuestras aplicaciones para sacarle todo el potencial a esta librería, la cual está formada por diversos componentes (inputs, spatial mapping, UX, sharing, etc.) que acelerarán y facilitarán el proceso de desarrollo.
¡Accede ya a nuestra sección de videos para conocer mejor nuestros proyectos!
[su_button url=»http://www.kabel.es/videos/» target=»blank» background=»#31a1ef» size=»7″ center=»yes»]Acceder[/su_button]
Podéis comentarnos lo que sea en info@kabel.es.
También podéis seguirnos en Twitter, LinkedIn y Facebook.
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0
Internacional.