contacto[arroba]digitallearning.es
Nuevo Material Sphere

Objetos primitivos: elementos comunes y creación de Material en Unity 3D

Post Series: Conociendo Unity 3D (III)

Tras presentar los objetos primitivos de Unity 3D en el anterior tutorial, vemos en éste los elementos comunes que los definen (TransformMesh filterColliderMesh 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.

Propiedad
Función
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.

Propiedad
Función
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.

Propiedad
Función
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:

Nuevo Material

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:

Nuevo Material Shader

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:

Propiedad
Función
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:

Nuevo Material SphereNuevo Material Final

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:

Base Gloss DefectoNuevo Material Sphere

Base Gloss Tiling X 10Sphere Tiling X 10

Base Gloss Tiling Y 10Sphere Offset X 100000
Base Gloss Offset X 10000Sphere Offset Y 100000

Base Gloss Offset Y 100000 Sphere Tiling Y 10

En la próxima publicación veremos los objetos primitivos en un vídeo con un sencillo ejemplo con un esfera.

This Post Has One Comment

Comments are closed.