#8 Crear terreno en Unity. Construir el laberinto. [Laberinto en Primera Persona]

Información actualizada sobre esta entrada

Este artículo pertenece a una serie que consiste en hacer un juego simple en primera persona acerca de encontrar objetos dentro de un laberinto. Es una de mis primeras series de cuando empecé el canal, ahora he mejorado mucho este proyecto y puedes descargar el código fuente para importarlo en tu propio proyecto de Unity. Algún día vamos a hacer un remake de esta serie, suscríbete a mi canal para estar al tanto del nuevo contenido sobre Blender, Unity y programación.

Sígueme en itch.io y descarga el código fuente de este proyecto



PUEDES TESTEAR ESTE JUEGO AQUÍ. TAL VEZ TARDE UN POCO EN CARGAR
🔻

MOVEMENT: WASD CAMERA LOOK: MOUSE

Introducción al artículo original

Vamos a ver cómo crear un terreno en Unity utilizando sus propias herramientas y vamos a crear un laberinto usando los prefabricados que se configuraron en el segundo artículo del proyecto, clic aquí para descargar los archivos y ver cómo configurar los prefabs.

Página principal del proyecto

Vídeo relacionado a este artículo


Descripción del objetivo

Crear el laberinto

Para crear un modelo del laberinto vamos a utilizar los prefabricados que creamos anteriormente, los colocaremos en la jerarquía y comenzaremos a duplicarlos y acomodarlos en el espacio, como se observa en la siguiente figura.

Fig. 1: Armado del escenario utilizando los prefabricados que se hicieron en el video 2.

Crear terreno en Unity

Para crear un terreno en Unity usaremos el GameObject «Terrain», el cual nos permitirá modificar su relieve y texturas de manera simple utilizando distintos pinceles y parámetros.

Fig. 2: Utilizando las herramientas de Unity podremos esculpir relieve en el terreno.

Archivos de descarga

Primero descargamos el siguiente archivo Zip, extraemos las carpetas y las llevamos a Unity.

751 Descargas
Fig. 3: Extraemos las texturas del archivo de descarga para añadirlas al proyecto.

Fig. 4: Cada textura viene con sus mapas Albedo, Metallic y Normal.

Lo siguiente que hacemos es eliminar todos los elementos pertenecientes al escenario.

Fig. 5: Comenzamos limpiando completamente el escenario.

Componente Terrain – Unity

Como se dijo anteriormente usaremos el componente Terrain para crear un relieve montañoso para el terreno.

Este componente utiliza «Height Maps» o mapas de altura para crear relieves, estos mapas son texturas en escala de grises en los cuales las areas completamente negras se mapean con altura mínima y las zonas blancas con altura máxima (ambas alturas configuradas en los parámetros), el resto de las zonas en gris tendrán una altura proporcial a su tono de color.

Podemos observar esto en la siguiente imagen.

Fig. 6: El terreno funciona con Height maps o mapas de altura.

En la jerarquía hacemos clic derecho > 3D Object > Terrain.

Fig. 7: Desde la jerarquía creamos un GameObject tipo terreno.

En el escenario aparece un plano en blanco y en el inspector podemos ver que tiene dos componentes que lo definen, la componente Terrain y un Collider tipo Terrain.

Fig. 8: El terreno aparece en el escenario y podemos ver sus propiedades en el inspector.

Configuración del componente Terrain

Es importante que primero configuremos los parámetros básicos del terreno, como la dimensión y la diferencia que existirá entre la altura máxima y mínima. Luego podemos modificar estos parámetros pero probablemente perderemos el diseño que teníamos.

Como se observa en la figura 9, hacemos clic en el ícono del engranaje para ir a la configuración. Luego ingresamos los parámetros.

Lo único que voy a modificar es la resolución del terreno, que será de 1000 x 1000.

Fig. 9: Primero configuramos los parámetros básicos del inspector.

Fig. 10: Ajustamos la resolución que tendrá el terreno.

