En este tutorial voy a intentar facilitar el aprendizaje y uso de lo necesario en Unity para desarrollar nuestra primera app o juego de Oculus Quest.

Oculus Quest es la última creación de los de Facebook. Antes ya existieron Oculus Rift con la necesidad de usar un ordenador con componentes ligeramente caros y las Oculus Go, una versión no dependiente de Pc ni de teléfono móvil como en el caso de GearVR.

Pero si Oculus Go ya eran inalámbricas, ¿qué nos proporciona Oculus Quest?

Pues bien, Oculus Quest combina lo bueno de ambas plataformas sacrificando un poco la calidad gráfica en pos de la libertad de movimiento sin cables. Tenemos los mandos similares, si no los mismos del nuevo modelo de Oculus Rift, el S (en Oculus Go era 1 mando y con 3dof de movimiento espacial siendo los nuevos 6dof). Tenemos un poco más de potencia que en Oculus Go pero no la que se consigue en Pc al no tener gráfica potente dedicada. En el modelo de Pc Rift S se ha eliminado el uso de sensores externos aplicando el mismo sistema de tracking que en las Oculus Quest, lo cual provoca ligeros fallos como al pegar los mandos a las gafas o si los sacamos del rango de las cámaras incluidas en el casco. Además estas lentes son sensibles a los cambios de luz que no terminan de adaptarse del todo a las pruebas que la gente las ha sometido, pero funcionan bastante bien.

Pero bueno me dejo de introducciones y vamos al tema, crear nuestra app.


Los requisitos que tenemos para desarrollar en unity para Oculus Quest son sencillos:

  • Ordenador Windows o Mac
  • Unity 3D hub y Unity 2019
  • Oculus Quest
  • Cable usb C
  • Red wifi configurada en nuestras Oculus
  • Teléfono Android (No se si IOS vale ya que no tengo)


El primer paso es instalar Unity. Si lo tenemos instalado o lo instalamos de cero, tenemos que asegurarnos de tener instalado el módulo para Android como indico en la imagen. Pulsando en el punto 1, accedemos a las instalaciones de Unity. Pulsando en la versión que queramos modificar o confirmar que esté todo en orden, en la esquina del cuadro de dicha versiones, en el punto 2 vemos 3 puntos que pulsaremos. Ya en la ventana de Add Modules, desplegamos las plataformas en el punto 3 y marcamos ambas cajas de Android y por último pulsamos next en el punto 4.

En el siguiente paso crearemos nuestro proyecto en sí. Para ello seleccionamos 3D en el punto 1, la ruta de nuestro proyecto en el punto 2 y el nombre del proyecto con el que se creará una carpeta con dicho nombre en el punto 3 y pulsamos create en el punto 4.

Una vez se nos abre la interfáz de Unity, nos iremos directamente a la Asset store en la pestaña marcada en la imagen en el punto 1. Buscamos «Oculus» en la barra de búsquedas de la asset store y seleccionamos «Oculus Integration» y pulsamos en «Import» en el punto 3.

Tras importar todos los paquetes de nuestra asset de Oculus, este seguramente nos muestre la ventana de actualización de plugin y utilidades de Oculus como se muestra en la siguiente imagen. Seleccionamos «Yes» y listo.

El siguiente paso es configurar nuestor entorno para que podamos usar gafas VR en nuestro caso las Oculus. Para ello pulsamos en la pestaña «Edit», «Project Settings» y veremos la siguiente imagen del punto 1. Pulsamos en el punt 2, «Player» y buscamos el punto 3 «XR Settings». Nos aseguramos marcar el punto 4 con el icono de Android y añadimos el soporte de Oculus pulsando en el «+» del punto 5.

También tendremos que modificar la API gráfica que usaremos ya que nuestras gafas no funcionan con Vulkan. Para ello vamos en esta misma sección a «Other Settings» en el punto 1 de la siguiente imagen, marcamos «Vulkan» en el punto 2 y pulsamos sobre el «-» del punto 3 para eliminarlo dejando solo el soporte de API de OpenGLES3.

Ahora haremos algo nuevo, que en anteriores dispositivos no era necesario. Pulsamos en la pestaña «Oculus», «Platform» y «Edit Settings» como indica la imagen.

Nos mostrará la siguiente imagen con las «OculusPlatformSettings» donde pondremos el ID de nuestra app que es única y privada. Para ello pulsamos en el botón marcado en la imagen «Create…»

Esto nos llevará a la página de desarrollo de Oculus donde deberemos estar registrados (no estoy seguro si la misma cuenta de las Oculus Quest vale, si no, nos registramos ya que no piden nada especial). Una vez en el dashboard de desarrollador, veremos la siguiente imagen donde aparecerán las aplicaciones que vayamos creando. Pulsamos sobre «Crear una nueva aplicación».

Nos aparecerá una ventana de tipo popup en la que pondremos el nombre de nuestra app o juego y en plataforma pondremos «Oculus Go & Gear VR» del punto 2 y pulsaremos Enviar del punto 3.

