Cambiar el Skybox en Unity – Cielo personalizado

Introducción – ¿Qué es el Skybox en Unity?

El Skybox es como una imagen que rodea completamente una escena en Unity y permanece fija sin importar que tanto intentemos acercarnos. El propósito del Skybox es representar el horizonte lejano de la escena y es posible elegir una textura para hacerlo.

En este artículo veremos cómo cambiar el Skybox que viene por defecto en Unity. Esto nos permitirá personalizar el cielo de la escena para nuestro juego.

En el siguiente vídeo muestro cómo reemplazar el cielo por defecto de Unity


Primer paso – Conseguir textura HDR para el Skybox

Para modificar el Skybox de la escena necesitaremos texturas especiales, una de las que se puede usar son las texturas HDR (High Dynamic Range), son texturas que tienen más información que las que comúnmente utilizamos y son útiles para iluminar escenas, ya que se puede incrementar o disminuir su intensidad y la textura responde apropiadamente.

Suelo descargar texturas de la página HDRI Haven, tienen una galería bastante interesenta con este tipo de imágenes, las descargas son gratuitas y además se puede elegir entre calidades que van desde 1K a texturas 8K, como se puede ver en la figura 2.

HDRI Haven

galeria de texturas ambientales hdr para descargar
Fig. 1: Primero se necesita conseguir una textura HDR, en la página hay distintas categorías y se pueden descargar en distintas resoluciones.
descarga de textura hdr 2k para cambiar skybox en unity
Fig. 2: En mi caso voy a descargar una textura en resolución 2K.

Pasos para cambiar el Skybox del cielo en Unity

Antes de mostrar el proceso completo voy a poner una lista de pasos para resumir el proceso, si ya tienes experiencia con Unity puede que te resulte útil.

1. Importar la textura HDR en Unity y en el inspector configurar su parámetro “Texture Shape” como “Cube”.

2. Crear un material nuevo y configurar el tipo de Shader como Skybox > Cubemap.

3. Asignar la textura HDR al campo “Cubemap HDR” de nuestro material. Con esto ya tenemos preparado el Skybox para cambiarlo por el que viene por defecto.

4. Ir a la ventana Window > Rendering > Lighting, sección Environment y en el campo Skybox, seleccionar el material que hemos configurado en el paso anterior.

5. (Opcional) En caso de la textura no tenga buena calidad, modificar el formato de compresión o descargar una textura de mayor resolución.

Procedimiento detallado para cambiar el Skybox del cielo en Unity

Una vez que importamos la textura HDR en Unity vamos a crear un nuevo material, en la carpeta Assets, clic derecho, crear y luego seleccionamos material.

ventana de creación en unity, material nuevo.
Fig. 3: Creamos un material para hacer el Skybox.

Le ponemos un nombre y luego lo seleccionamos para ver sus propiedades en el inspector.

textura hdr y material para skybox en unity
Fig. 4: Seleccionamos el material para ver sus parámetros en el inspector.

En la cabecera del inspector, ubicamos el campo “Shader” que por defecto se encuentra configurado en “Standard” y lo cambiamos por el Shader tipo “Skybox > Cubemap”, como se observa en las figuras 5 y 6.

cambio de tipo de shader en unity
Fig. 5: Hacemos clic en la pestaña Shader para cambiar el tipo de Shader.
seleccion de shader skybox cubemap en unity
Fig. 6: Seleccionamos el Shader Cubemap dentro de la sección Skybox.

Ahora el inspector para este material se va a ver mostrar con otros parámetros que antes, como vemos en la figura 7.

shader cubemap en unity
Fig. 7: Así se ve el nuevo inspector del material.

En principio nos interesa asignar nuestra textura HDR al campo “Cubemap HDR” pero primero tenemos que hacerle algunos ajustes a la imagen. Seleccionamos la textura HDR que hemos importado.

textura hdr y material para skybox en unity
Fig. 8: Seleccionamos la textura HDR que importamos previamente para ver sus parámetros en el inspector.

El campo “Texture Shape” lo cambiamos a Cube y aplicamos los cambios

cambio de tipo de textura hdr a cube para utilizar en un skybox tipo cubemap en unity
Fig. 9: Cambiamos el tipo de textura a Cube para poder usarla en el Skybox Cubemap.
ventana inspector de una textura hdr para skybox en unity
Fig. 10: Cuando terminamos de configurar la textura aplicamos los cambios.

Esto nos permitirá usar la textura para el material Skybox, podemos arrastrar la textura directamente al campo o pulsar el botón “Select” y seleccionarla en la ventana emergente.

inspector de un material skybox cubemap en unity
Fig. 11: Ahora podemos arrastrar la textura al espacio Cubemap en el inspector del material.
seleccion de cubemap hdr para un skybox en unity
Fig. 12: También se puede hacer clic en el botón select y seleccionarlo en la ventana emergente

Si todo sale correctamente, deberías ver un resultado como el de la figura 13.

inspector de un material skybox cubemap en unity con textura de cielo asignada
Fig. 13: Con esto se tiene el Skybox preparado para utilizar.

Ahora que tenemos el material Skybox configurado, vamos a aplicarlo a la escena. Para eso tenemos que abrir la pestaña “Lighting”, en la figura 14 se ve dónde se encuentra esa ventana si no la tienes abierta.

ventana configuración de iluminación en unity
Fig. 14: Abrimos la ventana Lighting para cambiar el Skybox.

Dentro de la ventana Lighting vamos a la sección “Environment” y en el primer campo llamado “Skybox Material” asignamos el material Skybox que hemos configurado anteriormente.

ventana de configuración de entorno lighting en unity
Fig. 15: Dentro de la pestaña Lighting vamos a la sección Environment y seleccionamos el Skybox.
como cambiar skybox en unity
Fig. 16: Seleccionamos la textura HDR Cubemap que configuramos previamente.

En la figura 17 se ve el primer resultado de hacer esto, la textura no se ve del todo bien debido al tipo de compresión.

cambio de skybox en unity, la textura hdr tiene baja calidad
Fig. 17: Primer resultado, el Skybox está aplicado pero la imagen tiene una cierta pérdida de calidad.

Podemos seleccionarla y en el inspector cambiar la compresión a “RGB 16”, “RGB 24” o “RGBA 32”, esto traerá un aumento en la calidad pero también en el peso de la imagen. Se puede probar descargar distintas calidades de textura HDR y probar distintos formatos para encontrar un balance entre calidad y rendimiento.

configuracion de textura en unity, formato rgba 32
Fig. 18: Seleccionamos la textura HDR y modificamos el formato.

En la figura 19 vemos el resultado final al que he llegado. Ahora que hemos cambiado el nuevo Skybox en la escena, podremos hacer Bakes de iluminación para conseguir mejores resultados.

cambio de skybox en unity, la textura hdr tiene buena calidad
Fig. 19: La calidad ha mejorado pero así también el peso de la imagen.

Scroll al inicio
Secured By miniOrange