El tutor de nuestro curso online de Desarrollo de Aplicaciones para Android, Víctor Ramírez Las,…
Objetos primitivos: elementos comunes y creación de Material en Unity 3D
4.
Objetos primitivos: elementos comunes y creación de Material en Unity 3D
Tras presentar los objetos primitivos de Unity 3D en el anterior tutorial, vemos en éste los elementos comunes que los definen (Transform, Mesh filter, Collider, Mesh renderer) y cómo crear un elemento Material.
Transform
Componente básico que todo GameObject contiene, y que le proporciona una posición en la escena, además de establecer la rotación y tamaño del objeto.
Position | Define los valores de los ejes de coordenadas X, Y, Z. |
Rotation | Define los valores en grados, del cambio de orientación alrededor de los ejes X, Y, Z. |
Scale | Los valores mostrados definen el escalado a lo largo de los ejes X, Y, Z. En caso de que los valores sean igual a 1, indica que se trata del tamaño original del objeto importado. |
Parenting: este concepto en Unity establece una jerarquía en la que puede haber GameObjects que son objetos hijos (child) de un objeto padre (parent). Esto puede darse además en sucesivos niveles: un objeto hijo puede ser a a su vez padre de otro u otros objetos hijos. En la raiz (root) solo puede haber un padre de toda esta jerarquía.
Los valores del componente Transform de los objetos hijos se establecen de forma relativa respecto al objeto padre. Es lo que se denomina coordenadas locales (pensemos en la analogía de una piernas (objetos hijos) respecto al cuerpo (objeto padre), donde en una persona en movimiento, aquellas tendrán posiciones respecto al cuerpo).
Si no pertenece a un objeto padre, las propiedades se miden en las coordenadas globales o ‘espacio universal’.
Mesh Filter
Componente de malla que determina su geometría poligonal.
Mesh | En esta propiedad se establece la referencia a la malla almacenada en los recursos del proyecto. |
Collider
Colisionador que se encarga de que no sea un objeto traspasable a nivel físico, y por lo tanto establecer toda la lógica de físicas (detección de colisiones entre objetos). Este tipo de componentes lo trataremos en un tutorial posterior al explicar la detección de colisiones.
Mesh Renderer
Construye su geometría a partir del componente Mesh Filter, y se encarga de renderizar la malla del modelo, para visualizarlo en la escena.
Cast Shadows | Sólo disponible en la versión Pro. Al activar esta opción, la malla asignada generará sombras al incidir la luz sobre ella. |
Receive Shadows | Sólo disponible en la versión Pro. Si esta opción está marcada, la malla del objeto podrá recibir la proyección de sombras. |
Materials | Permite definir en la propiedad Size el número de materiales que dibujarán la textura del modelo, estableciendo en cada uno de los elementos una textura. |
Use Light Probes | Sólo disponible en la versión Pro. Al activar esta propiedad, se calculará la iluminación de la malla del modelo. |
Anchor Override | Sólo disponible en la versión Pro. Esta opción será visible al activar la propiedad «Use Light Probes» y permite establecer, a partir del componente Transform y usando el valor de la posición, la iluminación de la malla. |
Creando un elemento material para objetos de la escena
Como parte de las diferentes propiedades que se pueden establecer a la hora de la construcción de objetos primitivos o personalizados, se van a mostrar los pasos necesarios para la creación de un recurso de tipo Material (extensión .mat), para el diseño de los objetos que intervienen en un juego, y más concretamente la malla (más conocido por su traducción en inglés mesh) que recubre dichos objetos.
Un material es un elemento que se utiliza en conjunto con un componente Mesh, y que permite definir cómo se muestra un objeto, mediante la asignación de texturas a un GameObject. Dentro de todo material, se establece una referencia a un shader o sombra que representa la malla.
Para la creación de un material, bastará con seleccionar la carpeta dentro de los recursos del proyecto donde se desea almacenar el elemento, para posteriormente realizar click con el botón derecho del ratón, y elegir la opción Create > Material. Tras esto, podrás apreciar como se ha añadido un nuevo elemento al que deberás renombrar. Una vez has realizado los pasos anteriores, en la ventana inspector se podrá visualizar la siguiente estructura:
Nota: desde Unity se recomienda el siguiente flujo de trabajo: 1º creación del material, 2º seleccionar un shader y 3º definir una textura.
En base a las recomendaciones de flujo de trabajo que se indican desde Unity, a continuación se seleccionará el shader o sombra para el material. En la siguiente imagen se mostrará un desplegable con los shaders disponibles tanto en los recursos del proyecto como embebidos en Unity:
Dependiendo del tipo de shader seleccionado, se mostrarán diferentes propiedades en la ventana inspector. Para este ejemplo se mostrará el proceso para el tipo «Specular» (controla el color que se refleja en los puntos de máximo brillo del objeto), que define las siguientes propiedades:
Main Color | Define el color principal del material. |
Specular Color | En esta opción se establece el color para la definición de reflejos a partir de una fuente de luz. |
Shininess | Permite definir el nivel de difuminado, disminuyendo la claridad y exactitud del contorno del objeto. |
Base (RGB) Gloss (A) | Desde esta propiedad se seleccionará la textura a asignar al objeto (de las disponibles en los recursos del proyecto), además de definir los valores de las propiedades tiling (mosaico de la textura en los ejes X e Y) y offset (desplazamiento de la textura en los ejes X e Y). |
Finalmente el ejemplo quedaría como se aprecia en la siguiente imagen, mostrando tanto la ventana inspector del material, como su asignación a un GameObject Sphere:
Para comprender con mayor claridad las propiedades tiling y offset de la sección Base (RGB) Gloss (A), a continuación se muestran diferentes imágenes estableciendo valores que permitan visualizar los cambios que se producen:
En la próxima publicación veremos los objetos primitivos en un vídeo con un sencillo ejemplo con un esfera.
Esta entrada tiene un comentario
Los comentarios están cerrados.
[…] 4.Objetos primitivos: elementos comunes y creación de Material en Unity 3D […]