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

Información actualizada sobre esta entrada

Este artícu­lo pertenece a una serie que con­siste en hac­er un juego sim­ple en primera per­sona acer­ca de encon­trar obje­tos den­tro de un laber­in­to. Es una de mis primeras series de cuan­do empecé el canal, aho­ra he mejo­ra­do mucho este proyec­to y puedes descar­gar el códi­go fuente para impor­tar­lo en tu pro­pio proyec­to de Uni­ty. Algún día vamos a hac­er un remake de esta serie, suscrí­bete a mi canal para estar al tan­to del nue­vo con­tenido sobre Blender, Uni­ty y pro­gra­mació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 ter­reno en Uni­ty uti­lizan­do sus propias her­ramien­tas y vamos a crear un laber­in­to usan­do los pre­fab­ri­ca­dos que se con­fig­u­raron en el segun­do artícu­lo del proyec­to, clic aquí para descar­gar los archivos y ver cómo con­fig­u­rar los prefabs.

Página principal del proyecto

Vídeo relacionado a este artículo


Descripción del objetivo

Crear el laberinto

Para crear un mod­e­lo del laber­in­to vamos a uti­lizar los pre­fab­ri­ca­dos que creamos ante­ri­or­mente, los colo­care­mos en la jer­ar­quía y comen­zare­mos a dupli­car­los y aco­modar­los en el espa­cio, como se obser­va en la sigu­iente figura.

escena en unity 3d, generacion de laberinto utilizando prefabricados
Fig. 1: Arma­do del esce­nario uti­lizan­do los pre­fab­ri­ca­dos que se hicieron en el video 2.

Crear terreno en Unity

Para crear un ter­reno en Uni­ty usare­mos el GameOb­ject "Ter­rain", el cual nos per­mi­tirá mod­i­ficar su relieve y tex­turas de man­era sim­ple uti­lizan­do dis­tin­tos pince­les y parámetros.

escena en unity 3d en la que se observa como crear un terreno en unity
Fig. 2: Uti­lizan­do las her­ramien­tas de Uni­ty podremos esculpir relieve en el terreno.

Archivos de descarga

Primero descarg­amos el sigu­iente archi­vo Zip, extrae­mos las car­petas y las lle­va­mos a Unity.

723 Descargas
carpetas de texturas que vienen en el archivo de descarga, unity 3d
Fig. 3: Extrae­mos las tex­turas del archi­vo de descar­ga para añadirlas al proyecto.

mapas de las texturas que vienen en el archivo de descarga, texturas para unity 3d
Fig. 4: Cada tex­tu­ra viene con sus mapas Albe­do, Metal­lic y Normal.


Lo sigu­iente que hace­mos es elim­i­nar todos los ele­men­tos pertenecientes al escenario.

escena simple en unity 3d, suelo con textura cesped
Fig. 5: Comen­zamos limpiando com­ple­ta­mente el escenario.

Componente Terrain — Unity

Como se dijo ante­ri­or­mente usare­mos el com­po­nente Ter­rain para crear un relieve mon­tañoso para el terreno.

Este com­po­nente uti­liza "Height Maps" o mapas de altura para crear relieves, estos mapas son tex­turas en escala de gris­es en los cuales las areas com­ple­ta­mente negras se mapean con altura mín­i­ma y las zonas blan­cas con altura máx­i­ma (ambas alturas con­fig­u­radas en los parámet­ros), el resto de las zonas en gris ten­drán una altura pro­por­cial a su tono de color.

Podemos obser­var esto en la sigu­iente imagen.

mapa de altura o height maps para general relieve en 3d y crear terreno en unity 3d
Fig. 6: El ter­reno fun­ciona con Height maps o mapas de altura.

En la jer­ar­quía hace­mos clic dere­cho > 3D Object > Terrain.

jerarquia en unity 3d, crear terreno en unity
Fig. 7: Des­de la jer­ar­quía creamos un GameOb­ject tipo terreno.

En el esce­nario aparece un plano en blan­co y en el inspec­tor podemos ver que tiene dos com­po­nentes que lo definen, la com­po­nente Ter­rain y un Col­lid­er tipo Terrain.

parametros del componente terreno en el inspector de unity 3d
Fig. 8: El ter­reno aparece en el esce­nario y podemos ver sus propiedades en el inspector.


Configuración del componente Terrain

