ARTÍCULOS

Iniciación al desarrollo de videojuegos: Interfaz de Unity

Familiarizandonos con el entorno de esta herramienta de desarrollo

En el artículo anterior vimos algunas cosillas sobre software con el que podríamos hacer los sprites 2D de nuestro juego, y ahora, por fin ha llegado el momento de enfrentarnos al motor gráfico que nos permitirá hacer que todo funcione.

Tras descargar Unity versión personal (y gratuita) de su Web (https://unity3d.com/es) e instalarlo (no voy a explicar cómo, porque es muy sencillo y nos quita tiempo, pero recomiendo que instaléis la documentación y el proyecto de ejemplo), lo abriremos para encontrarnos con una ventana en la que crearemos nuestros proyectos. Aquí tenemos la opción: Projects y también Learn, si queremos ver tutoriales sobre el motor. Podéis trastear un poco con el aprendizaje si queréis pero centrémonos en Projects.

Unity new project

La pestaña Projects nos da la opción de crear un trabajo nuevo para manejarlo en la nube o en nuestro disco duro, y es que necesitaremos Internet para entrar en Unity (al menos al principio) con un nombre de usuario y contraseña que conseguimos dándonos de alta en la web antes de descargar el programa. Una vez conectados, vamos a la opción New (desde On Disk para trabajar en nuestro equipo) y se nos pedirán todos los datos necesarios para nuestro proyecto:

Project name: El nombre de nuestro juego.

Template: Podemos elegir entre 3D o 2D dependiendo del tipo de juego o aplicación que queramos hacer. Nosotros para practicar con la interfaz vamos a elegir de momento 3D, ya que Unity se diseñó para trabajar en los tres ejes de coordenadas y podremos ver más cosas que son aplicables a lo que haremos en un futuro con solo dos de ellos. Además, una vez creado el proyecto es posible cambiar entre 3D o 2D sin problema y la única diferencia entre los modos es la configuración con la que se cargan archivos externos (sobre todo de texturas) y la de la escena inicial.

Location: Que será la ubicación de nuestro disco duro donde se va a almacenar todo lo que vayamos haciendo.

El botón de Add Assets Package lo ignoraremos, ya que si queremos usar paquetes del motor (que traen arte, scripts y muchas cosas más para evitar que tengamos que crearlos nosotros) los cargaremos desde dentro.

Finalmente el botón de Unity Analytics sirve para ayudar a los desarrolladores a recopilar información y hacer estadísticas y esas cosas, así que prefiero dejarlo en off por que no nos hace ninguna falta.

¡Por fin pulsamos Create Project y todo se reinicia para abrir la interfaz!

¡Genial! Aquí crearemos nuestras obras maestras. Si habéis manejado antes algún software de modelado 3D tenéis mucho adelantado por que esto es muy parecido. Para los que no, vamos a ver para que sirven todas las ventanas y paneles que nos de tiempo.

Unity Interface

Como estén colocados los distintos paneles en Unity, puede variar dependiendo de nuestro gusto (ya veremos como personalizarlo), así que he puesto unos números en la imagen para que nos ayuden a guiarnos:

  1. Menu: típico de todo software en Windows, aquí encontramos las opciones para guardar, crear una escena (ya veremos lo que es) o un proyecto nuevo, copiar, pegar, etc.
  2. En esta parte tenemos distintos iconos que podemos marcar para movernos por la escena, mover, rotar y escalar objetos o dar al “play” para que empiece nuestro juego, etc.
  3. El Panel Hierarchy es donde aparecerán los nombres de todos los objetos que tengamos en nuestra pantalla de juego. En las últimas versiones de Unity se nos crea con nuestro proyecto una escena de ejemplo “SampleScene” que contiene una cámara y una luz, aunque esta configuración depende un poco de si nuestro proyecto es 2D o 3D. Ya veremos las diferencias.
  4. El Panel Scene es donde podremos mover y situar nuestros objetos para componer una escena de juego.
  5. El Panel Game es una pequeña ventana donde podemos testear nuestro juego tal y como lo tengamos hasta el momento.
  6. El Panel Asset Store nos permite navegar en busca de componentes u objetos que otras personas crearon para Unity, algunas gratis y otras de pago, como ayudas a nuestro desarrollo si no tenemos artistas o buscamos scripts (programas) que alguien ya resolvió y pueden servirnos.
  7. En el Panel Project tenemos un acceso directo a las carpetas de nuestro proyecto. Se podría manejar desde carpetas en el sistema operativo, pero no es nada recomendable porque desde aquí se generan unos enlaces de Unity con esos archivos y podrían perderse. Aquí crearemos carpetas e importaremos arte, sonido y otros elementos para nuestro desarrollo.
  8. El Panel Console muestra errores, advertencias o mensajes sobre nuestro juego.
  9. Finalmente el Panel Inspector cambia en función de lo que tengamos seleccionado y sirve para mostrar las propiedades y componentes de ese elemento.

Navegación en Unity y el panel Scene

Antes de nada, para ver por dónde nos movemos sin que sea todo un vacío en el infinito, vamos a crear algún GameObject (un objeto para nuestro juego) y a ver lo que son los componentes y cuál es el más importante.

Create GameObject

Si hacemos clic, arriba en el menú, sobre “GameObject/3D Object/Cube” comprobaremos que se ha creado en nuestra escena una primitiva (un objeto 3D básico) de tipo cubo. Si vamos al Panel Hierarchy y seleccionamos “Cube”, comprobaremos que este objeto se selecciona también en la escena. Es la forma de seleccionar objetos sin perdernos en el mundo de nuestro juego, hacerlo por su nombre en este panel. Además, al hacer esto también vemos las propiedades de nuestro cubo ahora que está seleccionado.

Transform Componet

En el Panel Inspector podemos ver los componentes que forman el Cubo, y es que Unity usa programación orientada a componentes, es decir tiene objetos a los que podemos añadir nuevas funciones añadiéndole más componentes que no son otra cosa que fragmentos de código, unos ya hechos y otros que crearemos nosotros. Aquí el más importante y el cual nos interesa ahora mismo es el componente Transform que aparece primero en la lista. Este es un componente básico y que está en todos los objetos de Unity incluyendo los GameObject vacios y es así porque se encarga de indicar la posición en las coordenadas x,y,z del objeto, así como su escala y su rotación. ¿Os acordáis ahora del eje de coordenadas que aprendisteis en Matemáticas en la escuela? Pues aquí lo tenemos en 3D.

reset transform

Por si nuestro recién creado cubo ha aparecido en un lugar no esperado, vamos a “resetearlo” a las coordenadas “0,0,0”, su rotación inicial y su escala 1. Para ello en el componente Transform del cubo, haremos clic sobre el pequeño engranaje de la esquina superior izquierda con una flecha hacia abajo a su lado y seleccionaremos reset. Ahora seguro que el cubo está en su sitio y podemos navegar un poco.

Para movernos dentro de la escena representada en el Panel Scene tendremos atajos de teclado que nos permitirán hacerlo y uno de los iconos mencionados antes:

hand tool

Icono de Mano: Al seleccionarlo nos permite usar atajos de teclado para movernos por nuestra escena, por ejemplo si lo tenemos marcado y hacemos clic en la vista Scene sirve para hacer un “paneo” de la cámara a través de la cual vemos nuestra escena, y no me refiero a la cámara del juego que es un objeto (podemos tener varias) que usaremos para indicar que se va a ver durante la partida, en este caso son nuestros “ojos” para ver qué es lo que estamos componiendo en nuestra escena de juego. Necesitamos también tener seleccionado este icono para poder hacer una “orbita” de nuestra vista, es decir mirar a nuestro alrededor. Para ello usaremos la combinación Alt+Clic en la vista de escena. En el caso del zoom siempre funcionará la rueda del ratón, aunque si queremos un zoom preciso usaremos la combinación Alt+Clic derecho de nuestro ratón y arrastrar. Es con combinaciones con la tecla Alt con la que conseguimos no necesitar que el icono de mano esté seleccionado para movernos. Alt+Clic Central hace un paneo de cámara, Alt+Clic hace una orbita y Alt+Click derecho y arrastrar hace zoom de nuestra vista.

(Podemos observar que cuando estamos orbitando la cámara el icono de mano cambia a uno de un ojo y cuando hacemos zoom nos a un icono de lupa, tanto en nuestro cursor como en el conjunto de iconos que mencionamos al principio donde habitualmente solo está el “hand tool” o mencionado icono de mano)

Moverse con el teclado

Si dejamos pulsado el botón derecho del ratón podremos usar las teclas a,w,s y d o los cursores para movernos por la escena de forma similar a como lo haríamos en un juego en primera persona. Dirigimos la vista de la cámara con nuestro ratón y avanzamos, retrocedemos o nos desplazamos lateralmente con las teclas.

Mover Objetos

En el conjunto de iconos de la parte superior izquierda ya hemos visto que hay algunos más además del que acabamos de mencionar para navegar por la escena, son cinco y sirven para mover objetos, aunque uno de ellos es para juegos 2D.

Icono de cruz de flechas o “move tool”: Sirve para mover los objetos en nuestra escena. Al marcarlo, si tenemos seleccionado un objeto, aparecerá sobre él en la Scene View un “gizmo de transformación” que no es otra cosa que varias flechas orientadas en los ejes x,y,x para que podamos mover el GameObject. Si nos situamos sobre una de las flechas, hacemos clic y arrastramos el ratón, moveremos el objeto en ese eje de coordenadas, si hacemos lo mismo con el cuadro que hay entre el ángulo de estas flechas nos moveremos en el plano que forman dos ejes. Si probamos con nuestro cubo y nos fijamos en su Transform en el panel Inspector comprobaremos como cambian sus coordenadas de posición.

move GameObject

Rotar objetos

Es el icono de las flechas tratando de hacer un círculo (rotate tool) y la idea es la misma que para mover objetos, pero aquí el gizmo de transformación es diferente y se compone de tres círculos. Si nos situamos sobre uno de ellos, hacemos clic y arrastramos, el objeto rotará en ese eje, mientras que si hacemos clic en el centro de los tres y arrastramos tendremos una rotación libre (muy a lo loco y generalmente poco recomendada). Si probamos con nuestro cubo y nos fijamos en su Transform en el panel Inspector comprobaremos como cambian sus coordenadas de rotación.

Rotate GameOBject

Escalar objetos

Marcar el icono del cuadro con 4 flechas saliendo de él (Scale tool) y en este caso sitúa un gizmo de transformación parecido al de mover, pero con pequeños cubos al final de las líneas en lugar de flechas. Si nos situamos en el cubo central, hacemos clic y arrastramos, el objeto se escala de manera uniforme (lo recomendable para no deformarlo) y si realizamos la misma operación con los cubos al final de los ejes la escala será solo en el eje seleccionado, deformando el objeto en x, y o z. Si probamos con nuestro cubo y nos fijamos en su Transform en el panel Inspector comprobaremos como cambian sus coordenadas de escala.

Scale GameObject

Rect tool (icono de cuadrado con puntos en sus esquinas y un pequeño círculo en el centro)

Esta herramienta se usa para juegos 2D, aunque se puede manejar también con objetos 3D, pero no tiene mucho sentido ya que solo afecta a los ejes x e y. Sitúa un rectángulo sobre nuestro objeto que nos permite: mover si hacemos clic en el centro y arrastramos, escalar si hacemos click en las esquinas o en los segmentos que las unen y rotar, si situamos el ratón cerca de una de las esquinas (veremos lo que hacer por un icono que aparece junto a nuestro cursor dependiendo de donde lo situemos).

rect tool

Herramienta Move, Rotate or Scale (él último icono que nos queda)

Sirve para hacer una de las tres cosas (mover, rotar o escalar) dependiendo la zona sobre la que situamos nuestro cursor. Aquí veremos todos los gizmos de transformación mencionados anteriormente pero todos a la vez en pantalla, así que es cuestión de usar lo aprendido para transformar nuestro objeto. Es como una forma avanzada de transformación si no queremos estar perdiendo el tiempo en cambiar de icono.

transform3d

Y esto ya se está haciendo muy largo, así que vamos a dejarlo aquí hasta el próximo capítulo en el que pretendo mostrar algo más de Unity relacionado con la programación, pero ya veremos por donde salgo. 😛

    1. Unity es capaz de importar bastantes formatos 2D y 3D, incluyendo formatos nativos (puedes importar un archivo de 3D Max o Blender por ejemplo) pero los más recomendables son los fbx, porque (si sabes) puedes traer también las animaciones (con huesos incluidos), las texturas, etc. Con obj es un poco más difícil y generalmente acabas teniendo que importar la textura por otro lado y reaplicandola al objeto ( y las animaciones no estoy seguro ahora pero creo recordar que no se pueden exportar con los obj).

      Los archivos nativos tipo Blender o Max no los recomiendo por que suelen tener mayor tamaño de fichero y dar más problemas, se usan solo para testear, ya que puedes actualizar algo en el programa y automaticamente Unity actualiza los cambios.

      Un saludo!

Deja un comentario