
El entorno
Tutorial
Beginner
+0XP
20 mins
(257)
Unity Technologies

En el tutorial anterior, acabas de construir el personaje del jugador. Este personaje se puede mover, pero actualmente no tiene nada qué explorar. Ahora estás listo para añadir el entorno a tu Scene (Escena), iluminarla correctamente y añadir una Malla de navegación o Navigation Mesh para ayudar a los enemigos que eventualmente van a deambular por los pasillos de tu casa embrujada.
1. ¿Cómo se añade el entorno?
En el tutorial anterior, acabas de construir el personaje del jugador. Este personaje se puede mover, pero actualmente no tiene nada qué explorar. Ahora estás listo para añadir el entorno a tu Scene (Escena), iluminarla correctamente y añadir una Navigation Mesh (Malla de navegación) para ayudar a los enemigos que eventualmente van a deambular por los pasillos de tu casa embrujada.
Construir entornos en Unity es un proceso que puede variar mucho dependiendo en el tipo de juego que estás haciendo. Generalmente esto implica ejemplificar modelos múltiples al arrastrarlos desde la ventana Project (Proyecto) a la ventana Hierarchy (Jerarquía). El entorno usualmente necesita una presencia física dentro de la escena; por lo tanto, se añade Colliders (Colisionadores) a cada uno de los modelos. A menudo, estos elementos son Prefabs (Prefabricados); entonces, no tendrás que agregar Colliders nuevos cada vez que añadas un elemento al entorno.
Crear los entornos para juegos puede ser un proceso muy laborioso y ya has practicado estos procesos cuando configuraste el personaje del jugador. Ya hemos creado el entorno para este juego para que no tengas que hacer algo muy repetitivo. Todo lo que necesitas hacer es ejemplificarlo:
1. En la ventana Project ve a la carpeta Assets > Scenes (Recursos > Escenas) y haz clic doble en MainScene (Escena principal) para cargarla.
2. Navega a Assets > Prefabs (Recursos > Prefabricados) y selecciona el Level Prefab (Nivel prefabricado)
3. Arrastra el Level Prefab desde la ventana Project a la jerarquía para ejemplificarlo.
El Level Prefab está constituido de muchos modelos, entre ellos paredes, suelos, puertas, muebles y decoraciones. Si quieres ver cómo algo está armado, simplemente puedes expandir su jerarquía en la ventana Hierarchy.
¿Cómo se posiciona el personaje del jugador?
Ahora que tiene un entorno dentro de la Scene, necesitas colocar a JohnLemon de tal manera que el personaje empieza el juego en el lugar correcto:
1. En la ventana Hierarchy, selecciona el GameObject JohnLemon
2. En el Inspector, configura la propiedad Position (Posición) del componente Transform (Transformar) a (-9,8, 0, -3,2).
3. Ve a File > Save y guarda tus cambios a la Scene.
4. Entra al modo Play para ver tus cambios. La cámara no está exactamente donde necesita estar, pero ahora hay un nivel completo para que JohnLemon explore y del que pueda escapar.
Este entorno es genial, pero se ve un poco plano. El siguiente paso es ajustar la iluminación para la Scene.
2. ¿Cómo se ilumina el entorno?
La iluminación tiene un gran impacto en el ambiente. Cambiar la iluminación en tu juego es el primer paso hacia crear un entorno realmente macabro que los jugadores puedan explorar.
Las luces en Unity son simplemente GameObjects con un componente Light (luz) anexado. El componente Light contiene configuraciones que te permiten cambiar el color y la intensidad de una luz, y también el tipo de luz y otros controles más complejos para las sombras y Lightmapping.
Cada Scene nueva en Unity viene con una Luz direccional o Directional Light, uno de los dos GameObjects que se crea por defecto. Tu Scene también tiene una serie de luces extra que fueron agregadas por el Level Prefab.
Vamos a comenzar con la Luz direccional o DIrectional Light.
3. ¿Cómo se cambia la Luz direccional (Directional Light)?
La Luz direccional (Directional Light) en tu Scene (Escena) está configurada al tipo Directional o Direccional Type. Las luces de tipo direccional imitan objetos luminarios muy distantes, como el sol. Pueden colocarse en cualquier lugar en la escena y rotarse al ángulo en el que la luz afecta la escena.

Vamos a alterar la luz direccional para que se vea más como la luz de la luna y para que cree unas sombras interesantes:
1. En la ventana Hierarchy, selecciona el GameObject Directional Light.
2. Vas a cambiar algunas de las propiedades del componente Light, comenzando con el Color, pero primero necesitas entender cómo funcionan los colores.
En el Inspector, haz clic en la propiedad Color. Hacer clic en cualquier propiedad Color en Unity va a abrir la ventana para escoger colores o Color picker window:

3. La ventana para escoger colores te da un número de opciones para configurar los valores de un color.
Cada color está constituido de cuatro canales:
- rojo,
- verde,
- azul,
- Alpha (alfa)
La cantidad de cada uno de estos canales que constituyen un color puede representarse en distintas maneras. Puedes escoger la representación usando el menú desplegable debajo del círculo de colores.
Verifica que el menú desplegable esté configurado a RGB 0-255. Esta representación significa que cada canal está representado por un entero entre 0 y 255.

4. Configura la propiedad Color del componente Light a (225, 240, 250). Esto creará una luz de un azul muy tenue en vez de una amarilla.
5. En el componente Light, incrementa la propiedad Intensity (Intensidad) a 2.
6. Ahora puedes mejorar la calidad de las sombras tenebrosas en la casa embrujada. En el componente Light, encuentra la propiedad Realtime Shadows (Sombras en tiempo actual). Cambia su propiedad Resolution (Resolución) de Use Quality Settings (Usar configuraciones de calidad) a Very High Resolution (La resolución más alta).
7. Configura el Bias de las propiedades Realtime Shadows y Normal Bias a 0,01.
8. En el componente Transform (Transformación), configura la propiedad Rotation (rotación) a (30, 20, 0). Esto va a rotar la luz de tal manera que brille a través de las ventanas de la casa.
9. Guarda tu Scene.
¡La escena ya se ve mucho más tenebrosa que antes!
4. ¿Cómo se crea un efecto de iluminación global con Lightmapping?
Hay dos tipos de iluminación en Unity que te ayudan a simular el comportamiento de las luces en el mundo real: iluminación directa e indirecta. La iluminación directa viene desde una fuente específica, como el sol (la luz direccional en tu escena). La iluminación indirecta es la iluminación adicional que ocurre cuando la luz directa rebota en otras superficies.

La misma Escena (Scene): Sin iluminación (izquierda), solo con iluminación directa (centro) y con iluminación indirecta global (derecha). Presta atención a cómo los colores se transfieren cuando la luz «rebota» entre superficies, dándole un efecto mucho más realístico.
Este efecto se crea comúnmente en Unity usando la herramienta Global Illumination Lightmapping o Iluminación global con Lightmapping. Lightmapping imita el choque y rebote de luz en la escena y la escribe en un recurso o Asset guardado en el proyecto. Esto toma algo de tiempo, pero puede resultar en escenas que parecen muy realísticas.
Para ahorrar algo de tiempo puedes usar una aproximación para crear un efecto similar:
1. Ve al menú Window (ventana) y selecciona Rendering > Lighting Settings (Reproducción > Configuraciones de iluminación). Haz clic y arrastra la etiqueta con el nombre y estaciónala junto a la ventana Inspector.
La ventana Lighting Settings (Configuraciones para la iluminación) es el punto de control principal para las herramientas de iluminación global de Unity para la escena cargada actualmente. También contiene las configuraciones para la iluminación del entorno (Environment Lighting), reflejos (Reflections) y niebla (fog).
The Lighting Settings window is the main control point for Unity’s Global Illumination features for the currently loaded scene. It also contains the settings for Environment Lighting, Reflections and Fog
2. En la sección Realtime Lighting (Iluminación en tiempo actual) deshabilita la casilla Realtime Global Illumination (Iluminación global en tiempo actual). En la sección Mixed Lighting (Iluminación mixta) deshabilita la casilla Baked Global Illumination (Iluminación global incrustada).
3. En la sección Environment (entorno), usa el botón en forma de círculo en la extrema derecha de la propiedad Skybox Material (Material para la bóveda celestial) para configurarla a None (una referencia tipo null). No necesitas un cielo realístico para este juego y vas a usar iluminación alternativa.

