Preparando el entorno para Unreal Engine 4 – Android

Tutorial2

Bueno, ya gasté mis primeros $19 USD en Unreal Engine 4, y ahora que?. Suponiendo que la idea es desarrollar con Android como objetivo, lo siguiente es tener un entorno con el que pasar los desarrollos del editor a un dispositivo físico, debido a que una máquina virtual de android no podrá soportar la carga gráfica del motor.

Para este tutorial se necesitan:

  1. Conocimientos básicos de Android y programación para este plataforma y ningún conocimiento previo en Unreal Engine.
  2. Tener la licencia de Unreal Engine 4.
  3. Conexión a internet , preferible de buen ancho de banda.
  4. Un dispositivo Android de buen poder de gráfico y de cómputo. Para el tutorial se está usando un Nexus 7 2013 que tiene un procesador Qualcomm S4 Pro, también pueden funcionar un Nexus 5, Htc One, Galaxy S4 – S5, galaxy note 3 y en general cualquier celular o tablet android de gama media-alta o alta liberado en el último año.
  5. Un PC con características altas, especialmente en procesador, para este tutorial se usó:
  • Procesador Intel  4770
  • Tarjeta de video Nvidia Geforce Gtx 560 ti
  • 16 GB de Ram  DDR 3 1600 Mhz
  • Samsung 840 SSD 120 GB para S.O. y Toshiba 2TB 7200 rpm 64Mb cache para el engine y requisitos.

Para empezar es necesario descargar el motor, son unos buenos 7GB para la instalación básica. Al terminar se presenta el launcher del engine:

HelloScreen

Este tutorial no se enfoca aún en crear contenido original, por lo que se va a utilizar uno de los magníficos ejemplos proporcionados por Epic Games sin costo adicional. Estos paquetes de ejemplo se ofrecen a través del marketplace, que por lo ofrecido parece ser un portal no solamente ejemplos, sino también contenido pago para acelerar el desarrollo de aplicaciones 3d. Por el único elemento pago es el Realistic Weapon Pack que se ofrece por $29 USD. Para este tutorial nos interesa instalar Mobile Temple.

marketplace

Una vez instalado podemos acceder mediante el Open del menu de My Content. Se abrirá una instancia del editor con el demo de Mobile Temple. Desde este momento se puede observar una de las grandes fortalezas de Unreal Engine 4, sin la necesidad de tener un dispositivo android donde probar el contenido, podemos entrar en alguno de los modos para ésto a saber:

simlate

  • Simulate: Permite dar “play” al mundo manteniendo éste  dentro del editor, genera un modo de vuelo libre sin colisiones ni limitaciones del jugador, con el mundo animado, pero sin lanzar los triggers destinados a interactuar con el jugador. También permite “poseer”, lo que hace que la simulación pase a la perspectiva dee jugador.
  • Play: Lanza el contenido en modo jugador bien sea en una ventana flotante o en otra pestaña del navegador. Es un punto intermedio entre la simulación y como se verá desplegado el juego.
  • Launch: Permite elegir un objetivo contra el que desplegar el juego. Por defecto permite desplegar al PC donde está funcionando el editor, pero es el objetivo de este tutorial hacer un nuevo target de despliegue en un celular o tablet con Android. Antes de desplegar sobre un target se genera un proceso denominado Cooking, en donde el contenido es ajustado a la versión del motor en que se va a ejecutar.

El contenido que vemos en el editor no es exactamente como se verá en nuestro dispositivo android, pero es una versión muy cercana, Unreal Engine 4 intentará genera mipmaps y compilar los materiales en shaders de OpenGl ES por ejemplo.

El siguiente paso es configurar el entorno. Epic Games en sus tutoriales propone dos alternativas, bien sea configurando cada uno de los componente por aparte o utilizando el TADP (Tegra Android Development Pack) de Nvidia. Este tutorial revisa ambos métodos, pero el método recomendado es utilizando TADP, la alternativa se mostrará solamente por saber realmente cuales son los prerequisitos.

Método manual

Para todos los componentes en el método manual es necesario ajustar las variables de entorno. Para ajustar una variable de entorno es necesario a Computador->Propiedades->Configuración Avanzada del Sistema->Variables de Entorno y agregar una nueva variable de entorno de sistema indicando el nombre y la dirección completa de la carpeta donde se instaló el componente.