Configuración de las texturas

Podremos pintar el terreno utilizando distintos conjuntos de texturas que consistirán en mapas Albedo y de Normales. Primero vamos a seleccionar todos los mapas de normales que tengamos, en el inspector elegimos el tipo de textura como «Normal map» y aplicamos los cambios. Esto lo hacemos para todos los mapas de normales que tengamos.

Fig. 11: Seleccionamos las texturas tipo Normal Map o mapa de normales.

Fig. 12: En el inspector podremos seleccionar el tipo de textura. Seleccionamos Normal Map y aplicamos.

A continuación seleccionamos nuevamente el terreno y hacemos clic en el ícono del pincel, luego en «Edit Textures…», «Add Textures» (figuras 13 y 14).

Fig. 13: Seleccionamos la herramienta pincel en el componente terreno.

Fig. 14: Debemos configurar al menos una pintura para el terreno.

En la ventana emergente podremos seleccionar una textura que representa el Albedo en los canales RGB y su canal Alpha se mapea en la suavidad. Otra textura para las Normales de la superficie. Además podemos configurar el tamaño del mosáico o TileSize utilizando los campos «Size» y «Offset» que se observan en la figura 15.

Fig. 15: En la ventana emergente seleccionamos una textura Albedo y otra de normales.

Hacemos clic en Select y elegimos primero el mapa Albedo y luego el de normales.

Fig. 16: Debemos asegurarnos de seleccionar los mapas apropiados.

Haremos esto para todas las texturas que usaremos para pintar el terreno.

En la figura 17 se ven algunos valores que funcionan para los TileSizes.

Fig. 17: Valores del tamaño del mosaico que funcionan.

Una vez que configuramos todas las texturas, deberíamos tenerlas todas disponibles para usarlas en la ventana Texturas en el inspector, como se observa en la figura 18.

Fig. 18: Todas las texturas de la descarga han sido configuradas.

Creación del laberinto

Primero para mantener las cosas ordenadas voy a crear un Empty GameObject que llamo «Maze», dentro del cual estarán todos los prefabricados que utilice para hacer el laberinto.

Fig. 19: Creamos un empty object que contendrá todas las piezas del laberinto.

Luego arrastro todos los prefabricados al escenario y comienzo a duplicarlos y moverlos para formar los pasillos.

Fig. 20: Comenzamos colocando todos los prefabricados en el escenario.

Para facilitar el posicionamiento de las piezas podemos usar la vista ortográfica. En la figura 20 arriba a la derecha tenemos lo que se llama un «Gizmo» que muestra los ejes X en rojo y Z en azul, haciendo cic en esas flechas podremos cambiar la vista de la escena y si hacemos clic en el cubo del centro podemos alternar la vista de Perspectiva a Ortográfica.

En las figuras 20 y 21 podemos ver cómo es esta vista ortográfica. El efecto que produce es como si todos los elementos se comprimieran en un plano, de modo que no observamos la profundidad.

Fig. 21: Duplicamos las piezas y las movemos en el escenario para construir el laberinto.

Fig. 22: Utilizando la vista ortográfica y acercando la cámara nos aseguramos que las piezas encajen.

También colocamos algunas puertas en el escenario. En el video 4 de la serie creamos el prefabricado de la puerta, aquí está el artículo.

Fig. 23: Colocamos varias puertas en el laberinto.

Entramos en el modo juego y recorremos el laberinto para detectar problemas. En la figura 5 se observa una de las puertas mal colocadas.

Fig. 24: Probamos la escena para detectar problemas.

Fig. 25: Recorriendo el laberinto encontramos una puerta que estaba mal posicionada.

Fig. 26: Paramos el modo juego para corregir el problema.

Modelado del relieve

A continuación vamos a empezar a modelar las montañas. Seleccionamos el GameObject Terrain de la jerarquía y en el inspector hacemos clic en el primer ícono del componente (figura 27).

Luego seleccionamos algún patrón en la sección «Brushes» que se observa en la figura 28.