Nos devolverá la siguiente imagen donde deberemos copiar el código generado que yo he tachado por seguridad.

De vuelta en Unity, en la misma ventana donde nos habiamos quedado, pegaremos el código que nos han dado en las dos casillas que indico en la imagen. Nos aseguramos de desmarcar «Use Standalone Platform».

Ya tendremos lo más básico configurado así que nos iremos a «File», «build settings» como en cualquier plataforma antes de generar el ejecutable y pulsaremos el punto 1 que es nuestra plataforma, Android. En Texture Compression marcamos «ASTC» del punto 2. (DETALLE IMPORTANTE: Este sistema de compresión es necesario cuando generamos la app o proyecto para las Quest, pero tarda bastante en hacerse ya que optimiza las texturas. Por ello, es recomendable no cambiarlo mientras estemos creando el juego o app en el editor y cambiarlo en el momento de hacerlo definitivo.) y pulsamos en el punto 3 «Switch Platform» para que se configure el entorno para Android.

Este paso puede ser algo confuso si no se realiza con orden. La imagen que os he puesto, son 3 capturas de mi movil, no solo 1. Cuando se adquieren las Oculus Quest, tenemos que configurar nuestra cuenta y gafas en el teléfono. Por tanto, teniendo las gafas conectadas por wifi, accedemos a ellas desde el teléfono en la aplicación de Oculus y seguimos los pasos de las 3 capturas para activar el modo desarrollador. Con esto podremos conectarlas después al ordenador y ejecutar el código de nuestro juego o app, si no lo hacemos bien, las gafas aparecerán en nuestro sistema operativo como una unidad externa tipo disco duro o tarjeta SD…

Si todo se ha hecho correctamente, conectaremos las gafas al ordenador y es posible que nos salga en las gafas un popup pidiendo autorizar la conexión. Con uno de los mandos de las Quest confirmamos y volvemos al ordenador sin desconectar. Deberá salir en el desplegable nuestras gafas como en la imagen y las seleccionamos.

Para probar que todo está correcto y así ejecutar nuestra primera app o demo, buscamos en unity, como en la imagen, en la carpeta «Assets/Oculus/VR/Scenes» y seleccionamos con doble clic la escena GearVrController.

Ya estamos terminando. Como en cualquier proyecto de Unity, para generar el ejecutable os vamos a «File», «Build Settings» y pulsamos sobre «Add OpenScenes» como en la imagen.

Ahora tenemos 2 opciones para probar nuestra demo. Hacemos «Build and Run» con las Quest conectadas y esto compilará el código y lo mandará a las Quest donde veremos nuestra Demo y podremos mover nuestra cámara al mover la cabeza. La segunda opción es hacer «Build» solo y generará el archivo apk donde nosotros le digamos por si queremos compartirlo con alguien para que pruebe nuestras futuras creaciones. Para cargarlo en las Quest, deberemos hacerlo con «adb» o usando el programa que ya ofrecí en este mismo Blog para Oculus Go ya que sigue siendo compatible para instalar y desinstalar nuestras aplicaciones.
Oculus Go & Quest Utility.


Lo más seguro es que la primera vez nos de un error de API Level como el de la imagen.

La solución es sencilla, como muestro en la última imagen, nos vamos a «Edit», «Porject Settings», «Player», «Other Settings» y en «Minimum API Level» seleccionamos la 19 ya que por defecto nos había puesto la 16. Tras esto volvemos a hacer el build y veremos como tras compilarse se nos ejecuta nuestra demo.


Conclusión

Como habeis visto, el proceso la primera vez parece largo pero una vez se hace es sencillo. En próximos tutoriales mostraré como añadir el manejo de los Touch Controllers, como movernos por la escena, como añadir manos a nuestros mandos y todo lo que vaya surgiendo que pueda resultar práctico para todos.




Y sin más me despido, espero que os haya gustado. Iré subiendo más tutoriales del estilo y de todo lo que me parezca curioso o interesante de practicar y aprender. Un saludo y gracias 👍

Si te ha gustado y aún no lo has hecho, puedes suscribirte al blog por correo o siguiéndome en Twitter y así te avisaré con cada nuevo artículo o tutorial para que estés al día.

Categorías: Tutoriales

2 commentarios

kilian soler · 5 julio, 2019 a las 3:33 pm

Hola Javi,
Muy buen tutorial,espero con ganas nuevos capítulos con mas información,estaria bien que hicieras un paso a paso con una scena sencilla ,implementando los mando para poder interactuar minimamente con los objeto,poder coger algun cubo o esfera,y poder ver la colisiones y su sistema de dinamicas,como peso y gravedad.

Muchas gracias por tu tiempo.

    neodreamer · 17 julio, 2019 a las 12:04 am

    Ya está subido un nuevo tutorial con algo de lo que pedías. Próximamente añadiré cosas relacionadas y algún consejo útil

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: