El tutor de nuestro curso online de Desarrollo de Aplicaciones para Android, Víctor Ramírez Las,…
Proyecto básico con Unity 3D
4.
Proyecto básico con Unity 3D
En esta publicación, describiremos a grandes rasgos un proyecto muy básico en Unity 3D. Nos servirá para ver diferentes elementos que servirán de base para la realización de un ‘juego en primera persona’ (la escena se verá desde el punto de vista del personaje) y en un entorno 3D. Puedes descargar el proyecto al final de este tutorial.
Notas aclaratorias:
- Vamos a presentar cada elemento de forma esquemática. En posteriores tutoriales, tendremos la oportunidad de ver más en detalle esos elementos, como pueden ser la cámara, la iluminación o la configuración de un terreno.
- Este ejemplo lo vamos a orientar a generar una versión para dispositivo móvil Android con interfaz táctil (igual valdría para dispositivo iOS). Para ello vamos a emplear los recursos (prefabs y componentes) que proporcionaba el paquete «Standard Assets (Mobile)«. Este package estaba disponible en la versión Unity 4.5 pero no en la 5.0. Aunque este proyecto, que puedes descargar más abajo, incluye estos Assets y funciona en la 5.0, la forma de plantear la interfaz táctil es distinta para esta última versión ya que utiliza el nuevo objeto Canvas y nuevos prefabs y componentes. Lo explicaremos en tutoriales posteriores
- Por ahora no vamos a modificar el comportamiento de los componentes mediante programación. Esto se consigue personalizando los scripts (guiones desarrollados en C# o Javascript) que nos ofrece Unity o creando unos nuevos. Lo veremos en tutoriales posteriores.
Estructura del proyecto Unity 3D
Si recordamos el tutorial donde explicamos los pasos para crear un Proyecto en Unity, éste contiene por defecto los GameObjects «Main Camera» y «Directional Light» . En la imagen de abajo, vemos la estructura del primer proyecto que hemos planteado, y donde se aprecia que hemos añadidos otros elementos, como el prefab «First Person Controls» que será el jugador, además de un terreno y un efecto viento, para crear las bases de un juego en primera persona:
- «First Person Control» renombrado a «Controles Primera Persona«, que a su vez añade un ‘Player‘ que hemos llamado «Jugador» y dos componentes GUI Texture (Graphical User Interface), Right y LeftTouchPad, para mover mediante dos botones táctiles a derecha e izquierda al personaje y la cámara y que hemos denominado ‘ControlPersonaje‘ y ‘ControlCámara‘.
- El Player incluye por defecto una «Capsule«, renombrado a «Objeto«, que es la figura geométrica que representa al jugador y una «Camara» (hemos eliminado la ‘Main Camera’ que nos daba una visión general de la escena, y dejado la cámara que se asocia y sigue al personaje, para simular la visión de éste).
- «Terrain» renombrado a «Mapa«, que es el escenario donde se desenvuelve la acción del juego.
- «Wind» renombrado a «Viento«, para crear dicho efecto.
- «Directional Light«, renombrado como «Dirección Luz«, que se incluía por defecto.
En la imagen de abajo vemos la pantalla del editor Unity, con los objetos ya creados.
Como ya explicamos de la interfaz de Unity, aparecen una serie de ventanas que en este caso son:
- Ventana ‘Scene‘ (izquierda) donde se muestra el escenario del juego con el terreno ya creado y donde podemos seleccionar y posicionar el resto de GameObjects como el jugador, la cámara, la iluminación o los enemigos (veremos la inclusión de un enemigo en un proyecto posterior más avanzado).
- Ventana ‘Hierarchy‘ (derecha) con la estructura del proyecto y la jerarquía de los diferentes elementos que lo componen, y abajo, la ventana ‘Inspector‘ que nos permite ver detalles del elemento seleccionado (en este caso ‘Controles Primera Persona’):
Controles Primera Persona (FPS: First Person Controls)
Objeto que nos permitirá manejar un personaje en la pantalla. Se define en primera persona (vista que nos posibilita visualizar el entorno desde la visión del personaje), a través de un prefab existente en Unity. Este elemento podemos encontrarlo en la ventana «Project» (menú Window > Project), dentro de la ruta «Assets > Standard Assets (Mobile) > Prefabs > First Person Controls» y bastará con arrastrarlo dentro de nuestro mapa para incluirlo.
Si trabajas con la última versión de Unity, verás que los Assets se han reorganizado como hemos indicado al principio. En este caso, encontrarás el prefab de FPS dentro de la ruta «Assets > Standard Assets > Character Controllers > First Person Controller«, que te proporciona un control con teclado (AWSD) para el personaje y del ratón para la cámara.
Si necesitas un input específico para dispositivos móviles, se debe implementar desde el package «CrossPlatformInput» y utilizando el nuevo UI Canvas, que explicaremos en otro tutorial posterior.
Configuración «Jugador»:
Nota: Los campos «Move Touch Pad» y «Rotate Touch Pad» deberán rellenarse arrastrando los componentes GUI Texture definidos, para controlar tanto el movimiento del personaje, como el movimiento de la cámara (estos componentes deberán tener implementados el script «Joystick» para poder asignarlos).
Configuración «Objeto»:
Cámara (Camera)
Es el dispositivo a través del cual el jugador ve el mundo. Este elemento podemos seleccionarlo a través de la ruta «GameObject > Camera«:
Configuración «Cámara»:
Aquí podemos ver la pantalla con las opciones de configuracón del Game Object Camera y que
ControlPersonaje y ControlCámara (GUI Texture)
Objeto que muestra imágenes planas en 2D. Están hechas especialmente para los elementos de la interfaz de usuario, botones, u objetos decorativos. Su posicionamiento y escalado se realizan a lo largo del eje X e Y, y se miden en coordenadas de la pantalla, en lugar de las coordenadas del mundo.
Es posible añadir este objeto a través del menú GameObject > GameObject Empty, y a continuación dentro de este objeto vacío creado, añadir un componente a través de Add Component > Rendering > GUI Texture. Las imágenes utilizadas podemos encontrarlas en la ruta «Assets > Standard Assets (Mobile) > Textures > JoystickThumb.psd«:
Configuración «ControlPersonaje»:
Configuración «ControlCámara»:
Una vez definidos ambos GameObjects, debemos añadir a cada uno de ellos dos componentes de tipo Script, más concretamente el script «Joystick«.
Mapa (Terrain)
Permite agregar paisajes a nuestros juegos. Es posible agregar un objeto «Terrain» a la escena seleccionando en el menú GameObject > 3D Object > Terrain (también se añadirá un activo Terrain correspondiente a la vista del proyecto). Sin embargo, el paisaje inicial será una superficie plana de gran tamaño. Si nos fijamos en el inspector cuando se selecciona el objeto «Mapa«, nos proporciona una serie de herramientas que podemos utilizar para crear cualquier característica del paisaje.
Configuración «Mapa»:
El tamaño del mapa se puede modificar a través de las propiedades width, height y length en:
Terrain (Script) > > Resolution.
Herramienta de edición de un objeto «Terrain», que podemos encontrar en la pestaña «Inspector»:
Veremos en un tutorial y video posterior, la creación de un Terrain con este editor.
Viento (Wind Zone)
Objeto que añade realismo a los elementos situados en el escenario, como por ejemplo a los árboles, haciendo que estos agiten sus ramas y hojas como si el viento soplara sobre ellos. Es posible añadir este objeto a través del menú GameObject > 3D Object > Wind Zone.
En la imagen podemos observar el objeto «Viento», resaltado con un círculo rojo, de tipo «Directional».
Configuración del objeto «Viento»:
Dirección Luz (Directional Light)
Objeto que permite iluminar escenas y objetos, y poder crear un ambiente visual real. Las luces se pueden utilizar para simular el sol, una linterna, o una explosión. Es posible añadir este objeto a través del menú GameObject > Light > Directional Light.
En la imagen podemos observar el objeto «Dirección Luz», resaltado con un círculo rojo, de tipo «Directional», que simula la incidencia de la luz de la luna. En un tutorial posterior, veremos más sobre la configuración de la iluminación.
Configuración objeto «Dirección Luz»:
Descarga Proyecto Unity 3D
En este primer proyecto básico simplemente vemos el escenario creado.
Para verlo en tu equipo, descarga los ficheros, abre Unity y escoge la opción «Open Project» y selecciona la carpeta «Primer FPS«. Una vez cargado, abre la escena a través de File > Scene > PrimerFPS > Assets > PrimeraPersonaAcademiaAndroid.unity.
También tienes disponible la versión para Android, simplemente instalando la apk que se incluye en esta descarga. Al haberse incluido los controles táctiles sin ningún ajuste, puede que en tu móvil no funcione correctamente. Prueba en diferentes partes de la pantalla para ver si puedes mover la visión de la escena.
DownloadEn la próxima entrega, publicaremos un video sobre este proyecto
Esta entrada tiene 3 comentarios
Los comentarios están cerrados.
[…] 4.Proyecto básico con Unity 3D […]
[…] vez presentados los elementos básicos del motor de juegos Unity (Assets, GameObjects, Componentes), es el momento de ver más detalladamente la configuración de […]
[…] versiones anteriores de Unity, para crear dicha interfaz, utilizábamos los componentes GUI Texture. Desde la versión 4.6, se ha introducido el nuevo componente Canvas, que hace más fácil dicho […]