envVariables

Adicional hay que modificar la variable path, agregando la ruta donde se encuentra el binario del componente instalado, con el fin de poder acceder a los ejecutables del aplicativo directamente desde la consola.

Para el método manual tenemos que instalar y configurar los siguientes componentes:

  • Java Development Kit: La documentación de Unreal Engine 4 no es clara sobre cual versión se debe instalar, pero generalmente Google recomienda Java Versión 6 para el desarrollo sobre Android SDK. El JDK se puede conseguir en el Java Archive de Oracle. Una vez instalado es necesario configurar la variable de entorno JAVA_HOME apuntando al directorio donde se instalo el JDK, a la variable PATH se le agrega %JAVA_HOME%\bin
  • Ant tool: Basta descargar y descomprimir en un directorio la herramienta, la documentación recomienda versión 1.8 o superior. Se puede descargar desde la página de ANT . Se debe configurar la variable ANT_HOME como la carpeta donde se descomprimió la herramienta y agregar a PATH  %ANT_HOME%\bin .
  • Android SDK: Android ofrece un instalador para cada uno de sus componente y versiones del instalador. Para este componente descargar desde la página de desarrollo de Android. Dentro de los componetes a instalar están las revisiones de Android 4.0 en adelante, SDK Tools, Plataform Tools y el driver ADB, este último es importante para poder conectarse al dispositivo. También hay que configurar la variable ANDROID_HOME y agregar a PATH %ANDROID_HOME%\plataform-tools.
  • Android NDK: La documentación indica que este componente es opcional. Se baja desde la página de Android NDK, basta descomprimir y agregar la variable NDKROOT en el directorio donde se extrajo y agregar la variable de PATH %NDKROOT%

Método TADP

Para el método mediante TADP se debe utilizar el instalador que se encuentra en la carpeta donde se instaló UE4  \Engine\Extras\Android\tadp-2.0r8-windows.exe , sobre este instalador es importante instalar el Android SDK, Android NDK, Java JDK, Ant y Nsight, los otros componentes son opcionales, aunque personalmente prefiero también  instalar cygwin. El instalador hace toda la magia y cuando termina el entorno está listo para utilizar UE4 con Android.

Configurar el dispositivo

Con el fin de que UE4 pueda ver el dispositivo y mover proyectos a éste se deben hacer unos pequeños ajustes. En Android se debe ir a:

  • Configuración->Opciones del programador->Depuración por USB y activar
  • Configuración->Seguridad->Fuentes Desconocidas y activar.

Se debe conectar al PC por USB y en este momento el dispositivo Android se debe detectar a través del driver ADB en vez de dispositivo MTP, PTP o Mass Storage Device . Para estar seguros se puede abrir una consola de comandos y teclear el comando.

  • ADB devices

La lista resultado de este comando debe contener el dispositivo Android conectado.

Lanzar el proyecto

Si todo está correctamente configurado, ahora en UE4 el dispositivo debería ser reconocido en la pestaña de Lanzar. Puede que el dispositivo demore un tiempo corto en ser detectado por UE4, pero no mas de un par de minutos después de iniciar el motor.

Ahora solo falta dar Lanzar y seleccionar el dispositivo Android conectado. UE4 empezará un proceso denominado cooking.

Cooking Log

Aquí es donde es importante tener un buen procesador, el proceso se demora alrededor de media hora en el PC mencionado al comienzo, el PC mientras tanto muestra estas estadísticas.

Cooking

La escena de demostración no es muy grande ni tiene modelos dinámicos, aunque si posee una gran cantidad de efectos para mostrar las características de UE4 , es de esperar que a medida que los proyectos crezcan se requieran horas para hacer cooking.

Por último, después de finalizar el cooking, la aplicación será lanzada en el dispositivo. Con esto ya podemos pasar nuestros proyectos en UE4 a cualquier dispositivo Android. Para este caso se usó el Nexus 7 2013, el rendimiento es todavía no está a la par de las exigencias del motor, pero teniendo en cuenta que es un procesador dos generaciones atrás de la actual (Qualcomm Snapdragon S4 Pro vs Qualcomm Snapdragon 801), es de esperar que la actual generación de alta gama y la siguiente generación de gama media sean perfectas para el motor.

InDevice

Compartir esta entrada

DiggReddit