Es impor­tante que primero con­fig­ure­mos los parámet­ros bási­cos del ter­reno, como la dimen­sión y la difer­en­cia que exi­s­tirá entre la altura máx­i­ma y mín­i­ma. Luego podemos mod­i­ficar estos parámet­ros pero prob­a­ble­mente perder­e­mos el dis­eño que teníamos.

Como se obser­va en la figu­ra 9, hace­mos clic en el ícono del engrana­je para ir a la con­fig­u­ración. Luego ingre­samos los parámetros.

Lo úni­co que voy a mod­i­ficar es la res­olu­ción del ter­reno, que será de 1000 x 1000.

boton configuracion del gameobject terreno, crear terreno en unity 3d
Fig. 9: Primero con­fig­u­ramos los parámet­ros bási­cos del inspector.

parametros del componente terreno en el inspector de unity 3d
Fig. 10: Ajus­ta­mos la res­olu­ción que ten­drá el terreno.

Configuración de las texturas

Podremos pin­tar el ter­reno uti­lizan­do dis­tin­tos con­jun­tos de tex­turas que con­si­s­tirán en mapas Albe­do y de Nor­males. Primero vamos a selec­cionar todos los mapas de nor­males que teng­amos, en el inspec­tor elegi­mos el tipo de tex­tu­ra como "Nor­mal map" y apli­camos los cam­bios. Esto lo hace­mos para todos los mapas de nor­males que tengamos.

mapas de las texturas que vienen en el archivo de descarga, texturas para unity 3d
Fig. 11: Selec­cionamos las tex­turas tipo Nor­mal Map o mapa de normales.

seleccionar tipo de textura en unity 3d
Fig. 12: En el inspec­tor podremos selec­cionar el tipo de tex­tu­ra. Selec­cionamos Nor­mal Map y aplicamos.

A con­tin­uación selec­cionamos nue­va­mente el ter­reno y hace­mos clic en el ícono del pin­cel, luego en "Edit Tex­tures…", "Add Tex­tures" (fig­uras 13 y 14).

herramienta pincel en componente terreno unity 3d
Fig. 13: Selec­cionamos la her­ramien­ta pin­cel en el com­po­nente terreno.

agregar texturas al terreno en unity3d
Fig. 14: Debe­mos con­fig­u­rar al menos una pin­tu­ra para el terreno.

En la ven­tana emer­gente podremos selec­cionar una tex­tu­ra que rep­re­sen­ta el Albe­do en los canales RGB y su canal Alpha se mapea en la suavi­dad. Otra tex­tu­ra para las Nor­males de la super­fi­cie. Además podemos con­fig­u­rar el tamaño del mosái­co o Tile­Size uti­lizan­do los cam­pos "Size" y "Off­set" que se obser­van en la figu­ra 15.

ventana para seleccionar textura albedo y normal para pintar terreno en unity 3d
Fig. 15: En la ven­tana emer­gente selec­cionamos una tex­tu­ra Albe­do y otra de normales.

Hace­mos clic en Select y elegi­mos primero el mapa Albe­do y luego el de normales.

ventana para seleccionar textura albedo y normal para pintar terreno en unity 3d
Fig. 16: Debe­mos ase­gu­rarnos de selec­cionar los mapas apropiados.


Hare­mos esto para todas las tex­turas que usare­mos para pin­tar el terreno.

En la figu­ra 17 se ven algunos val­ores que fun­cio­nan para los TileSizes.

textura seamless para suelos, cesped con margaritas, cesped con hojas, tierra y roca
Fig. 17: Val­ores del tamaño del mosaico que funcionan.

Una vez que con­fig­u­ramos todas las tex­turas, deberíamos ten­er­las todas disponibles para usar­las en la ven­tana Tex­turas en el inspec­tor, como se obser­va en la figu­ra 18.

unity 3d componente terreno, texturas seleccionadas
Fig. 18: Todas las tex­turas de la descar­ga han sido configuradas.


Creación del laberinto

Primero para man­ten­er las cosas orde­nadas voy a crear un Emp­ty GameOb­ject que llamo "Maze", den­tro del cual estarán todos los pre­fab­ri­ca­dos que util­ice para hac­er el laberinto.

jerarquia en unity 3d, empty object, lights, cameras
Fig. 19: Creamos un emp­ty object que con­tendrá todas las piezas del laberinto.

Luego arras­tro todos los pre­fab­ri­ca­dos al esce­nario y comien­zo a dupli­car­los y mover­los para for­mar los pasillos.

unity 3d diseño de nivel, armado de laberinto utilizando prefabricados
Fig. 20: Comen­zamos colo­can­do todos los pre­fab­ri­ca­dos en el escenario.