Fig. 27: Seleccionamos la herramienta de elevación en el componente terreno.

Fig. 28: Elegimos un pincel para aplicar la modificación en el terreno.

Lo siguiente que hacemos es pintar en el editor y el terreno irá ganando altura.

Fig. 29: Comenzamos a pintar regiones del terreno para producir elevaciones y crear relieve.

Otra herramienta útil es la de nivelar (seleccionada en la figura 30).

Fig. 30: Seleccionamos la herramienta de nivelación de terreno.

Fig. 31: Elegimos el valor de altura al que queremos nivelar el terreno.

Esto nos permitirá establecer una determinada altura y al pasarla sobre el terreno en el editor, las zonas más bajas comenzarán a elevarse y las más altas a descender, esto se ilustra en las figuras 32 y 33.

Fig. 32: Las regiones que se encuentran por debajo del nivel se elevan y las que se encuentran por encima descienden.

Fig. 33: Podemos establecer zonas que tendrán una determinada altura en toda su extensión.

Fig. 34: Entramos en modo juego para observar el relieve montañoso desde la perspectiva del laberinto.

Fig. 35: La parte más elevada del relieve se encuentra en la dirección opuesta al sol de la escena.

Luego de jugar un buen rato con las herramientas terminé con algo similar a la figura 36.

El propósito más importante del relieve es cubrir el horizonte y de algún modo proveer de orientación al jugador.

Fig. 36: Utilizamos las herramientas mencionadas hasta que estemos satisfechos con el diseño.

Aplicar texturas al terreno

En la fase final de este artículo sobre cómo crear un terreno en Unity aplicaremos las texturas configuradas anteriormente.

Seleccionamos la herramienta pincel en el inspector, un patrón cualquiera y una textura.

Fig. 37: Seleccionamos la herramienta pincel, elegimos patrón y textura para aplicar.

Luego en el editor vamos recorriendo el terreno y pintando.

Podemos alternar las texturas y con esto evitar que el terreno se vea monótono con una única textura.

Fig. 38: A la textura base le aplicamos otra textura en distintos lugares para romper el patrón de repetición.

Las montañas tendrán una base de tierra y luego iremos aplicando en distintas partes la textura de roca.

Fig. 39: A las montañas le damos una base con la textura de tierra.
Fig. 41: Aplicamos la textura de roca en distintas partes del relieve.

Fig. 40: Vista cercana de la textura de tierra.
Fig. 42: Textura de roca en relieve montañoso.
Fig. 43: Textura de roca en relieve montañoso.

De vez en cuando entramos en el modo juego para ver cómo se observa el relieve desde el interior del laberinto.

Fig. 44: Entramos en el modo juego para observar los resultados.

Fig. 45: Diseño final del laberinto.

Fig. 46: Diseño final del relieve montañoso visto desde el laberinto.

Conclusión

Hemos visto como fácilmente podemos crear un terreno en Unity utilizando las mismas herramientas que el motor nos provee. Además aplicamos distintas texturas para darle diversidad.

El ejercicio propuesto en este artículo y video es muy simple, pero con suficiente tiempo y práctica podemos construir un sin número de relieves.

Este tipo de terrenos tiene la limitación de que no se pueden construir cavernas o cuevas. Para eso tendremos que superponer otro modelo 3D.

Además hemos creado el laberinto utilizando los prefabricados configurados en entradas anteriores. Simplemente haciendo duplicados y moviendo en el espacio.

Podemos hacer laberintos tanto simples como complejos y armar un sistema de selección de nivel si así lo deseamos. Las posibilidades son ilimitadas.

Tengamos en cuenta que este proyecto es sólo un prototipo, para conseguir una mejor calidad gráfica hay que construir mejores modelos 3D y utilizar mayor diversidad de texturas y de mayor calidad. No estaría mal añadir elementos decorativos como escombros o árboles.

Salir de la versión móvil
Secured By miniOrange