El tutor de nuestro curso online de Desarrollo de Aplicaciones para Android, Víctor Ramírez Las,…
Creación y configuración de un terreno en Unity 3D
1.
Creación y configuración de un terreno en Unity 3D
Una vez presentados los elementos básicos del motor de juegos Unity (Assets, GameObjects, Componentes), es el momento de ver más detalladamente la configuración de los objetos que utilizaremos en nuestros videojuegos 3D.
Comenzaremos viendo cómo diseñar y construir un escenario, que será el lugar donde se desarrolle la acción de nuestro videojuego. Explicaremos las posibilidades que nos ofrece el objeto ‘Terrain‘ (terreno) de Unity 3D para definir dimensiones, configurar su orografía (montañas) o añadir árboles y vegetación a la superficie. Podemos acceder a él a través del menú GameObject > 3D Object > Terrain.
En la siguiente imagen se mostrará como al seleccionar esta opción, se añade a la escena un GameObject denominado Terrain, que establece la base inicial para la creación del escenario:
Posteriormente, centraremos nuestra atención en la ventana inspector del objeto Terrain, y más concretamente en el componente Terrain (Script), para entender cada una de las herramientas disponibles para la edición del terreno.
Nota: el objeto Terrain aparece etiquetado como (Script) para versiones anteriores de Unity, no para la 5.0
Si posicionamos el cursor sobre el objeto Terrain en la escena, con cualquiera de la siguientes opciones seleccionadas , se mostrará un foco sobre dicho terreno, que indicará la zona donde se aplicará la herramienta que estamos usando.
Altura del terreno
A continuación, se describirán las opciones destinadas a cambios en la altura del terreno:
- Raise/Lower Height: esta opción permite pintar sobre la superficie, aumentando la altura del terreno a medida que se mueva el cursor sobre la zona con el botón izquierdo del ratón pulsado. Si se desea disminuir el tamaño de una determinada estructura, bastará con pulsar la tecla shift a la vez que se realiza la misma operación descrita con anterioridad. Además es posible cambiar de pincel (brushes) para visualizar efectos variados en la superficie, e inclusive modificar los ajustes del pincel seleccionado para aumentar o disminuir el tamaño o la intensidad del efecto.
2. Paint Height: muy similar a la herramienta anterior, pero que proporciona un ajuste para establecer una altura predeterminada, que aplicado a zonas que estén por encima de ese valor se reducirán, y en aquellas que estén por debajo aumentará su altura.
3. Smooth Height: permite suavizar zonas cercanas para visualizar terrenos menos abruptos, proporcionando una superficie más constante. Además, si se diseñan efectos con pinceles más llamativos, esta herramienta permite suavizar los trazos dibujados.
Textura del terreno
Como se ha podido visualizar en el apartado anterior, el terreno implementado no tiene ninguna textura asociada a la superficie, por lo que vamos a ver los pasos para asignar una textura disponible en los recursos del proyecto y que podemos ver representados en la secuencia de imágenes de abajo:
- Desde la herramienta de pincel, y pulsando el botón «Edit Textures», accedemos a una nueva ventana que permite añadir texturas al terreno implementado
- Pulsamos el botón «Select» de la casilla «Texture», y accedemos a las texturas disponibles en el proyecto (dependerá de los Assets que hayamos importado)
- Una vez se ha localizado la textura que se desea aplicar a la superficie, se pulsa en el botón «Add» para visualizar en la escena el nuevo diseño aplicado.
Árboles en el escenario
Otra de las herramientas disponibles en Unity para la creación de escenarios, es la opción de poder añadir árboles al terreno creado. Para ello seguimos los siguientes pasos, muy similares a cuando asignamos una textura a la superficie:
- Activamos la siguiente herramienta , y pulsamos el botón denominado Edit Trees.
- Posteriormente, seleccionamos el icono situado a la derecha del campo Tree (el campo Bend Factor hace referencia al factor de curvatura con el que responderá el árbol ante al viento), mostrando una nueva ventana con los diferentes recursos/opciones que tenemos en el proyecto (dependerá de los Assets que hayamos importado al mismo).
- Tras seleccionar uno de los elementos disponibles, se pulsará en el botón Add para que esté disponible desde el editor Unity
- Ya podemos añadir árboles al terreno con tan solo hacer click con el botón izquierdo sobre la superficie.
A continuación, se describirán las diferentes propiedades que permitan controlar como pintar los elementos en el escenario:
Propiedad | Función |
Brush Size | Tamaño del área para el dibujado de árboles. |
Tree Density | Número de árboles que se dibujarán en una determinada área. |
Color Variation | Permite definir un rango de valores para el color del árbol. |
Tree Height | Controla la altura del árbol a dibujar. Se define la propiedad variation para establecer un rango de alturas para el árbol diseñado. |
Tree Width | Controla el ancho del árbol a dibujar. Se define la propiedad variation para establecer un rango de anchura para el árbol diseñado. |
Herramienta de hierba y otros detalles
Desde esta herramienta, es posible crear en la superficie del terreno una capa de hierba o arbustos, que proporcionan mayor realismo a los escenarios. Para ello, realizamos nuevamente los pasos que son similares a los que vimos para texturas o árboles:
- Activamos el icono y seleccionamos el botón Edit Details… en la ventana inspector.
- Se mostrará una ventana denominada Add Grass Texture, en la que seleccionaremos el icono situado a la derecha del campo Detail Texture
- Se nos mostrará una nueva ventana con una colección de texturas 2D (el número y variedad, dependerá de los Assets de texturas que hayamos importado al proyecto), de las que deberemos seleccionar una.
- Una vez seleccionada, pulsamos el botón Add, y ya será posible realizar click con el botón izquierdo del ratón sobre el terreno para añadir hierba/césped a la superficie.
A continuación, se describirán las diferentes propiedades que pueden definirse para la textura añadida para la hierba:
Propiedad | Función |
Min Width, Min Height, Max Width y Max Height | Valor mínimo y máximo, tanto de la anchura como de la altura asociada a la hierba. |
Noise Spread | Controla el tamaño aproximado de los parches que se alternarán, a partir de un área seleccionada. |
Healthy Color y Dry Color | Muestran la salud de las matas de hierba caracterizadas por su color (sanas y secas). |
Billboard | Al activar esta opción, las imágenes de hierba van a rotar para situarse de frente a la cámara. Es una opción muy útil para mostrar un campo más denso, sin la posibilidad de visualizar las matas de hierba de lado. |
Ajustes generales y de renderización
Vamos a ver los diferentes ajustes generales para los elementos que se definen en un terreno:
Base Terrain
Propiedad | Función |
Pixel Error | Precisión al renderizar los mapas del terreno (texturas, heightmap etc.). |
Base Map Distance | Distancia máxima para mostrar las texturas completas el terreno. Al superar el valor indicado se utilizarán imágenes de baja resolución para una mayor eficiencia. |
Cast Shadows | Proyección de sombras en el terreno. |
Material | Material seleccionado para renderizar el terreno. Se seleccionarán de los recursos disponibles del proyecto. Unity proporciona un editor desde el menú **Assets > Create > Material**. |
Physics Material | Establece las físicas de fricción y rebote del terreno. Unity proporciona un editor para la creación de físicas propias a través del menú **Assets > Create > Physics Material**. |
Tree and Detail Objects
Propiedades asociadas al diseño de árboles en el terreno.
Propiedad | Función |
Draw | Al activar esta opción se dibujan los recursos añadidos al terreno (árboles, hierba/césped etc.). |
Detail Distance | Distancia a la cámara para eliminar los detalles del árbol. |
Detail Density | Permite establecer el nivel de detalle asociado a un objeto, que al disminuirlo reduce la sobrecarga de renderización. |
Tree Distance | Distancia desde la cámara para la eliminación de los árboles. |
Billboard Start | Distancia desde la cámara para la sustitución de árboles 3D por imágenes planas. |
Fade length | Distancia en la que se intercambiarán imágenes planas con árboles 3D. |
Max Mesh Trees | Número máximo de árboles 3D dibujados, que al ser superado se establecerán imágenes planas. |
Wind Settings
Propiedades asociadas a la influencia del viento sobre la hierba.
Propiedad | Función |
Speed | Velocidad del viento sobre la hierba situado sobre el terreno. |
Size | Tamaño de la onda que se genera al incidir el viento sobre la hierba en un determinado área. |
Bending | Grado de inclinación del objeto hierba al repercutir sobre ellos el viento. |
Grass Tint | Tono de color aplicado a la hierba cuando se mueve por acción del viento. |
Resolution
Propiedades generales del terreno.
Propiedad | Función |
Terrain Width | Tamaño del terreno en su eje X. |
Terrain Length | Tamaño del terreno en su eje Z. |
Terrain Height | Tamaño del terreno en su eje Y. |
Heightmap Resolution | Resolución en pixeles del terreno, cuyo valor deberá ser potencia de dos y sumarle una unidad. Como ejemplo 257 = 256 + 1. |
Detail Resolution | Define la resolución del mapa para construir áreas más pequeñas y con mayor detalle. |
Detail Resolution Per Patch | Largo o ancho de la cuadricula en una sola llamada de dibujo. |
Control Texture Resolution | Resolución que controla el cambio de texturas del terreno. |
Base Texture Resolution | Resolución básica de la textura a utilizar cuando se supera una determinada distancia definida en la propiedad Base Map Distance. |
Además desde esta herramienta es posible acceder a los botones Import Raw y Export Raw, que permiten exportar o importar el terreno creado en un archivo con formato RAW (por ejemplo con el software para creación de paisajes 3D Bryce) y poder editarlo con herramientas de terceros (por ejemplo Photoshop o Gimp).
En la próxima publicación mostraremos en un video cómo crear un paisaje con el objeto terrain.
Esta entrada tiene 5 comentarios
Los comentarios están cerrados.
[…] 1.Creación y configuración de un terreno en Unity 3D […]
[…] 1.Creación y configuración de un terreno en Unity 3D […]
[…] la siguiente serie de tutoriales sobre Unity 3D explicaremos en detalle la configuración de un terrero/escenario y otros GameObjects que se […]
[…] con los GameObject de Unity 3D, y como parte de nuestro aprendizaje en el uso de este motor de juegos, vamos a explicar uno de los […]
[…] GameObject Terrain (menú GameObject > 3D Object > Terrain) para que el personaje del jugador pueda desplazarse y realizar los movimientos seleccionados por el usuario. No se profundizará en este aspecto ya que la creación de un terreno se ha tratado en otros contenidos que hemos publicado. […]