Para facil­i­tar el posi­cionamien­to de las piezas podemos usar la vista ortográ­fi­ca. En la figu­ra 20 arri­ba a la derecha ten­emos lo que se lla­ma un "Giz­mo" que mues­tra los ejes X en rojo y Z en azul, hacien­do cic en esas fle­chas podremos cam­biar la vista de la esce­na y si hace­mos clic en el cubo del cen­tro podemos alternar la vista de Per­spec­ti­va a Ortográfica.

En las fig­uras 20 y 21 podemos ver cómo es esta vista ortográ­fi­ca. El efec­to que pro­duce es como si todos los ele­men­tos se com­prim­ier­an en un plano, de modo que no obser­va­mos la profundidad.

unity 3d diseño de nivel, armado de laberinto utilizando prefabricados
Fig. 21: Dupli­camos las piezas y las move­mos en el esce­nario para con­stru­ir el laberinto.

unity 3d diseño de nivel, armado de laberinto utilizando prefabricados
Fig. 22: Uti­lizan­do la vista ortográ­fi­ca y acer­can­do la cámara nos ase­gu­ramos que las piezas encajen.

Tam­bién colo­camos algu­nas puer­tas en el esce­nario. En el video 4 de la serie creamos el pre­fab­ri­ca­do de la puer­ta, aquí está el artícu­lo.

unity 3d diseño de nivel, armado de laberinto utilizando prefabricados
Fig. 23: Colo­camos varias puer­tas en el laberinto.

Entramos en el modo juego y recor­re­mos el laber­in­to para detec­tar prob­le­mas. En la figu­ra 5 se obser­va una de las puer­tas mal colocadas.

unity 3d diseño de nivel, armado de laberinto utilizando prefabricados
Fig. 24: Probamos la esce­na para detec­tar problemas.

unity 3d puerta mal colocada
Fig. 25: Recor­rien­do el laber­in­to encon­tramos una puer­ta que esta­ba mal posicionada.


unity 3d puerta mal colocada
Fig. 26: Paramos el modo juego para cor­re­gir el problema.

Modelado del relieve

A con­tin­uación vamos a empezar a mod­e­lar las mon­tañas. Selec­cionamos el GameOb­ject Ter­rain de la jer­ar­quía y en el inspec­tor hace­mos clic en el primer ícono del com­po­nente (figu­ra 27).

Luego selec­cionamos algún patrón en la sec­ción "Brush­es" que se obser­va en la figu­ra 28.

herramienta elevacion para crear terreno en unity 3d
Fig. 27: Selec­cionamos la her­ramien­ta de ele­vación en el com­po­nente terreno.

pinceles para aplicar la modificacion del terreno, crear terreno en unity 3d
Fig. 28: Elegi­mos un pin­cel para aplicar la mod­i­fi­cación en el terreno.

Lo sigu­iente que hace­mos es pin­tar en el edi­tor y el ter­reno irá ganan­do altura.

modelado de terreno en unity 3d usando componente terrain
Fig. 29: Comen­zamos a pin­tar regiones del ter­reno para pro­ducir ele­va­ciones y crear relieve.

Otra her­ramien­ta útil es la de nive­lar (selec­ciona­da en la figu­ra 30).

herramienta de nivelacion de terreno para crear terrenos en unity 3d
Fig. 30: Selec­cionamos la her­ramien­ta de nivelación de terreno.

altura de la deformacion que se aplica, crear terreno en unity 3d
Fig. 31: Elegi­mos el val­or de altura al que quer­e­mos nive­lar el terreno.

Esto nos per­mi­tirá estable­cer una deter­mi­na­da altura y al pasar­la sobre el ter­reno en el edi­tor, las zonas más bajas comen­zarán a ele­varse y las más altas a descen­der, esto se ilus­tra en las fig­uras 32 y 33.

crear terreno en unity 3d usando componente terrain
Fig. 32: Las regiones que se encuen­tran por deba­jo del niv­el se ele­van y las que se encuen­tran por enci­ma descienden.

modelado de terreno en unity 3d usando componente terrain
Fig. 33: Podemos estable­cer zonas que ten­drán una deter­mi­na­da altura en toda su extensión.

relieve montañoso observado desde el interior de un laberinto, juego en unity 3d
Fig. 34: Entramos en modo juego para obser­var el relieve mon­tañoso des­de la per­spec­ti­va del laberinto.

