Realidad virtual: lo que necesitas saber sobre los SDKs de Google Cardboard

5 min lectura
Desarrolladores / 25 noviembre 2015
Realidad virtual: lo que necesitas saber sobre los SDKs de Google Cardboard
Realidad virtual: lo que necesitas saber sobre los SDKs de Google Cardboard

BBVA API Market

Google anuncia nuevos productos a la velocidad de un Ferrari en una autopista alemana. Muchos de ellos se convierten en un gran éxito y otros no tienen tanta suerte. Uno de esos últimos lanzamientos con gran acogida son sus gafas de cartón de realidad virtual, las Google Cardboard, presentada en la conferencia Google I/O de junio de 2014. Hoy en día, la realidad virtual es campo de experimentación e innovación increíble para grandes empresas.

La realidad virtual es un sector de negocio en pleno crecimiento. De hecho, algunos informes sitúan una subida de ingresos en 2015 muy por encima del 100% y en los próximos años hasta 2018 un aumento más moderado, pero aún así realmente interesante. El portal de mercados y datos Statista.com baraja una previsión que cerraría 2018 con unos ingresos de 5.200 millones de dólares. Progresión: 2.300 millones en 2015; 3.800 en 2016 y 4.600 en 2017. A eso habría que sumar los 24 millones de dispositivos de RV vendidos en 2018.

La idea de Google con Cardboard es el desarrollo de herramientas de realidad virtual accesibles para todos: unas gafas de cartón baratas, sencillas de montar con un par de pliegues, y un móvil. Nada más. Para ello, Google facilita a los desarrolladores una serie de Kits de Desarrollo de Aplicaciones (SDKs) para el sistema operativo Android y Unity, plataforma para el desarrollo de videojuegos en 3D. Objetivo: simplificar el diseño de apps de realidad virtual.

El SDK para Android

El SDK de Android permite el desarrollo de aplicaciones que, con el uso de las gafas del gran buscador, son capaces de mostrar imágenes en 3D que reaccionan ante el movimiento de la cabeza. El imán de las Cardboard, colocado en el lateral, permite interactuar con el smartphone Android, modificando el comportamiento de la brújula del teléfono y facilitando que la aplicación de realidad virtual funcione correctamente sin tocar el dispositivo.

Según la información que facilita el propio buscador, el SDK simplifica algunas tareas importantes para el desarrollo de la realidad virtual:

– Corrección de la distorsión de las gafas de realidad virtual.

– Seguimiento del movimiento de la cabeza del usuario.

– Calibración en 3D.

– Renderización en paralelo.

– Configuración de la geometría estereoscópica.

– Manejo de eventos de entrada del usuario.

¿Cómo se crea una aplicación de demostración de realidad virtual a través del SDK de Android y se ejecuta dentro de un teléfono inteligente? Guía rápida en cinco pasos:

1. Cualquier aplicación necesita unos requerimientos mínimos:

– Entorno de Desarrollo Integrado Android Studio 1.0 o posterior.

– La versión 19 del SDK de Android.

– Teléfono Android con sistema operativo Jelly Bean o posterior.

2. La documentación de Google facilita un código de ejemplo de GitHub como aplicación de demostración, que es necesario clonar para empezar a desarrollar cualquier proyecto propio que pretendamos lanzar. A la hora de clonar esta app solo tenemos que ejecutar el siguiente comando:

git clone https://github.com/googlesamples/cardboard-java.git

3. Dos pasos más para la creación de una aplicación de demostración:

– Abrir Android Studio y seleccionar Import Non-Android Studio Project en la página de Welcome. Se selecciona el archivo build.gradle ubicado en la raíz de los archivos del código de muestra ejecutado anteriormente y se da al OK. Esto abre un proyecto llamado CardboardSample en el editor Android Studio, el cual contiene la muestra de la app de prueba Treasure Hunt. El código de GitHub de la documentación pertenece a esta app.

– Conectar el teléfono Android al equipo de escritorio, permitir la conexión dándole a Run y después apretar la opción Run CardBoardSample para compilar y ejecutar la app en el móvil.

Para desarrollar cualquier aplicación de RV en GoogleCardboard es necesario CardboardActivity, la actividad básica para integrar los dispositivos Cardboard. Permite al desarrollador la creación de eventos para interactuar con Cardboard y controlar algunos de los detalles de una experiencia de RV. CardboardActivity utiliza el modo pantalla completa inmersiva porque la vista de RV en las gafas solo representa la experiencia gráfica así.