4. En la sección Environment (entorno), configura la fuente de luz para el entorno o Environment Light Source a Gradient (gradiente).
El gradiente está separado en tres campos de colores:
- Sky o cielo, el mismo que controla la luz del entorno que viene desde arriba de la escena.
- Equator o ecuador, el mismo que controla la luz que viaja desde el horizonte hacia el medio de la escena.
- Ground o suelo, el mismo que controla la luz que viene desde debajo de la escena.
Puedes considerar el gradiente como una gran esfera que envuelve a toda la escena.
5. Configura el color del cielo o Sky a un gris más claro (170, 180, 200). Esto incrementará el resplandor de los pisos y objetos como camas y mesas.
6. Configura el color del ecuador o Equator a un gris azulado (90, 110, 130). Esto incrementará el resplandor de las paredes y los ornamentos.
7. Configura el color del piso o Ground a negro (0, 0, 0). El color del piso puede agregar una luz que apunta hacia arriba que crearía un efecto de iluminación global muy agradable. No obstante, este efecto sería demasiado resplandeciente para la casa embrujada que estás creando.
8. Guarda tu escena.
Acabas de completar la iluminación básica para tu juego y la has usado para mejorar su ambiente tenebroso. Luego, crearás una malla que ayudará a los fantasmas a moverse a través del entorno de tu juego.
5. ¿Cómo se añade una malla de navegación o Navigation Mesh?
Todos sabemos que las casas embrujadas tienen fantasmas que deambulan en los pasillos. ¡La tuya no debería ser diferente!
Para ayudar a nuestros fantasmas a navegar a través de la casa, Unity tiene un sistema integrado llamado NavMesh o malla de navegación. En el segundo tutorial aprendiste que una malla o Mesh es un conjunto de triángulos que calzan el uno con el otro para definir una forma. Esta malla permite que JohnLemon sea reproducido en la pantalla. La malla de navegación o NavMesh es una forma invisible sobre el suelo que define un área en la que los GameObjects seleccionados se pueden mover.
Entonces, ¿cómo decides qué áreas se pueden mover y cuáles no?
¿Cómo se designa un GameObject como algo estático?
Cuando se identifica un GameObject como algo estático o Static, el sistema de navegación de Unity asume que no se moverá. El entorno de tu juego está constituido de muchos GameObject con muchos componentes de reproducción de mall o Mesh Renderer. La combinación de todas las mallas de los componentes de reproducción de malla o Mesh Renderer Components cuyos GameObjects han sido designados como estáticos forma la base para la malla de navegación o NavMesh.
Para identificar los GameObjects del entorno como estáticos:
1. En la jerarquía o Hierarchy, selecciona el GameObject Level (nivel);
2. En el inspector, habilita la casilla Static;
3. Una casilla de diálogo va a aparecer preguntándote si quieres habilitar las casillas estáticas para todos los objetos hijos también. Selecciona, Yes, change children (Sí, cambia los hijos).
4. Ahora el GameObject Level (nivel) y todos sus GameObjects hijos están designados como estáticos, pero necesitas establecer una excepción. Hay un Ceiling Plane o plano del techo en el diseño del nivel, el mismo que se usa para crear sombras. Si incluyes esto, los fantasmas podrían terminar caminando en el techo. Aunque suena muy tenebroso, eso no va a funcionar en este juego.
En la ventana Hierarchy expande el GameObject Level y sus hijos.
5. Ve a Level > Corridors> Dressings> Ceiling Plane (Nivel > Pasillos > Decoración> Plano del techo) y selecciona el GameObject Ceiling Plane o plano del techo.
6. En el Inspector, deshabilita la casilla Static (estático).
7. Ve a File > Save (Archivo > Guardar) y guarda tu escena.
Tal vez habrás notado que estás haciendo estos cambios dentro de la escena en vez de en el Prefab Level. Es decir, estás ignorando la configuración del Prefab sin cambiarla. Esto es muy útil cuando quieres hacer cambios menores a un patrón estándar
6. ¿Cómo se crea la Malla de navegación o NavMesh?
El proceso de crear una malla de navegación o Navmesh se llama baking. Esto se hace desde la ventana Navigation (navegación).
Para crear tu Navmesh:
1. En la barra de menú ve a Window > AI > Navigation (Ventana > Inteligencia artificial > Navegación) para abrir la ventana Navigation. La ventana debería anclarse a la ventana Inspector. Si no lo hace, arrástrala y ánclala allí.
2. Hay cuatro pestañas en la parte superior de la ventana Navigation: Agents (agentes), Areas (áreas), Bake (crear un NavMesh) y Object (objeto).
Selecciona la pestaña Bake.
3. La configuración de Bake controla los detalles de cómo se construirá la malla de navegación o Navmesh. Las primeras configuraciones se refieren a los agentes que van a atravesar la malla (los fantasmas que deambularán) o los Navmesh Agents. Se refieren específicamente al tamaño de los agentes y el terreno en el que pueden moverse.
La única configuración que necesitas ajustar para tu juego es el Agent Radius (Radio del Agente). Los fantasmas que están deambulando dentro de la casa embrujada serán más pequeños que los por defecto.
Cambia el Agent Radius a 0,25.
4. Selecciona el botón Bake en la parte inferior derecha de la ventana.
El proceso de crear un Navmesh o Baking puede tomar de unos segundos a unos cuantos minutos, dependiendo del poder de procesamiento de tu computadora. Cuando termina, el entorno en la ventana Scene estará cubierto por una malla celeste. Esta es el área del entorno en la que los fantasmas podrán deambular.
La malla de navegación o Navmesh solo será visible cuando la ventana Navigation está abierta y activa (si cambias a la pestaña Inspector, la malla desaparecerá de la vista Scene). No te preocupes si no puedes verlo. Todavía está allí.
5. Recuerda que debes guardar los cambios que has hecho a tu escena para que no pierdas lo que has hecho hasta ahora.
7. Resumen
En este tutorial añadiste un entorno muy interesante del que JohnLemon pueda escaparse. También lo has iluminado de manera apropiada. También creaste un NavMesh; de esa manera, los enemigos serán capaces de deambular por el entorno.
¡Tu juego está empezando a tomar forma y a verse muy bien! Es hora de hacer que la cámara se mueva y de agregar efectos de posprocesamiento que harán que todo se vea mucho mejor en tu escena.