relieve montañoso observado desde el interior de un laberinto, juego en unity 3d
Fig. 35: La parte más ele­va­da del relieve se encuen­tra en la direc­ción opues­ta al sol de la escena.

Luego de jugar un buen rato con las her­ramien­tas ter­miné con algo sim­i­lar a la figu­ra 36.

El propósi­to más impor­tante del relieve es cubrir el hor­i­zonte y de algún modo proveer de ori­entación al jugador.

modelado de terreno en unity 3d, laberinto en el centro
Fig. 36: Uti­lizamos las her­ramien­tas men­cionadas has­ta que este­mos sat­is­fe­chos con el diseño.


Aplicar texturas al terreno

En la fase final de este artícu­lo sobre cómo crear un ter­reno en Uni­ty apli­care­mos las tex­turas con­fig­u­radas anteriormente.

Selec­cionamos la her­ramien­ta pin­cel en el inspec­tor, un patrón cualquiera y una textura.

texturizar terreno en unity 3d
Fig. 37: Selec­cionamos la her­ramien­ta pin­cel, elegi­mos patrón y tex­tu­ra para aplicar.

Luego en el edi­tor vamos recor­rien­do el ter­reno y pintando.

Podemos alternar las tex­turas y con esto evi­tar que el ter­reno se vea monótono con una úni­ca textura.

aplicar texturas a terreno en unity 3d
Fig. 38: A la tex­tu­ra base le apli­camos otra tex­tu­ra en dis­tin­tos lugares para romper el patrón de repetición.

Las mon­tañas ten­drán una base de tier­ra y luego ire­mos apli­can­do en dis­tin­tas partes la tex­tu­ra de roca.

texturizar terreno hecho con herramientas de unity 3d
Fig. 39: A las mon­tañas le damos una base con la tex­tu­ra de tierra.
texturizar terreno hecho con herramientas de unity 3d
Fig. 41: Apli­camos la tex­tu­ra de roca en dis­tin­tas partes del relieve.

texturizar terreno hecho con herramientas de unity 3d
Fig. 40: Vista cer­cana de la tex­tu­ra de tierra.
texturizar terreno hecho con herramientas de unity 3d
Fig. 42: Tex­tu­ra de roca en relieve montañoso.
escena en unity 3d, generacion de laberinto utilizando prefabricados
Fig. 43: Tex­tu­ra de roca en relieve montañoso.

De vez en cuan­do entramos en el modo juego para ver cómo se obser­va el relieve des­de el inte­ri­or del laberinto.

relieve montañoso observado desde el interior de un laberinto, juego en unity 3d
Fig. 44: Entramos en el modo juego para obser­var los resultados.

escena en unity 3d, generacion de laberinto utilizando prefabricados
Fig. 45: Dis­eño final del laberinto.

relieve montañoso observado desde el interior de un laberinto, juego en unity 3d
Fig. 46: Dis­eño final del relieve mon­tañoso vis­to des­de el laberinto.


Conclusión

Hemos vis­to como fácil­mente podemos crear un ter­reno en Uni­ty uti­lizan­do las mis­mas her­ramien­tas que el motor nos provee. Además apli­camos dis­tin­tas tex­turas para dar­le diversidad.

El ejer­ci­cio prop­uesto en este artícu­lo y video es muy sim­ple, pero con sufi­ciente tiem­po y prác­ti­ca podemos con­stru­ir un sin número de relieves.

Este tipo de ter­renos tiene la lim­itación de que no se pueden con­stru­ir cav­er­nas o cuevas. Para eso ten­dremos que super­pon­er otro mod­e­lo 3D.

Además hemos crea­do el laber­in­to uti­lizan­do los pre­fab­ri­ca­dos con­fig­u­ra­dos en entradas ante­ri­ores. Sim­ple­mente hacien­do dupli­ca­dos y movien­do en el espacio.

Podemos hac­er laber­in­tos tan­to sim­ples como com­ple­jos y armar un sis­tema de selec­ción de niv­el si así lo deseamos. Las posi­bil­i­dades son ilimitadas.

Teng­amos en cuen­ta que este proyec­to es sólo un pro­totipo, para con­seguir una mejor cal­i­dad grá­fi­ca hay que con­stru­ir mejores mod­e­los 3D y uti­lizar may­or diver­si­dad de tex­turas y de may­or cal­i­dad. No estaría mal añadir ele­men­tos dec­o­ra­tivos como escom­bros o árboles. 

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Scroll al inicio
Secured By miniOrange