Todos esos elementos gráficos de la interfaz de usuario vienen definidos por la vista del SDK de Google Cardboard para Android, la CardboardView, una variedad específica de GLSurfaceView para creación de contenido en 3D.

Así se define una vista en el SDK de Cardboard:

<com.google.vrtoolkit.cardboard.CardboardView
android:id=”@+id/cardboard_view
android:layout_width=”fill_parent”
android:layout_height=”fill_parent” />

Y así se ejecuta mediante el método onCreate():

**
* Sets the view to our CardboardView and initializes the transformation matrices we will use
* to render our scene.
* @param savedInstanceState
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.common_ui);
CardboardView cardboardView = (CardboardView) findViewById(R.id.cardboard_view);
// Associate a CardboardView.StereoRenderer with cardboardView.
cardboardView.setRenderer(this);
// Associate the cardboardView with this activity.
setCardboardView(cardboardView);

    // Initialize other objects here.

}

4. Google también facilita información relevante a los desarrolladores con respecto al proceso de representación de la vista, el uso del método onNewFrame() para programar la lógica de la representación visual, la utilización del método onDrawEye() para la configuración a nivel ocular de la gafas y el manejo de las entradas del visor de las Cardboard, cuando el usuario usa el imán para cambiar el comportamiento de la aplicación.

Siempre que el desarrollador quiera introducir un evento distinto en el comportamiento de la aplicación cuando el usuario toca el imán lateral, es necesario reemplazar CardboardActivity.onCardboardTrigger() en la actividad de la app. Al final es la forma de responder a situaciones concretas.

5. ¿Cómo empiezo a crear mi propia aplicación usando la aplicación de demostración? Descargar los archivos jar de la carpeta libs de esa aplicación de ejemplo y guardarlos en la carpeta app/libs del proyecto de app personal. Después se incorporan estas líneas de código en el archivo app/build.gradle, lo que permite al programador empezar a usar sin problemas el SDK de Android:

 dependencies {

compile fileTree(dir: ‘libs’, include: [‘*.jar’])
}

El SDK de Unity

El SDK de Cardboard para Unity permite la creación de experencias de realidad virtual tanto para dispositivos Android como iOS ejecutadas en las gafas de cartón del gran buscador. Algunas de sus funciones permiten:

– Crear de aplicaciones totalmente nuevas con Unity o bien adaptar una aplicación 3D hecha en esta plataforma a RV.

– Seguimiento del movimiento de la cabeza del usuario.

– Renderización estereoscópica en paralelo.

– Configuración estereoscópica automática para un modelo concreto de Cardboard.

– Corrección de distorsión para las Cardboard.

– Detección de eventos y entradas para la Cardboard.

– Corrección de desvío de giro automático.

– Configuración de los parámetros de los auriculares.

– Ajusta el nivel estereoscópico de forma dinámica para reducir el cansancio ocular del usuario al usar las gafas de RV.

– Determina la orientación de la mirada del usuario.

– Permite la interacción con elementos de la interfaz de usuario de Canvas utilizando, por ejemplo, la mirada.

– Respeta los efectos de zoom de la cámara, compatibles con el movimiento de la cabeza del usuario.

¿Cómo empezamos a usar este SDK tanto para Android como para iOS?

Hay varios pasos fijos tanto si queremos desarrollar una aplicación de realidad virtual para el sistema operativo de Google como el de Apple.

– Descargar la última versión de Unity.

– Descargar el SDK de Cardboard específico para Unity.

– Descargar la demostración de Cardboard para Unity.

– Solo en el caso de Android, el desarrollador debe descargar el SDK específico para dispositivos con este sistema operativo.

– Abrir Unity y crear un proyecto nuevo.

En el caso de Android, el siguiente paso sería importar y previsualizar la escena de demostración, implementarla en el dispositivo y ejecutarla.

En el caso de iOS es algo más complejo. La implementación del proyecto se hace en Xcode, en el entorno de desarrollo integrado de aplicaciones para Apple. El proceso de diseño dentro de Xcode está en la documentación proporcionada por Google para el desarrollo de apps en ese entorno.

En este vídeo se puede ver cómo se clona la demostración de GitHub y desarrollar una escena de realidad virtual utilizando la plataforma Unity:

Síguenos en @BBVAAPIMarket

 

También podría interesarte