[Unity 3D] Tutorial para novatos (2 – Objetos)

tutoUnity1Ya introducida la interfaz, el próximo paso será la manipulación de objetos y la creación de una escena sencilla.

La creación de objetos requiere algo más que tan solo tirarlos en la escena y aplicarles ciertos movimientos y propiedades físicas. Se necesita conocer el tamaño de la escena que se quiere hacer, la posición que X objeto tendrá en el espacio y que tan grande es el mismo, y esto no es una mera recomendación, sino que es lo que en realidad se requiere para conformar un escenario acorde a las dimensiones que uno se plantea. Por lo tanto, al comenzar cualquier proyecto en Unity, se debe conocer de antemano como estará compuesto el escenario, que cosa irá en cada lugar y que tamaño estas tendrán.

Teniendo ya esto en cuenta, necesitaremos conocer la escala (las proporciones físicas/geométricas) del proyecto, y para eso Unity trabaja con unidades que cada cual a su gusto determinará que significan las mismas. Pueden ser tomadas como metros, centímetros, kilómetros, pulgadas, pies, pársecs, angstroms, etc. Es decir, al considerar un objeto de escala (x,y,z) = (1,1,2) entonces suponiendo que tomamos las unidades como metros, el objeto va a medir en el eje X 1 metro, en el eje Y 1 metro y en el eje Z 2 metros, y tomando la posición con respecto al origen de coordenadas de la escena como (x,y,z) = (2.5 ,3.5 ,4.5) esto significará que el objeto estará a 2.5m en X del origen, a 3.5m en Y del origen y a 4.5m en Z del origen.

Ya con esta pequeña intro para aclarar algunas cosas que me parecieron necesarias nombrar comenzaremos a crear objetos. Para crear un nuevo objeto podemos ir en la barra de menúes al menú GameObject y allí ir a Create Other. Desde aquí podemos crear una gran diversidad de objetos geométricos sencillos como cubos, esferas, cilindros, u objetos de otro índole como luces, textos, mallas, etc., y con solo presionar el objeto deseado, este aparecerá en la escena en donde se le indique, y caso contrario, en el centro del área visible de la misma.

Main Camera:

Cuando uno inicia un proyecto nuevo, por defecto, posee un objeto ya existente que se puede ver en la Hierarchy, que es la Main Camera. Este objeto, es clave en cualquier escena y se encarga de «capturar» lo que ve y esta captura será lo que se ve realmente al ejecutar nuestro juego.

Esta posee el componente que realiza lo dicho anteriormente y este se denomina Camera. Posee dentro de él las siguientes propiedades:

  • Clear Flags: donde se determinan las partes que no se verán de la pantalla. Y esto sirve más que nada cuando se manejan múltiples cámaras.
  • Background: el color que pintará la escena en caso que la cámara vea simple vacío espacial.
  • Culling Mask:  lo que se seleccione acá, no será renderizado (no visualizado) siempre y cuando la cámara no lo vea. Everything, quiere decir que todo lo que la cámara no vea, no sea renderizado y por lo tanto mejora la eficiencia de la reproducción del juego.
  • Projection: determina el tipo de proyección que considera la cámara. Para hacerla más fácil, esta tiene 2 opciones, Perspective, que permite ver en 3D las cosas y Orthographic, que permite tener una visualización 2D de la escena por así decirlo.

Las demás propiedades los invito a que las testeen y sirven para determinar el frustum de captura de la cámara.

Documentación  de Unity sobre este componente:
http://docs.unity3d.com/Documentation/Components/class-Camera.html

Directional Light:

Luego, el objeto elemental a colocar en el escenario es una fuente de luz, a menos que el juego no necesite de alguna fuente de iluminación y sea todo oscuro, o que los objetos del escenario actuaran como fuentes de luz. No siendo cualquiera de los casos anteriores, lo principal será colocar un punto de iluminación. Ahora bien, hay varios tipos de fuentes lumínicas para elegir y dejaré que ustedes prueben cada una de ellas. Con el simple hecho de colocarlas e ir modificando sus propiedades, podrán ver cuanto abarcará y que tan intensa será la luminosidad de la misma, y si aparte colocan una caja por ejemplo, podrán ver como se iluminará respecto del tipo de luz seleccionada. La luz que más abarcará en una escena es la Directional Light o luz direccional. Esta actúa como una especie de estrella (como el Sol) en la escena e iluminará todo de manera regular y con la misma intensidad en cualquier punto.

