29,99 €
¿Te has planteado alguna vez crear tu propio videojuego, pero no sabes por dónde empezar? Diseñado para principiantes, este manual te guiará paso a paso a través de los fundamentos esenciales de Unity, desmitificando la idea de que la programación es solo para expertos. Este libro te proporcionará, con explicaciones claras y prácticas guiadas, una base sólida para lanzarte al apasionante mundo del desarrollo de videojuegos. Además, incluye paquetes de recursos para que puedas aplicar directamente lo que aprendes. A lo largo de 14 capítulos, estructurados de manera cuidadosa, descubrirás cómo: - Entender y configurar la interfaz de Unity. - Crear escenarios modulares y terrenos detallados. - Programar y manejar objetos para que interactúen de manera dinámica. - Dominar la Programación Orientada a Objetos ¡y mucho más! Este libro ha sido escrito por Marc Lidón, programador y artista 3D con más de una década de experiencia en la creación de materiales didácticos innovadores. Reconocido por su enfoque accesible y práctico, Marc simplifica conceptos complejos y los hace comprensibles para todos. Su obra, alejada de la rigidez académica tradicional, ofrece una aproximación cercana y accesible, valorada tanto por estudiantes como por autodidactas, consolidándolo como una de las voces más efectivas en su campo. Si buscas una introducción amigable y completa al mundo de Unity, este libro es tu mejor aliado. ¡Atrévete a dar el primer paso y empieza a desarrollar tus propios prototipos de videojuegos hoy mismo con Unity!
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 491
Veröffentlichungsjahr: 2025
Unity 3D
© 2025 Marc Lidón
Primera edición, 2018
Segunda edición, 2025
© 2025 MARCOMBO, S. L. www.marcombo.com
Gran Via de les Corts Catalanes 594, 08007 Barcelona
Contacto: [email protected]
Ilustración de cubierta: Jotaká
Corrección: Anna Alberola
Directora de producción: M.a Rosa Castillo
Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra
ISBN del libro en papel: 978-84-267-3969-8
ISBN del libro electrónico: 978-84-267-4003-8
Producción del ePub: booqlab
Cubierta
Título
Créditos
Índice
PRÓLOGO
1. Introducción a Unity
Introducción
¿Qué es Unity?
Descarga e instalación de Unity
Proyectos 2D y 3D
Guardar el proyecto y la escena
Vista previa de la interfaz
Configurar la interfaz
2. Interfaz de Unity
Importación de Assets
Ventana Proyectos (Project)
Ventana Escena (Scene View)
Ventana Juego (Game View)
Barra de herramientas del Game View
Play Mode
Ventana Jerarquía (Hierarchy window)
Ventana Inspector y creación de un GameObject
3. Editor de terrenos
Editor de terrenos
Crear un terreno
Crear terrenos adyacentes
Pintar terrenos
Configurar la altura del terreno (Set Height)
Suavizar (Smooth Height)
Estampado de terreno (Stamp Terrain)
Pintar texturas (Paint Texture)
Eleva o baja el terreno (Raise or Lower Terrain)
Pintar agujeros (Paint Holes)
La herramienta Pintar árboles (Paint Trees)
La herramienta Pintar detalles (Paint Details)
Configuración del terreno (Terrain Settings)
Basic Terrain
Tree & Detail Objects
Wind Settings for Grass
Mesh Resolution
Holes Settings
Texture Resolutions
Lighting
Lightmapping
Poner agua en el terreno
Crear una zona de viento (windzone)
Editar árboles
El encabezado
Editar grupos
Propiedades de los grupos de rama
Distribution
Geometry
Shape
Wind
Propiedades de los grupos de hojas
Distribution
Geometry
Shape
Wind
Ejemplo de un árbol
4. Creación de un escenario modular
Importar los modelos
Modelos
Nuestro modelo en escena
Materiales y texturas
El sombreado de los materiales
Parámetros básicos de los materiales
Rendering Mode
Main Maps (Mis mapas)
Albedo
Modo Specular parámetro Specular
Modo Metallic parámetro Metallic
Smoothness
Normal Map
Height Map
Oclusion Map
Emission
Detail Mask
Parámetros de escalado y repetición
Secondary Maps
Colliders y Rigid Bodies
Model vs Prefabs
Montar un escenario simple
Sector A
Importar Mini First Person Controller
5. Introducción básica de C# con Unity
Introducción
Creando nuestro primer script
Void Start
Crear y manipular variables
Trabajar con operadores aritméticos
Operadores lógicos y de comparación
Crear declaraciones lógicas con if – else
Crear declaraciones con switch
Trabajar con loops
While
For
Crear y llamar funciones
Entender qué son los arrays
Mi primera Clase
6. Programación orientada a objetos
Introducción
La clase GameObject
Acceder a los componentes
Entendiendo las transformaciones
Vector3
Mover objetos
Time.deltaTime
Mover objetos con Transform.Translate
Mover objetos de un punto A a un punto B
Mover objetos de ida y retorno
Rotar objetos
Rotar objeto con transform.rotation
Rotar objeto con transform.Rotate
Escalar objetos
7. Creación de un Player en C#
Introducción
Character Controller
Movimientos del Character Controller
Mover objetos con SimpleMove dirección Global
Mover objetos con SimpleMove dirección Local
Mover objetos con Move
Los Inputs
Input Manager
Input GetAxis
Input GetKey
Input GetKey (KeyCode)
Mover y rotar nuestro Character Controller
Saltar obstáculos
Rigidbody
Mover un Rigidbody
Controlar el movimiento de un Rigidbody
Añadir un salto al Rigidbody
Seguimiento simple de nuestra Cámara
Destruir objetos con colisiones
Teletransportación con Triggers
En resumen
Proyecto final
8. Raycast y decals
Introducción
Abrir puertas con Triggers
Raycast
Cómo visualizar el Raycast
Entendiendo Raycast de físicas
La clase Ray
Cómo obtener información con RaycastHit
Comunicación con SendMessage
Decals
Preparar nuestro Prefab Decal
Instanciar los Decals con Raycast
Definir el tiempo del disparo
Rotación de nuestros Decals
Selección de objetos para disparar
Crear un Array de Decals
Emparentar los Decals
Destruir las cajas
9. UI (Interfaz de Usuario)
Introducción
Entendiendo el Canvas (lienzo)
Entendiendo el Rect Transform
Image
Image Raw
Text
Button
Slider
Creación de una mirilla
Creación de un contador de coins
Creación de una barra de vida
Hacer daño a nuestro FPSController
Cómo curar a nuestro FPSController
Cómo limitar el número de munición
Pantalla de fallecimiento
10. Animación
Animación en Unity
El flujo de trabajo
Animation Clips
Ventana Animation
Animation Controller
Máquina de estados
Proyecto de un soldado
11. Navigation y Pathfinding
Navegación con IA
Sistema de navegación en Unity
Funcionamiento interno de un sistema de navegación
Funcionamiento práctico de un sistema de navegación
Proyectos de Navigation
12. Iluminación
Introducción
Iluminación
Escena
Environment
Apagar las luces
Tipos de luces
Propiedades de las luces
Iluminación directa e indirecta
Iluminación horneada (Baked)
Iluminación Mixta
Práctica general
Ponte a prueba
13. Partículas
Introducción
Sistema de partículas
Creación de un sistema de partículas
Editar las propiedades de las partículas
Módulo principal
Módulo principal
Módulo Shape (Forma)
Módulo Velocity over Lifetime
Módulo Velocity over Lifetime
Módulo Inherit Velocity
Módulo Lifetime by Emitter Speed
Módulo Force over Lifetime
Módulo Color over Lifetime
Módulo Color by Speed
Módulo Size over Lifetime
Módulo Size by Speed
Módulo Rotation over Lifetime
Módulo Rotation by Speed
Módulo External Forces
Módulo Noise
Módulo Collision
Módulo Triggers
Módulo Subemitters
Módulo Texture Sheet Animation
Módulo Lights
Módulo Trails
Módulo Custom Data
Módulo Renderer
Crear materiales para un sistema de partículas
Creación de un fuego con partículas
Creación del objeto base
Creación del material para LlamaFuego01
Propiedades del sistema LlamaFuego01
Creación y propiedades del sistema LlamaFuego02
Crear sistema de partículas para el humo
Creación de destellos
14. Menús y sonido
Introducción
Vista general de sonido
Parámetros del componente Audio Source
Clips de Audio
El sonido 3D
Empezar con el proyecto
Creación de nuestro Player
Material del Player
Scripting de nuestro Player
Crear proyectiles para nuestro Player
Reutilizar el Proyectil
Instanciar el Proyectil
Sonido para el Proyectil
Crear un enemigo
Colisiones
Explosiones
Crear explosiones con los proyectiles
Añadir audio a la explosión
Añadir sistema de puntos y vidas
Contadores de puntos y de vida
Restar vida
Escena principal y GameOver
Escena principal
Creación del Menú
Escena GameOver
Compilar el proyecto
Conclusión
Cover
Índice
Start
PRÓLOGO: ¿POR QUÉ DEBERÍAS TENER ESTE LIBRO EN TU ESTANTERÍA?
Desde 2018 han pasado 7 años y Unity ha evolucionado considerablemente. Sin embargo, al revisar esta obra, me doy cuenta de que los conceptos fundamentales que la hacen especial han perdurado en el tiempo. Es cierto que la interfaz ahora es más atractiva, con nuevos iconos y un fondo más oscuro que reduce la fatiga visual, y que algunos métodos de programación pueden haber quedado obsoletos. No obstante, el contenido que desarrollé para aclarar los conceptos abstractos que enfrentan los estudiantes principiantes se mantiene sólido en cada uno de los capítulos.
Uno de los principales problemas actuales es que, a menudo, complicamos demasiado las explicaciones. La falta de paciencia y dedicación para entender las bases puede llevarnos a una falsa sensación de conocimiento, especialmente en un mundo donde la información está disponible casi al instante.
En esta última revisión, he dedicado tiempo a presentar los scripts de una manera que refleje cómo se verían en un editor real, mejorando así la comprensión del código. Continuamos utilizando prototipos con objetos primitivos, como cubos, esferas y cápsulas. Este enfoque permite concentrarse en el aprendizaje sin distraerse por la estética del modelo.
La programación que aprenderás está diseñada para ayudarte a comprender lo que haces, evitando conceptos abstractos. Si necesitas repetir una instrucción varias veces para darte cuenta de que puedes simplificar tu trabajo con un bucle, entonces estás en el camino correcto.
Cada capítulo incluye prácticas con un enfoque progresivo que te desafiarán, porque sin cometer errores no hay aprendizaje. Si eres un principiante absoluto y no tienes experiencia previa en programación, pero deseas introducirte en este campo de manera amena, este libro es una excelente opción.
Por último, quiero dirigirme a ti, lector: la tecnología avanza rápidamente, pero las enseñanzas de nuestros predecesores siguen siendo relevantes. No cometas el error de limitarte a adquirir información; comienza a convertir ese conocimiento en comprensión y, dentro de cinco años, espero que, al revisar este libro en tu estantería, leas este prólogo y te cuestiones si el contenido que te ofrezco en estas páginas sigue siendo relevante y valioso.
Marc Lidón Mañas
Capítulo 1
Introducción a Unity
• Introducción
• ¿Qué es Unity?
• Descarga e instalación
• Proyectos 2D y 3D
• Guardar el proyecto y la escena
• Primer contacto con la interfaz
• Configuración de la interfaz
Introducción
Primero te doy la bienvenida y las gracias por adquirir esta obra, que pretende documentar de una forma práctica todos los módulos básicos de Unity, con todo lo que conlleva aprender un programa de este tipo.
Para empezar con buen pie, he creído conveniente hacer una introducción desde 0 y crear una base con la que trabajar. Con «base» me refiero a que el verdadero potencial de Unity reside en la facilidad con la que podemos crear interactividad entre objetos mediante la programación. Entiendo que a muchos les dé miedo la palabra «programación», por la misma razón por la que me daba miedo a mí en mis comienzos, que es el desconocimiento. Esta es la primera de las razones que nos frenan a la hora de crear grandes proyectos. En cualquier caso, no prometo que después de terminar el libro te conviertas en un superprogramador; seamos humildes y tengamos los pies en el suelo. Pero sí que vas a adquirir conocimientos y habilidades que te permitirán entender cómo se realizan juegos en Unity, cómo empezar a leer código y, lo más importante, cómo utilizar Unity para crear tus propios proyectos.
¿Qué es Unity?
Unity es un motor de videojuegos que se ha hecho muy popular en los últimos años. En realidad, un motor de videojuegos es un conjunto de herramientas que nos facilitan el cálculo de formas geométricas y comportamientos físicos que se utilizan en los videojuegos. Estas herramientas están diseñadas para agilizar el proceso de creación de contenido del juego, y no se centran en la resolución de problemas informáticos.
Una de las características que hacen de este motor un referente en la industria de videojuegos es que nos permite la importación de muchos formatos 3D, como 3ds, Cinema4D, Blender, FBX... y también nos permite importar recursos de tipo gráfico, visual y de audio. Todo ello, posteriormente, puede ser optimizado por Unity.
Unity permite construir juegos mediante su editor y un lenguaje de programación, que permite al usuario crear interacción mediante scripts. El usuario programará con el lenguaje C# y podrá consultar la documentación de Unity.
Los juegos en Unity se crean mediante escenas que representaran un nuevo nivel o un lugar distinto dentro del juego. Las escenas se crean con el editor de terrenos de Unity o importando modelos propios.
Si no sabes modelar en 3D no te preocupes, porque este libro viene acompañado de material adicional para que puedas realizar los proyectos. En el caso de que quieras realizar algún proyecto distinto, puedes descargar del Asset Store de Unity recursos, donde encontrarás material gratuito y de pago.
Descarga e instalación de Unity
Para empezar a trabajar con Unity, accede a la siguiente dirección web https://unity.com/es/download y, en la cabecera, encontrarás un botón para descargar el programa de instalación de UnityHubSetup.
Fig. 1.1
El primer paso es instalar UnityHubSetup, que es una aplicación independiente que simplifica la forma en que navegas, descargas y administras tus proyectos e instalaciones de Unity. Dispones de plantillas, proyectos de muestra y materiales de aprendizaje para diferentes niveles de habilidad. También puedes administrar tu perfil, preferencias y licencias de Unity.
Para instalar la aplicación, accede a la descarga y ejecuta con doble clic encima de la aplicación para empezar. Sigue las instrucciones del instalador y, una vez finalice, verás una ventana como la siguiente.
Fig. 1.2
Es muy importante que te registres como usuario de Unity; de este modo, siempre tendrás tus proyectos organizados y guardados en la nube. Si haces clic encima de “Create account”, se te abrirá una ventana del navegador, donde deberás rellenar un formulario y crear tu Unity ID.
Fig. 1.3
Una vez tengas tu perfil creado, en tu acceso privado puedes acceder a Unity Hub. Al acceder a la aplicación, puedes instalar Unity.
Fig. 1.4
En la parte superior izquierda, tenemos las siglas de mi nombre, que son tu id, pero ahora quiero que te centres en dos opciones: “Projects” e “Installs”. “Projects” es la que utilizarás para crear tus nuevos proyectos o gestionar los que tengas guardados.
Haz clic en la opción “Installs” y, a continuación, en el botón azul “Install Editor”, como te muestro a continuación.
Fig. 1.5
Se te abrirá una nueva ventana; accede a la primera pestaña, “Official releases”. Te recomiendo que sea LTS (Long Term Support), es decir, soporte a largo plazo. En esta obra revisada se ha utilizado la versión 2022.350f1 LTS. Para empezar la instalación, haz clic en el botón “Instalar” de la versión LTS que te muestro a continuación.
Fig. 1.6
Antes de la instalación, te recomiendo también seleccionar la opción Microsoft Visual Studio Community que, en el caso de esta nueva revisión, va a ser la 2022; de momento, las otras opciones son opcionales, pues las podemos instalar más adelante. Una vez tengas seleccionadas las opciones, haz clic en el botón “Install”.
Fig. 1.7
El proceso empezará y, una vez completada la instalación, aparecerá en la sección “Installs”.
Fig. 1.8
En el caso de que en la instalación nos hubiéramos dejado alguna opción por instalar, simplemente hacemos clic en la ruedecita de la instalación que queremos y seleccionamos “Add modules”.
Fig. 1.9
Volvemos a la ventana de módulos y, en este caso, podemos seleccionar la opción WebGL Build Support y darle a “Install”.
Fig. 1.10
Proyectos 2D y 3D
Seguimos dentro de Unity Hub, esta vez para crear un nuevo proyecto. En la sección “Projects”, hacemos clic en el botón “New Project”.
Fig. 1.11
En la siguiente ventana que aparecerá en la parte superior, puedes seleccionar con qué versión de Unity quieres crear el nuevo proyecto. Luego, he numerado 3 secciones:
1. Seleccionar el tipo de plantilla.
2. Poner un nombre al proyecto.
3. Seleccionar una ruta del sistema para guardar el proyecto.
Fig. 1.12
Se ha seleccionado la opción 3D (Built-In Renderer Pipeline), porque para empezar a trabajar en Unity pude ser la opción más fácil.
¿Qué diferencia hay entre esta opción y las otras?
Built-in Render Pipeline es una opción viable para proyectos más simples o para desarrollos con un enfoque más tradicional y, puesto que el objetivo de esta obra es dar unas bases para trabajar en Unity, es más que suficiente. En otro momento en el que tengas más nivel, las opciones URP (Universal Render Pipeline) pueden ofrecerte mejor rendimiento, mayor escalabilidad y más flexibilidad para proyectos modernos, especialmente aquellos que apuntan a múltiples plataformas.
Una vez aclarado esto, selecciona la opción 3D (Built-In Renderer Pipeline), pon un nombre al proyecto, selecciona una ruta para guardar el proyecto y haz clic en “Create project”.
Guardar el proyecto y la escena
Acabamos de crear un proyecto nuevo. Ahora te recomiendo que siempre realices dos acciones muy importantes: guardar el proyecto y guardar la escena (más adelante veremos qué es una escena).
Fig. 1.13
Para realizar estas dos acciones, dirígete a la parte superior de la interfaz y, en la barra de herramientas principal, dispones de una serie de menús. Accede a la opción File > Save Project (esta acción guardará tu proyecto) y, a continuación, desde el mismo menú accede a la opción File > Save As… Se te abrirá una ventana de navegador que te permite guardar una escena con un nombre; escribe Escena_1 y haz clic en guardar dentro de la carpeta Scenes en el lugar que te indica por defecto.
Vista previa de la interfaz
Fig. 1.14
En la siguiente imagen, verás la interfaz que tendrás por defecto. He enumerado 4 zonas de la interfaz, pero no son todas las ventanas que hay en Unity, ya que existen muchas más, pero el objetivo ahora mismo es que conozcas estas secciones en concreto, que son ventanas anidadas a la interfaz y a las que a veces suelo referirme como «paneles».
1. Es la ventana Escena, donde construimos mediante objetos las escenas del juego. Verás que dentro de esta escena hay dos pestañas encima: son dos ventanas anidadas a este espacio; más adelante reorganizaremos la interfaz para recolocar estos elementos. Si haces clic encima de las pestañas, accederás al contenido de estas. La que tienes al lado, llamada Game, es donde visualizaremos el juego en modo de ejecución.
2. Esta es la ventana jerarquía, Hierarchy, y contiene todos los elementos de la escena actual. En esta versión también organiza los objetos por escenas.
3. La ventana Project es una ventana que se divide, a su vez, en dos partes. La parte de la izquierda contiene una estructura jerárquica de carpetas; actualmente solo verás la carpeta que tiene el nombre de Assets que contiene, a su vez, otra carpeta llamada Scenes, y luego la carpeta Package, que son paquetes que Unity utiliza para montar la escena. En esta sección podrás crear nuevas carpetas para organizar todos los archivos que necesites para el juego: escenas, modelos, texturas, materiales, scripts y audios, etc. En la parte derecha se muestra el contenido del interior de la carpeta seleccionada.
4. La ventana Inspector es la ventana encargada de albergar todos los parámetros de los objetos que tengas seleccionados. También te va a permitir añadir nuevos parámetros y configurar algunos otros mediante scripts.
En el próximo capítulo se profundizará en cada sección según vayamos necesitando.
Configurar la interfaz
Cuando tenemos una disposición concreta de la interfaz, nos referimos al layout. Ahora tienes una visión general de las ventanas que se muestran en el layout por defecto, pero Unity dispone de otros layouts preconfigurados para facilitar el trabajo al usuario.
Para acceder a los distintos layouts, accede al botón con nombre Default que encontrarás en la parte superior derecha de la interfaz, es decir, encima del panel o ventana Inspector. Si hacemos clic en el botón, se despliega un menú con varias opciones.
En este caso, vamos a crear uno propio con ayuda de los que ya están creados; eso no quiere decir que más adelante prefieras otra configuración, esto simplemente es un ejercicio para que aprendas a crear tu zona de trabajo.
Primero accedes al menú layout y seleccionas la opción Tall.
Fig. 1.15
Esta disposición carga todas las secciones de Jerarquía, Proyectos e Inspector en la parte derecha, dejándonos un espacio importante en la parte izquierda. Ahora vamos a realizar unos pequeños ajustes o modificaciones a esta interfaz para guardar una configuración personalizada.
Fig. 1.16
La imagen anterior tiene la interfaz distribuida con el layout Tall; ahora vamos a desanclar una ventana y anclarla en otro lugar de la interfaz, como por ejemplo la pestaña Game. Para realizar esta acción, debes hacer clic con el botón izquierdo del ratón y, manteniéndolo pulsado, arrastrar hacia la zona baja de la interfaz. Verás que al llegar a la zona inferior se crea una especie de bloque en gris, es el momento de dejar de pulsar el botón izquierdo del ratón. Si lo has realizado correctamente, acabas de recolocar la ventana Game debajo de la ventana Scene.
Fig. 1.17
Ahora, para finalizar, vas a añadir una ventana nueva que no está visible en la interfaz. Unity dispone de muchas herramientas y no todas se muestran en la interfaz. Para realizar el ejercicio y añadir una ventana a la interfaz, accede al menú principal, que se encuentra en la parte superior de la interfaz, y dirígete a Window > General > Console, o con el acceso de teclado Ctrl+Shift+C. A continuación aparecerá la ventana Console en forma de ventana flotante.
Fig. 1.18
Realiza la misma acción que hiciste con la ventana Game y sitúa la ventana Console al lado de la ventana Game, pero esta vez en forma de pestaña.
Recuerda que solamente debes arrastrar la ventana manteniendo pulsado el botón izquierdo del ratón a la zona donde quieres colocarla, y Unity se encarga de ensamblar la ventana en el lugar. Si has realizado con éxito la acción, debería quedarte una interfaz parecida a la siguiente imagen.
Fig. 1.19
Una vez tengas la interfaz adecuada a tus necesidades, deberás guardar la configuración para las siguientes ocasiones. Para guardar el layout de la interfaz, accede al menú de layouts y selecciona la opción Save Layout. A continuación, Unity te pide que le pongas un nombre, por ejemplo: “Personal”. Pulsa en Save para guardar la configuración.
Fig. 1.20
¡Felicidades! Has creado tu primera interfaz personalizada. En capítulos más avanzados es posible que te interese crear otro tipo de layout, pero ahora para empezar es suficiente.
Capítulo 2
Interfaz de Unity
• Importación de Assets
• Ventana Proyecto
• Ventana Escena
• Ventana Game
• Ventana Jerarquía
• Ventana Inspector
• Creación de un GameObject
Importación de Assets
La presente obra viene acompañada de material adicional con todo lo necesario para que puedas seguir los proyectos y aprender sin que pierdas detalle. Una de las primeras cosas que vas a tener que aprender es la importación de Assets, que es el material necesario para seguir los proyectos de este libro.
En todo proyecto de Unity encontrarás una carpeta llamada Assets. Esta carpeta contiene varias carpetas en su interior, donde se guardan los objetos del juego, scripts, materiales, texturas, etc.
En este capítulo he creado un paquete de Assets para que puedas trabajar con las distintas ventanas que se explican.
Para importar el paquete de Assets de este capítulo, primero ten localizado el material adicional del libro y la ubicación de la carpeta de este capítulo.
Fig. 2.1
Selecciona el paquete correspondiente a cada capítulo. Por ejemplo, si este es el capítulo 2 puedes crear un proyecto 3D nuevo con el nombre de Capítulo 2 y, luego, importar el paquete de este capítulo. Los proyectos serán en 3D siempre.
Una vez selecciones el paquete, se te abrirá una ventana como la que te muestro a continuación.
Fig. 2.2
Simplemente, selecciona todas las opciones y finaliza pulsando el botón “Import”.
Si todo es correcto, en la ventana Project aparecerán las carpetas del paquete que acabas de importar. A continuación, veremos en profundidad esta ventana.
Ventana Proyectos (Project)
Esta ventana muestra las carpetas que constituyen tu proyecto y que se encuentran organizadas en tu ordenador; es decir, cada vez que creemos un archivo o una carpeta, esta se creará automáticamente en la carpeta Assets de tu disco, y viceversa.
Fig. 2.3
1. Este menú nos permite crear una gran variedad de elementos para el proyecto. Uno muy utilizado es la creación de carpetas. Al hacer clic en el símbolo +, se abrirá un desplegable con varias opciones y una de ellas es la opción Folder (carpeta).
2. Esta sección tiene tres elementos: la carpeta Assets, donde añadirás nuevas carpetas para ordenar los elementos de tu proyecto; una sección de Favorites (favoritos), que te permite buscar por temática dentro de la carpeta misma; y la sección o carpeta Packages, con los paquetes que configura Unity cuando creas o importas paquetes externos.
3. Esta sección te muestra el contenido de las carpetas e irá cambiando según qué carpeta tengas seleccionada. En la parte superior tienes un menú de migas de pan que te indica la ruta en la que te encuentras o, dicho de otro modo, en qué directorio o carpeta estás.
4. Este tirador permite cambiar el tamaño de los elementos que se muestran en la sección 3.
5. Este menú contiene una caja de textos para poder introducir el nombre del elemento que estás buscando. También puedes hacer búsquedas según el tipo de elemento, el label que tenga asignado o si se ha guardado como favorito.
6. En esta sección tenemos dos símbolos: un candado que bloquea esta ventana para que no se pueda modificar y un menú que podemos utilizar si queremos añadir una pestaña nueva con otro tipo de ventana.
Si has importado los Assets anteriores, verás que disponemos de tres carpetas: Escenas, que contiene una escena llamada “Mi primera escena”; la carpeta Materiales, que contiene 5 materiales; y una última carpeta, que contiene una textura.
Ahora vamos a crear una carpeta nueva, que vamos a llamar Prefabs. Primero, asegúrate de que tienes seleccionada la carpeta Assets y, luego, accede al símbolo + y selecciona la primera opción: Folder. Seguidamente, aparecerá una carpeta nueva, y la renombraremos con el nombre “Prefabs”. Para borrar la carpeta, simplemente selecciona la carpeta, haz clic con el botón derecho del ratón y selecciona la opción Delete (no hace falta que lo hagas ahora).
Fig. 2.4
Ahora, para hablar de la siguiente ventana, primero vamos a acceder a la carpeta Escenas. Hacemos doble clic con el botón izquierdo encima de la escena con nombre “Primera escena”. Se abrirá una escena con varios objetos en la ventana View.
Fig. 2.5
Ventana Escena (Scene View)
La ventana Escena —también podemos llamarla vista Escena— es la parte de la interfaz en la que interactuaremos con el mundo que estamos creando. Esta ventana la utilizaremos para crear nuestras escenas, para seleccionar y posicionar personajes, cámaras, luces y todos los demás tipos de objetos de nuestro juego. Poder seleccionar, manipular y modificar objetos en la vista de escena son algunas de las habilidades básicas que vas a aprender para comenzar a trabajar en Unity.
Voy a mostrarte una imagen con todos los objetos básicos que podemos encontrar en una escena para que puedas identificarlos cuando los nombre.
Fig. 2.6
1. Tools (Herramientas): Dispones de una selección de herramientas para seleccionar, transformar, rotar, escalar, proporcionar, etc.
2. Tool Settings (Configuración de herramientas): Permite configurar las herramientas seleccionadas, como el pivot y el sistema de referencia global o local.
3. Grid and Snap (Cuadrícula y ajuste): Permite ajustar los objetos a la cuadrícula que se muestra en la base.
4. View Options (Opciones de vista): Dispones de varias opciones, como las vistas, control de iluminación y audio. Estas opciones solo afectan a la vista de escena y no al juego creado.
5. Orientación: También llamado “gizmo de coordenadas dinámico”, permite ver distintas orientaciones de cámara cambiando su ángulo de visión y el modo de proyección.
Primero, vamos a aprender a navegar por el espacio tridimensional. Si haces clic encima del botón de navegación, que se encuentra representado por una mano, y luego posicionas el cursor encima de la ventana pulsando con el botón izquierdo del ratón, podrás desplazar la vista de derecha a izquierda. Esta herramienta tiene 3 estados:
Mover: Pulsando Alt + botón central del ratón y arrastrando encima del visor.
Orbitar: Pulsando Alt + botón izquierdo del ratón podrás orbitar alrededor del espacio 3D.
Zoom: Pulsando Alt + botón derecho del ratón podrás acercarte o alejarte de la escena. Si dispones de una rueda en el ratón también puedes hacerla girar para hacer zoom.
En la parte superior derecha de la ventana nos encontramos con un Gizmo. El Gizmo nos muestra la dirección en que se encuentra nuestra cámara visor Escena. También podemos interactuar con el Gizmo. Este objeto te permite visualizar en todos los ejes de coordenadas y también permite ver en dos modos: perspectiva y ortográfica. Si pulsas en el cuadro interior del Gizmo, representado en las siguientes imágenes con un color amarillo, podrás cambiar la vista de perspectiva a ortográfica.
Fig. 2.7
Si pulsas en los conos de colores, la vista te mostrará en modo 2D la proyección del eje que hayas seleccionado. Por ejemplo, si pulsas en el cono rojo, que representa el eje X, te mostrará la vista desde este punto, como se muestra en la siguiente imagen. El color verde representa el eje Y y el color azul representa el eje Z.
Fig. 2.8
Otro elemento que debes conocer es el menú de Escena. En el primer menú desplegable te muestra distintos modos de representar la escena dividida en sectores. Te recomiendo que hagas la siguiente prueba. Accede al menú Shaded y escoge la opción Shaded Wireframe; la escena se representará mostrando una vista de alambre dibujada encima del material, como se muestra en la siguiente imagen.
Fig. 2.9
Al lado del menú anterior, dispones de una serie de botones que activan y desactivan opciones de la ventana Escena. El 2D activa o desactiva esta vista, el botón con el símbolo de la bombilla hace referencia a las luces de la escena, el símbolo del altavoz es para el sonido y el botón con el símbolo de capas alberga un submenú donde puedes marcar o desmarcar una serie de elementos que se desactivan o activan cuando pulsas la opción.
Fig. 2.10
Para finalizar, este menú dispone de otras dos opciones con los iconos de una cámara y una esfera, que te permiten activar o desactivar elementos de la escena relacionados con la forma que representan. El icono de cámara son opciones que permiten configurar la vista de la ventana, mientras que el icono de la esfera permite configurar en parte las opciones del Gizmo, ofrece una caja de texto para hacer búsquedas en la escena y una gran cantidad de opciones más.
Fig. 2.11
Ventana Juego (Game View)
En esta ventana podemos ver el resultado de nuestra escena. Es donde se muestra la compilación de todos los objetos, comportamientos, iluminación y todo ello renderizado desde la cámara que tengas dentro de la escena.
Fig. 2.12
Barra de herramientas del Game View
Tenemos varias opciones para controlar cómo se muestra la imagen final de nuestra escena desde el visor Game. A continuación, te detallo algunas opciones de la barra superior.
En primer lugar, dispones de la opción Game o Simulator para poder ver una simulación de tu juego en distintas plataformas, como las de un móvil o tableta.
Fig. 2.13
Display: Contiene un menú desplegable para escoger la vista de la cámara que contiene la escena. Por defecto está configurado para el Display 1.
Free Aspect: Disponemos de una serie de valores predefinidos para probar cómo se vería nuestro juego en distintos formatos.
Scale: Es un tirado que nos permite hacer zoom en la pantalla de juego para ver con más detalle nuestro juego o ver en modo global cómo se ve desde lejos.
Play Focused: Se utiliza para cambiar el foco a la vista de juego seleccionada mientras el editor está en modo Jugar. El modo Maximizado implica enfocar la vista de juego maximizada.
Mute Audio: Si activamos esta opción, silenciaremos cualquier audio que haya dentro del juego cuando entremos en modo Play.
Stats: Este botón activa o desactiva la ventana de estadísticas. Esta ventana nos ofrece información del renderizado gráfico y audio mientras está en modo Play.
Gizmos: Este botón activa o desactiva la visibilidad de cierto tipo de gizmos o iconos que veríamos en la ventana Escena. También contiene muchas opciones más.
Play Mode
Estos botones de la barra de herramientas nos sirven para controlar el modo de reproducción del editor y ver cómo se reproduce el juego en la ventana Game. Un aspecto muy importante a tener en cuenta cuando trabajamos con este visor es que, en modo de reproducción, los cambios que realicemos serán temporales; es decir, cuando paremos la reproducción de nuestro juego, todos los cambios que hayamos realizado se restablecerán a como estaban antes de entrar en dicho modo. La interfaz de usuario del editor se oscurece para advertirte de que estás en modo reproducción.
Fig. 2.14
Ventana Jerarquía (Hierarchy window)
La ventana Jerarquía contiene una lista de todos los GameObject (objetos, luces, cámaras) que encontramos en nuestra escena. Cuando agregamos un objeto a la escena, este aparecerá en la lista; cuando eliminemos un objeto, este desaparecerá de esta lista. La lista se crea en el orden en que vamos añadiendo o creando objetos. Puedes ver en la escena que tenemos en el proyecto cómo están organizados los objetos.
Fig. 2.15
En esta ventana también podemos efectuar varias acciones. Podemos cambiar el orden de nuestros objetos de la lista. Para cambiar el orden, debemos seleccionar un objeto de la lista —por ejemplo, el último elemento, que es Cylinder— y arrastrarlo hacia arriba hasta el tercer lugar que quede entre Directional Light y Plane.
Fig. 2.16
Otra acción que podemos hacer es emparentar objetos. Para que quede más claro, vamos a seleccionar dos objetos: la esfera y el cubo. En este ejemplo vamos a hacer que la esfera sea el hijo y el cubo sea el padre; esto quiere decir que cuando movamos el cubo la esfera también se moverá. Selecciona de la lista la esfera y arrástrala encima de cubo. Automáticamente, la esfera pasará a formar parte del objeto cubo, como un subobjeto.
Fig. 2.17
Un objeto padre puede tener varios hijos y, a su vez, los hijos pueden ser padres y tener más hijos, como te muestro a continuación.
Fig. 2.18
En la imagen anterior puedes ver cómo el objeto Cube tiene como hijos a Plane, Cylinder y Sphere y, a su vez, Sphere es padre de Capsule.
También podemos cambiar el nombre de los objetos. Para cambiar el nombre de un objeto hacemos un clic para seleccionar el objeto en sí y, luego, otro clic encima del nombre del objeto; este se convertirá en una caja de texto donde puedes escribir el nombre.
Ventana Inspector y creación de un GameObject
En realidad, todo lo que contiene una escena son GameObjects (así llamaremos a los objetos de Unity). Todos estos GameObjects disponen de características distintas, y por ese motivo voy a mostrarte cómo se crean, cómo se manipulan y cómo puedes ver sus características.
Antes de empezar, accede al menú File > New Secene, en la nueva ventana selecciona la opción Basic (Built-in) y pulsa en el botón “Create”. Tu escena es totalmente nueva, con solo dos GamesObjects: la cámara y la luz direccional. Para guardar la escena, dirígete hacia el menú general y selecciona la opción File > Save As… Debes ponerle el nombre que tú quieras (yo propongo my_scene) y la guardas en la carpeta Escenas.
Fig. 2.19
Ahora, para crear un GameObject puedes hacerlo de muchas maneras distintas. Una de ellas es, en el menú principal, acceder a GameObject > 3D Object > Cube; se creará un objeto llamado Cube que podrás ver en la ventana Hierarchy o Jerarquía.
Fig. 2.20
Si seleccionas el GameObject Cube en la ventana Hierarchy, verás que en la ventana Inspector aparecen las propiedades de este objeto. A continuación, voy a explicarte las características de este GameObject.
Fig. 2.21
Esta ventana quiero que la dividas en 3 partes.
La primera se compone de una cabecera que permite activar y desactivar el GameObject, ponerle iconos, cambiar el nombre y crear etiquetas y capas. Debajo, encontramos un panel llamado “Transform” que nos permite trabajar las transformaciones del GameObject. Estas dos partes las agrupo porque son los elementos mínimos que necesitamos para crear un GameObject.
La segunda parte se compone de paneles, a los que llamaremos “componentes”, y estos son los que determinan qué tipo de GameObject tenemos.
La tercera y última parte es el botón “Add Component” (Agregar componente), que te va a permitir añadir distintos tipos de componentes según tus necesidades.
En la parte superior de la ventana Inspector puedes realizar las siguientes acciones:
Fig. 2.22
1. El primer elemento es el icono de un cubo. Si haces clic encima se despliega un menú que te permite asignar un icono al objeto para diferenciarlo en una escena del resto de objetos. Por ejemplo, en una escena muy grande te permitirá poder encontrar al jugador. En el botón de debajo dispones de otro menú para poder seleccionar más iconos.
Fig. 2.23
2. Al lado del selector de iconos dispones de una caja o input selector (checkbox), que desactiva el objeto cuando la desactivamos; por defecto está activa. Al lado del input checkbox dispones de otro tipo de input, en este caso una caja de texto, para poder cambiar el nombre del GameObject; en este ejemplo por defecto se ha llamado “Cube”.
3. La opción Static hace referencia a si un objeto es estático o no es estático. Esta característica se utiliza según el tipo de iluminación utilizada y según la función que va a desarrollar este objeto en la escena. En estos momentos déjalo desactivado.
4. El menú Tag (etiqueta) te permite poner etiquetas a los objetos, que serán muy útiles cuando empecemos a programar.
5. El menú Layer (capa) permite determinar a qué capas pertenecen los objetos y, de este modo, podemos agrupar distintos objetos según una serie de características.
Componente Transform:
Permite manipular el objeto en el espacio 3D. Debes tener en cuenta que los ejes de coordenadas son los que están representados por colores en el eje de coordenadas dinámico de la ventana Escena.
Fig. 2.24
Esta característica te ayudará a identificar hacia dónde quiere realizar la transformación. Si realizas la prueba y cambias de valor los siguientes parámetros, podrás apreciar cómo el Cubo cambia de posición (position), de rotación (rotation) y de tamaño (scale).
Fig. 2.25
En la imagen anterior destaco el icono de tres puntitos, que contiene un menú con herramientas muy útiles:
•Reset: Los valores del componente (en este caso, Tranform) vuelven a los valores por defecto.
•Move To Front y Move to Back: En el componente Transform está desactivado porque es un componente indispensable para crear un objeto y, por tanto, tiene que estar el primero. Estas dos opciones permiten poner un componente por encima de otro; dicho de otro modo, puedes hacer subir o bajar un componente dentro de la lista de componentes.
•Find References In Scene: Encuentra referencias en la escena.
•Properties: Te muestra las propiedades del componente en una ventana flotante.
•Copy y Paste: Permite hacer una copia del componente con los valores que tenga disponibles en ese momento y permite pegarlos en el inspector de otro objeto o hacer una copia del propio componente en el mismo objeto.
•Reset Property: Permite poner los valores por defecto seleccionando una propiedad concreta.
Mover objetos en una escena desde el panel Inspector puede ser una tarea muy complicada. Por ese motivo, dispones de una serie de herramientas que no se han explicado anteriormente porque tiene más sentido verlas en este contexto. Este menú se llama Tools y se encuentra dentro de la ventana Scene. Si haces clic derecho con el ratón encima, puedes seleccionar varias opciones, como esconder (Hide), recoger (Collapse) o resetear el tamaño (Reset Size). También tienes la opción Panel, como te muestro en la siguiente imagen en formato ventana, y las opciones Horizontal y Vertical, que indican en qué distribución se muestran.
Fig. 2.26
A continuación, te muestro cómo se llama cada herramienta y cuál es su atajo de teclado:
1.View Tool (Tecla q): Realiza un movimiento de la cámara para desplazarte por la escena.
2.Move Tool (Tecla w): Con el objeto seleccionado, puedes desplazarlo por la escena según el eje de coordenadas. Simplemente selecciona una de las flechas y arrastra en la dirección que desees.
3.Rotate Tool (Tecla e): Con el objeto seleccionado, puedes rotar según el eje de coordenadas. En este caso no tenemos flechas, sino que tenemos círculos, que son más intuitivos. Arrastra encima del círculo que desees y verás cómo el objeto rota en ese eje.
4.Scale Tool (Tecla r): Con el objeto seleccionado, puedes escalar según el eje de coordenadas.
5.Rect Tool (Tecla t): Esta herramienta tiene más sentido cuando se trabaja en 2D, y permite escalar con un plano.
6.Transform Tool (Tecla y): Esta herramienta permite mover, rotar y escalar. Es una combinación de las tres herramientas.
Existe un tercer botón, llamado “Edit Collider”, que de momento no se va a explicar porque se explica en los próximos capítulos.
Fig. 2.27
En la imagen anterior verás el resto de componentes del GameObject Cube:
1. Componente Mesh: Es el encargado de darle una malla al objeto.
2. Componente Mesh Renderer: Conjunto de parámetros que permiten que el objeto pueda ser renderizado por Unity.
3. Componente Collider: Es una caja que delimita mediante cálculos físicos qué superficie del objeto impactará con los otros objetos. Este parámetro se explica con mayor detalle en los próximos capítulos.
4. A GameObjects por defecto, como este, se les aplica un material por defecto, que puede ser configurado posteriormente.
Creación de un GameObject desde 0
Ahora que has visto los distintos componentes que tiene un GameObject, vas a crear uno totalmente de 0. Si has seguido las instrucciones anteriores, te pido que borres el Cube anterior seleccionando en la ventana Jerarquía el objeto Cube y pulsando el botón Supr o Del de tu teclado.
Con la escena limpia, ahora dirígete a la ventana Jerarquía (Hierarchy) y en el icono con el símbolo + selecciona la opción Create Empty. Te aparecerá el nombre de GameObject en la ventana Jerarquía, y en el inspector también tendrás el componente Transform, pero en la ventana Escena no tendrás ningún objeto. Eso se debe a que todavía no le has asignado los componentes que se te han mostrado anteriormente y que son necesarios para tener un GameObject en condiciones mínimas.
Fig. 2.28
Antes de añadir los componentes, ponle un nombre al GameObject, por ejemplo, “Player”. Para añadir los componentes que necesitamos, pulsamos en el botón “Add Component”. Se te abrirá un menú con muchas opciones, selecciona la opción Mesh > Mesh Filter.
Fig. 2.29
Este componente te permite seleccionar qué tipo de superficie tendrá el GameObject. Para seleccionar el tipo de superficie, pulsa en el punto que se encuentra al lado de la caja de textos y, en el menú que aparece, selecciona el tipo de superficie, como se muestra en la siguiente imagen.
Fig. 2.30
El siguiente paso consiste en que el GameObject pueda ser renderizado por Unity. Vuelve a pulsar Add Component > Mesh > Mesh Renderer. Verás que en la ventana aparece el objeto, pero tiene un color rosado; esto sucede porque no tiene ningún material aplicado.
Fig. 2.31
Para proporcionarle un material por defecto, accede a las opciones del componente Mesh Renderer > Materials, donde puedes desplegar, mediante la flecha que tienes al lado, las opciones de esta sección.
Para seleccionar el material pulsa en el punto al lado de la caja de texto de Element 0. Aparecerá una ventana donde puedes seleccionar varios materiales; escoge uno.
Fig. 2.32
Para finalizar todo el proceso de creación de un GameObject debes añadir el collider accediendo a Add Component > Physics > Capsule Collider. En la siguiente imagen se muestra el proceso. En este caso, se selecciona la opción que tiene la forma de cápsula, por comodidad, pero eso no quiere decir que no se pueda poner ningún otro tipo; puedes experimentar todo lo que desees.
Fig. 2.33
En este primer capítulo no quiero profundizar en las opciones, porque es mucho contenido para asimilar, sobre todo si empiezas desde cero.
Para finalizar este capítulo de introducción, voy a proponerte un proyecto final donde vas a poner en práctica todo lo que has visto en los distintos ejercicios.
• Crear un proyecto nuevo.
• Importar los assets del capítulo
• Guardar el proyecto y la escena.
• Crear GameObjects desde cero: 1 cube, 1 esfera, 1 plano.
• Poner nombre a los GameObjects.
• Mover, rotar y escalar GameObjects.
• Poner materiales básicos a los GameObjects.
Cuando hayas terminado con esta actividad, pasa al siguiente capítulo.
Capítulo 3
Editor de terrenos
• Crear un terreno
• Esculpir la superficie
• Pintar el terreno
• Poner vegetación
• Poner agua en el terreno
• Crear zona de viento
• Editor de árboles
Editor de terrenos
El editor de terrenos nos permite crear terrenos exteriores de una forma muy sencilla y con múltiples herramientas para darles color y textura. Para poder seguir el capítulo, deberás crear un proyecto 3D e importar los assets que pertenecen a este capítulo.
Los terrenos son un trabajo muy complejo que conlleva muchas horas de dedicación importando assets y colocándolos en el lugar que les corresponde. En este capítulo vas a aprender a crear un escenario exterior, pintar con texturas, poner vegetación, crear una zona de viento, etc.
Fig. 3.1
Crear un terreno
Para crear un terreno, nos dirigimos a la barra de herramientas principal y accedemos a GameObject > 3D Object > Terrain. Verás que los terrenos consumen bastantes recursos del sistema y, si no disponemos de un PC potente, notarás cómo se ralentiza un poco todo.
Fig. 3.2
Cuando creas un objeto de tipo Terreno, en la ventana Scene aparecerá un plano con una textura de cuadrícula o tablero de ajedrez.
Fig. 3.3
Antes de empezar a trabajar en nuestro terreno, vamos a ver los detalles de este componente.
Fig. 3.4
En la ventana Inspector tenemos varias secciones; la que quiero mostrarte es la sección Terrain. Esta sección contiene una barra con herramientas para modelar y pintar el terreno. Esta barra de herramientas proporciona cinco opciones:
• Crear planos de terreno adyacentes.
• Esculpir y pintar terrenos.
• Añadir árboles.
• Añadir detalles, como césped, flores, rocas, etc.
Crear terrenos adyacentes
Es la primera de las opciones dispuesta en la barra de herramientas de Terrain y permite crear un nuevo terreno adyacente al que tenemos creado.
Fig. 3.5
En la ventana Escena verás unos nuevos marcos de color verde que rodean el terreno; simplemente con hacer clic encima de uno de estos marcos, se creará un nuevo terreno de las mismas características que el primero.
Fig. 3.6
Se crea un nuevo terreno si tenemos habilitada la opción “Relleno de mapas de altura usando mapas vecinos” (Fill Heightmap Using Neighbors). La opción que tenemos debajo de esta, “Modos de relleno de mapas de altura” (Fill Heightmap Address Mode) dispone de dos propiedades:
•Clamp: Unity realiza una combinación cruzada entre las alturas a lo largo de los bordes de los mosaicos de terreno vecinos que comparten un borde con el nuevo mosaico. Cada mosaico de terreno tiene hasta cuatro mosaicos vecinos: superior, inferior, izquierdo y derecho. Si no hay mosaico en ninguno de los cuatro espacios adyacentes, las alturas a lo largo de ese borde respectivo se toman como cero.
•Mirror: Unity refleja cada uno de los mosaicos de terreno adyacentes y combina sus mapas de altura para generar el mapa de altura del nuevo mosaico. Si no hay mosaicos en ninguno de los cuatro espacios adyacentes, las alturas para esa ubicación de mosaico específica se toman como cero.
Estos mosaicos de terreno se conectan automáticamente entre ellos. Si, de manera predeterminada, se intenta pintar sobre dos mosaicos o terrenos no conectados, Unity los tratarán como dos objetos independientes.
Pintar terrenos
La segunda opción de que disponemos en la barra de herramientas de terreno es un pincel con unas montañas. Debes prestar atención al primer menú, que contiene una serie de herramientas que forman parte de la opción Pintar Terrenos.
Fig. 3.7
Configurar la altura del terreno (Set Height)
Cuando seleccionas la opción Set Height, primero de todo tienes un mensaje informativo debajo, que te explica que pulsando con la tecla izquierda del ratón elevas el terreno, y si mantienes pulsada la tecla Shift cuando haces clic suavizas o reduces el terreno.
Fig. 3.8
Las siguientes opciones son el espacio, si quieres que sea modo Local o World. En el caso de que tengas varios terrenos, uno lo aplicará al terreno local o en modo global.
La opción Height es muy importante, y el valor tiene que ser superior a 0. Este valor determina la altura máxima que vas a poder elevar el terreno.
Las opciones Flatten Tile y Flatten All permiten limpiar todo el terreno elevado a 0. Si no te convence cómo está quedando tu terreno y quieres volver a empezar a esculpir, le das a uno de estos dos botones y te dejará el terreno recién creado.
Un poco más abajo, y siguiendo el esquema de la imagen anterior, dispones de los pinceles. Puedes seleccionar la figura o forma que necesites y, en la parte inferior, puedes configurar el tamaño (Brush Size) y la fuerza con la que creas los trazos (Opacity). Antes de nada, comentarte que Opacity es opacidad y en la explicación que te he dado he puesto que es la fuerza; eso es debido a que a mayor opacidad, más consistencia tendrá el trazo y, por el contrario, a menor opacidad, más suave será el trazo.
En el apartado Pinceles también tienes Nuevo Pincel (New Brush…), te permite cargar una textura como las que tienes expuestas en el pincel para poder esculpir.
En esta opción, selecciona un pincel de la paleta y, a continuación, haz clic en la ventana Escena y arrastra el cursor sobre el terreno para elevar su altura. Si haces clic manteniendo pulsada la tecla Shift reducirás el terreno.
Fig. 3.9
Suavizar (Smooth Height)
Esta opción, como su nombre indica, permite hacer un suavizado con el pincel seleccionado. El suavizado es útil después de pintar con pinceles rugosos o con gran desnivel entre zonas altas y bajas.
Fig. 3.10
La opción de Desenfoque (Blur Direction) permite controlar qué áreas suavizar. Si estableces la dirección de desenfoque en -1, la herramienta suaviza los bordes exteriores (convexos) del terreno. Si estableces la dirección de desenfoque en 1, la herramienta suaviza los bordes interiores (cóncavos) del terreno. Para suavizar todas las partes del terreno de manera uniforme, establece la dirección de desenfoque en 0.
El resto de opciones funcionan exactamente igual que en el apartado anterior.
Estampado de terreno (Stamp Terrain)
Esta opción permite estampar la forma de un pincel sobre el terreno. Puede ser interesante utilizar un pincel personalizado con una textura que representa un mapa de altura con una característica geológica específica, como una colina.
Fig. 3.11
Stamp Height muestra la altura del sello establecida en la forma del pincel seleccionado. Para multiplicar la altura del sello por un porcentaje, mueve el slider de opacidad (Opacity) para cambiar su valor. Por ejemplo, una altura del estampado de 200 y una opacidad del 50 % establecen la altura de cada estampado en 100.
Habilita la casilla de verificación Restar (Substract) para restar la altura de cualquier estampado que apliques al terreno. Ten presente que Restar solo funciona si el valor Máx. <- -> Agregar es mayor que cero, por ejemplo, si establece el valor Máx. <- -> Agregar en 1. Si la altura del sello supera la altura actual del área estampada, el sistema nivela la altura a cero.
Pintar texturas (Paint Texture)
Permite agregar texturas para poder pintar el terreno, como césped, arena, tierra, etc. Esta opción permite estampar la forma de un pincel sobre el terreno.
Fig. 3.12
Para configurar la herramienta, primero tienes que hacer clic en el botón “Editar capas de terreno” (Edit Terrain Layers…) para agregar capas de terreno. La primera capa de terreno que agregues llenará el terreno con la textura seleccionada.
Fig. 3.13
Esta capa que contiene la textura puedes configurarla añadiendo dos tipos de textura, como un mapa de normales o un mapa de máscaras, para mostrar ciertas partes de la textura. Tienes opciones para controlar el color especular, la cantidad del valor metálico y el suavizado. Como última opción de configuración de textura dispones del tamaño o desfase de la textura.
Te recomiendo acceder otra vez a la opción Edit Terrain Layers y crear una nueva capa con una nueva textura. Esta segunda textura sí que puedes utilizarla para pintar sobre el terreno.
Fig. 3.14
A continuación, debes elegir un pincel para pintar. Los pinceles son recursos basados en texturas que definen la forma de un pincel. Selecciona uno de los pinceles integrados o crea uno propio y, a continuación, ajusta el tamaño del pincel y la opacidad (intensidad del efecto aplicado).
Finalmente, en la escena y sobre el terreno, puedes empezar a pintar aquellas zonas que quieres que tengan esa textura, ir cambiando de textura y jugar con la opacidad de los pinceles.
Fig. 3.15
Eleva o baja el terreno (Raise or Lower Terrain)
Permite, como el nombre indica, agregar o quitar altura. Puesto que estoy siguiendo el orden que marca el desplegable, esta opción es la que utilizaríamos una vez configurada la altura del terreno. A pesar de que tengas texturas puestas en el terreno, esta herramienta puedes utilizarla igualmente.
Fig. 3.16
Pintar agujeros (Paint Holes)
Esta opción es útil cuando queremos ocultar partes de un terreno y crear aperturas para una cueva o un acantilado. Internamente, Unity utiliza una textura para definir la máscara de opacidad de una superficie de terreno. Cuando se utiliza esta herramienta para pintar agujeros sobre un terreno, se modifica esta textura. Por lo tanto, los agujeros que se pintan solo son visibles si el material de terreno que se utiliza recorta o descarta los texeles en función de esta máscara.
Debido a que esta herramienta utiliza una textura, es posible que se vean bordes con alias alrededor de los agujeros. Así pues, cuando creas una cueva, puedes optar por ocultar los bordes con alias del agujero con otra geometría: objetos de roca.
La herramienta Pintar árboles (Paint Trees)
Permite colocar árboles en el terreno y funciona de una manera similar a como se pintan las texturas.
Fig. 3.17
Debajo del nombre Paint Trees dispones de una sección informativa que te dice que para pintar un árbol simplemente debes hacer clic encima del terreno; manteniendo pulsada la tecla Shift borras los árboles y manteniendo la tecla Ctrl solo borras el tipo de árbol que tengas seleccionado.
La siguiente parte te mostrará los árboles que hayas cargado. En el caso del material de esta obra, se han preparado algunas texturas y árboles creados con SpeedTree para que puedas hacer pruebas.
Para agregar un árbol, haz clic encima de Edit Tree > Add tree y selecciona en la opción Tree Prefab el objeto deseado. Una vez seleccionado, le das a Add y se agregará a la lista.
Fig. 3.18
Una vez seleccionado el árbol, debes configurar las opciones que tienes debajo. Te explico qué es cada opción.
Fig. 3.19
•Tamaño del pincel (Brush Size): El tamaño del área que cada pincelada cubre con árboles.
•Densidad de árboles (Tree Density): La distancia entre los árboles debe ser tal que limite la cantidad de árboles que se pueden agregar con una sola pincelada. El límite se establece por pincelada, no por área.
•Altura del árbol (Tree Height): Un rango para la aleatorización de la altura del árbol. Este slider permite acotar en un rango de altura dentro del slider. Los valores posibles son una escala de 0.01 hasta 2.
•Bloquear ancho con altura (Lock Width to Height): Esta opción está activada por defecto y permite que los árboles se escalen de manera proporcionada.
•Ancho del árbol (Tree Width): Si tienes activada la opción “Bloquear ancho con altura”, esta opción se desactiva. Es el mismo procedimiento que la opción “Altura del árbol” pero con el ancho.
•Rotación aleatoria de árboles (Random Tree Rotation): Si has importado el paquete con los árboles que he preparado, esta opción la puedes activar. Permite dar una apariencia más natural, rotando los árboles de manera aleatoria.
•Variación de color (Color Variation): Es la cantidad de sombreado aleatorio aplicado a los árboles. Es posible que algunos árboles SpeedTree no la lean.
•Contribución del árbol a la iluminación Global (Tree Contribute Global Illumination): No editable; indica si la opción Iluminación > Contribuir con iluminación global del activo del árbol está habilitada.
Hay un botón justo encima de la configuración anterior, llamado “Árboles de lugares masivos” (Mass Place Trees), que permite colocar árboles en todo el terreno con una sola acción.
Para colocar árboles en una porción de terreno entera, selecciona los recursos de los árboles, como se explicó anteriormente. Se utilizarán todos los árboles de la lista de árboles, no solo el árbol resaltado. Ahora pincha en el botón Mass Place Trees, introduce el número de árboles que deseas colocar y, si quieres conservar los árboles que ya tienes, marca la casilla “Conservar árboles existentes” (Keep Existing Trees). Si no marcas esta casilla, Unity eliminará todos los árboles existentes y los reemplazará por los nuevos. Para ejecutar la acción debes pulsar Place.
La herramienta Pintar detalles (Paint Details)
Un terreno puede tener césped, arbustos, objetos pequeños como rocas, etc. Esta opción de las herramientas del terreno permite un mix de las dos que hemos visto. Por un lado, podemos pintar objetos, como hemos hecho con los árboles, o pintar texturas, como la hierba o arbustos y flores.
El funcionamiento es exactamente el mismo, solamente tienes que cargar en la lista qué texturas u objetos quieres utilizar. Accede a la opción Edit Details y selecciona entre Mesh o Texture.
Mesh te pedirá que selecciones un objeto y Texture una textura. La forma de trabajar es la misma que en las otras opciones.
Fig. 3.20
Configuración del terreno (Terrain Settings)
Cada terreno o porción de terreno tiene sus propios ajustes. Si decides crear un nuevo terreno adyacente pero ya tienes configurado el primero, el adyacente hereda la configuración del primero. Para cambiar la configuración de un solo mosaico de terreno, tanto en el sistema de terreno integrado como en el paquete “Terran Tools” puedes hacerlo desde:
1. La ventana Jerarquía, seleccionando el mosaico.
2. La ventana Inspector, seleccionando la configuración del terreno.
Fig. 3.21
Basic Terrain
Fig. 3.22