A la derecha, se puede en la Hierarchy como se agregó este GameObject, y a su derecha lo que se llama Inspector cuya función como ya he mencionado es proveer todas las propiedades, y componentes que el objeto seleccionado posee.

En este caso, para la Directional Light, tenemos gracias al componente Transform que se encuentra en la posición 5 en el eje Y y -5 en el eje Z con respecto al origen de coordenadas. Además posee una rotación respecto del eje X de 45 grados, y por último, una escala unitaria.

Luego tenemos un componente propio que se encarga de emitir la luz, y como se puede ver, este componente se llama Light. Dentro de sí, posee el tipo de luz que emitirá, el color de la luz (que se puede modificar tocando en el gotero o simplemente sobre el cuadro ahora blanco), la intensidad de la luz, y demás propiedades, que tocando un poco podrán saber que hacen.

Documentación de Unity para el componente Light:
http://docs.unity3d.com/Documentation/Components/class-Light.html

Figuras geométricas:

Se puede ver además en la imagen anterior que existe un cubo en la escena, el cual no he nombrado pero he incluido en el proyecto de la misma manera que he hecho con la luz. Además he agregado un plano que representará la superficie de contacto con el cubo.

Aquí abajo, pueden ver la escena con el cubo y el plano ya adjuntados.

Por propia convención, dispuse el cubo en la posición (0,0.5,0) mientras que el plano en (0,0,0). El 0.5 en Y del cubo, es para que el mismo no atraviese el plano y quede perfectamente sobre su superficie, y debido a que el cubo (ahora paralelepípedo) tiene de altura 1, y teniendo en cuenta que el centro del cubo es el punto de referencia de todas las transformaciones que le haga, entonces si colocase el cubo en la posición (0,0,0), el plano lo atravesaría a la mitad, y es por esto que lo subí 0.5 unidades. Además tiene una pequeña rotación y un estiramiento.

Una de las cosas que se pueden ver en la pantalla, que antes no he mostrado, es que al seleccionar un objeto de tipo cámara, se puede ver un pequeño recuadro que nos proporciona la visión de la misma, y otra de las cosas que podemos observar es la proyección del frustum que ésta captará.

Materials:

Y para ir terminando esta parte del tutorial, les mostraré como colorear los objetos como el cubo o el plano.

Para ello, deberemos crear un Material, que vendría a ser la «pintura» con la que se pintarán los objetos. Entonces vamos al menú Assets , allí elegimos Create, y luego tocamos en Material.

Se mostrará este nuevo material ya no en la Hierarchy, sino que aparecerá en la ventana de Project . Ya entonces con este nuevo material, procederemos a asignarle algún color u alguna textura. En primer lugar se deberá seleccionar el shader que uno prefiera para lograr el efecto deseado, y luego aparecerán varias opciones para modificar a gusto el material. Para hacerlo sencillo, tildamos en Shader -> Diffuse, y luego en el recuadro de color blanco elegimos un color que nos guste para asignarle al plano. Ya con este nuevo material, lo que hacemos ahora es arrastrar el Material desde Project hacia el Plane que tenemos en Hierarchy o directamente lo arrastramos a la escena, encima del plano y podremos ver como este toma color.

En caso que deseamos asignarle algún dibujo que tengamos en la PC o alguna textura que hayamos hecho o descargado, primero deberemos cargar la misma al proyecto y para ello vamos nuevamente al menú Assets y luego Import New Asset. Aquí buscamos la textura en el directorio que se encuentra y la cargamos. Una vez que tenemos esto, arrastramos este nuevo asset al Material que habíamos creado a la recuadro que hay debajo del que seleccionamos el color en un inicio.

Documentación en Unity sobre Material:
http://docs.unity3d.com/Documentation/ScriptReference/Material.html

Y aquí concluye la segunda parte del tutorial, relacionado al manejo básico de objetos de Unity.

Cualquier duda, dejen sus comentarios aquí abajo.

Próxima parte del tutorial «Programación»:
https://alittlebigof.wordpress.com/2013/04/16/unity-3d-tutorial-para-novatos-3-programacion/

2 comentarios en “[Unity 3D] Tutorial para novatos (2 – Objetos)

Deja un comentario