Unity 3D tutorial introductorio P. 1

Hola amigas y amigos! Este tutorial fue pedido por un cool amigo extranjero (directo desde Arabia!!) que me encontró por la página de Facebook! Él quiere aprender a usar Unity 3D a través de un recurso escrito y con buen inglés, pero ya saben que yo los quiero, mi bella lengua nativa y todo eso, uy, cómo me gustaría poder traducir esto a lenguas indígenas (T.T), en fin, así que a la vez que subir la versión en inglés, podrán disfrutar esta otra en español súper chulo!
Este será un tutorial exhaustivo que cubrirá todo lo básico de la interfaz gráfica de Unity y su editor, y trataré de publicarlo cada semana o algo así. No seré muy frecuente (a menos que sea muy popular y mucha gente me anime a sacarlo más a menudo, vamos, únanse y denme likes xD), pues es una tarea tremenda, ya que tocaré temas delicados como los básicos del lenguaje de programación c# y la API de Unity!
Que es lo que domino, si alguien quiere javascript, talvez algún día le aprenda, pero no me gusta mucho el javascript, no es tan riguroso y me llega a confundir, pero haré el intento xD. Esos tutoriales de código estarán enfocados para gente con 0 conocimiento en programación, si eres de esos, te interesará!
Así que, quieres programar tus propios videojuegos, que sean bonitos y que sean funcionales, además de poder distribuirlos en varias plataformas para jugar? Unity es para ti!
Lo primero que ocuparás será el Engine de juegos Unity 3D 5x instalado en tu computadora. En mi caso, instalé la versión 5.5.0f3 (algo más moderna, pero ya no sé en cuál van!), porque a partir de ahí el WebGL está más optimizado que en versiones anteriores, pero tu puedes descargar lo que se te dé la gana!
Se requiere hacer una cuenta para descargar e instalar el programa, y cuando ya lo hayas hecho, puedes volver a seguir aprendiendo, jejeje.
La versión personal es buena, mientras no ganes millones ni tengas miles de personas en tu compañía, si eres sólo un solitario sin amigos o un grupo de gente con mucho tiempo libre para sus hobbies (como yo!), pueden compartírselo entre ustedes e instalarlo en varias computadoras sin problemas.
Esta versión tiene unas cuantas limitaciones en las funcionalidades más avanzadas, realmente son cosas que no evitarán que hagas un gran juego, así que no les tomes mucha importancia. Al fin y al cabo es una versión gratuita y funciona bien! Por otro lado, si ocupas comprar licencias de cualquier plataforma en la que quieras publicar tus juegos, ya sea Xbox, playstation, etc. Si buscas la opción accesible, PC y WebGL, más adelante te enseñaré a publicar en ellos y obtener buena visibilidad, así que quédate conmigo y te irá bien (jejeje FD).

Si más distracciones, abróchate los cinturones y vamos al tutorial!
Una vez que hayas abierto el programa, escogido un nombre para tu proyecto y se haya cargado una nueva escena, serás obsequiado con una bella vista de la pantalla principal de Unity. No voy a manejar cada minúsculo nombre técnico para cada sección y objeto en Unity, ni yo los sé todos. Pero me basaré en los nombres que se muestran en sus etiquetas y son fácilmente visibles.

Esta pantalla principal se llama el Editor de Unity, hay otra pantalla con la que se puede trabajar, que es el Editor de código, en el caso de Unity, emplea Monodevelop como editor predeterminado.
No me meteré muy a fondo en este tema por ahora, lo guardo para futuros tutoriales, pero sólo como información adicional, te diré que puedes cambiar a cualquier editor que te guste, Visual Studio, Notepad++, lo que sea.
Yo prefiero Monodevelop porque es más práctico, no necesitas instalar programas externos y tiene un bonito corrector de sintaxis que te ayuda a ahorrar tiempo al codificar. Por ahora, olvidémosnos de esto y enfoquémosnos en el Editor de Unity!
En este tutorial aprenderás Unity por medio de ejemplos, en este caso, por petición del público, haremos un simple juego de género disparos (shooter), con una cámara de tercera persona aérea fija y manejando gráficos 2D. Porque esos son más simples de manejar y producir uno mismo.
Si no tienes ganas de producir tus propios assets, yo estaré subiéndolos a mi abusada página de Itch.io, ahí los podrás descargar sin ningún problema.

Por el momento, no compartiré la escena de ejemplo de Unity (estaré haciendo eso cada siguiente tutorial), así te obligo a trabajar y hacerla tu mismo (vamos, no es nada difícil!). Así que esfuérzate y apréndele!
Por ahora, puedes obtener las imágenes para este tutorial y ver el Live Demo aquí…

Checa el Live Demo y descarga los assets aquí…

Live Demo Unity introductory tutorial P.1

Pero como yo creo primero en las bases y luego en la aplicación, te enseñaré un poco sobre diseño de videojuegos básico extraídos de un genial libro llamado Level Up por Scott Roger, te lo recomiendo ampliamente!. Antes de comenzar, necesitas planear cómo será tu juego, los aspectos técnicos ya han sido determinados, veamos qué falta.
Level Up presenta un genial recurso llamado Game Design Document, o GDD para abreviar. Básicamente es la biblia de tu videojuego, contiene toda la información que requieres para que se haga realidad de acuerdo a tu visión, muy útil si estás trabajando con un equipo de personas, o tienes mala memoria o no has decidido todos los aspectos del juego todavía. Te servirá para definirlo completamente, tomando el GDD como guía para dejar que tu imaginación vuele.
El GDD comienza con la portada de tu juego, pero podemos dejar eso para otro momento, pues ni siquiera hemos decidido el resto del juego!
Ponle un nombre a tu juego, esto te ayudará a nombrar el proyecto en Unity también, el mío se llama Unity 3D beginners tutorial, pues eso es lo que es, pero puedes trabajar con lo que quieras, como Rapid Shot o como te plazca.

Lo siguiente será establecer los objetivos del juego, en este caso, algo simple funcionará, como matar a todos los enemigos sin morirte en el proceso!
Decide una historia para unificar los eventos que sucederán en el juego:
Cómo comenzará la historia para tu jugador? Cuáles son las condiciones que desencadenarán los eventos del juego? Esta será la historia que pondrá en movimiento las acciones que el jugador deberá tomar para cumplir con los objetivos del juego. En este caso, será algo simple como que el personaje Gun McShooter sale de su casita, entonces un montón de grosera gentuza violenta aparece alrededor de él, disparándole sin razón y sólo por diversión. Gun, siendo el tipo rudo que es, no se quedará cruzado de brazos para permitir que chusma iracunda le llene de agujeros su sombrero favorito, así que luchará y se llevará de encuentro a cualquiera que le dé problemas. Esto comenzará nuestra historia.

Lo siguiente que necesitas definir son las locaciones contextualizadas a la narrativa. En mi caso, mantendré todo dentro del mismo escenario, algún tipo de pueblito del viejo oeste, con obstáculos, barricadas, ventanas, puertas y otras cosas útiles como fuerte para disparar u ocultarse. Quizá algunos animales que te ayuden u obstaculicen. Todo puede ayudar para modificar las mecánicas de juego.

Finalmente, tenemos el final! Debes decidir si el juego terminará cuando mates a todos, o te acabes todos los niveles, o cualquier objetivo que tú quieras. En este caso, los niveles consistirán en el aumento del grado de dificultad de las mecánicas de juego, más enemigos, más armas para ellos, inclusive más inteligencia artificial. Pero a cambio, el jugador tendrá armas más potentes, más recursos, inclusive más equipamiento y cosas así. Todo terminará después de una cantidad dada de niveles, porque no me interesa hacer un juego de infinito incremento en dificultad.
El resto del GDD habla sobre controles de juego, requerimientos técnicos, mercancía y publicidad, escenas de película (introducción y logotipo), algunas interfaces más, detalles de ambientación, diagrama de flujo del juego (si es que tienes varios niveles e interfaces, lo que este juego no tendrá porque simplemente es una introducción y eso es para niveles más avanzados de dominio en Unity!) y cámaras de juego (por ahora, sólo diremos que es tercera persona y aérea).
Casi todo esto tiene más que ver con tutoriales sobre programación, pues eso es lo que te permitirá añadir esas funciones.
Por ahora, nos conformaremos con lo básico de la estética y organización del juego (pero expandiremos más eso en posteriores tutoriales). Si gustas, puedes ir decidiendo lo demás mientras lo esperas. Si realmente no tienes idea qué quiere decir cada cosa, busca el libro, o espera a que los tutoriales aparezcan! Ahí cubriré todos esos detalles mientras desarrollamos el juego, así que mantente alerta para obtener más contenido!
Ahora que has tomado algunas decisiones básicas para el juego, ya podemos jugar un poco con el Editor de Unity!
Primero, necesitas identificar qué es una escena, que es donde todas las cosas que conforman el juego serán añadidas, colocadas, distribuidas y accesibles desde el juego. Lo que no esté en una escena, no puede ser usado durante el juego, a menos que tengas un script especial que te permita hacerlo.
Piensa en la escena como el nivel de un juego, puedes tener tantas escenas como niveles, a menos que tus niveles sean de incremento en dificultad y se quede igual el transfondo y la utilería empleada en él. O puedes hacer cambios ambientales durante el juego a través de scripts, inclusive quedándote en la misma escena, pero eso es truculento.
Además, cambiar escenas permite que el juego refresque los scripts, las cosas y personajes muertos, perdidos o aparecidos y permite tener mejor orden a tus niveles.
Puedes hacer una escena con una temática del viejo oeste, y otro con temática subacuática. Tener todos los enemigos, NPC, utilería y cualquier otra cosa apropiadamente añadida y acomodada en ambos niveles, cada uno exclusivo para controlar el flujo, el consumo de memoria y sus mecánicas de juego. Y cuando quieras algo nuevo, sólo requerirás cambiar la escena. Tal es el poder de esta forma de organizar niveles!
Tú mismo puedes ver los elementos de la escena en la scene Hierarchy Window…

Y puedes modificar la escena en la Scene Window…

La escena se puede visualizar como se verá durante el juego en la Game Window. Por default, cada uno de ellos viene ya abierto para que los conozcas y tengas un acceso directo a ellos.

Una práctica importante es siempre guarder los cambios que se hagan a una escena, ponerle nombre y almacenarla en una carpeta adecuada, así no se perderá entre otros archivos asset del juego.

Ahora que estamos jugando con las diferentes ventanas en la interface del Editor Unity, hablemos sobre ello! Yo recomiendo que personalices la interface gráfica del Editor Unity, checando esta sección aquí…

Qué es un layout? Simple, es un acomodo predeterminado que puedes escoger para organizer las ventanas del editor en el espacio del mismo. Pero qué son esas ventanas del editor? Toma una mirada aquí…

El menu Window es la lista desplegable que te permite escoger qué ventana abrir. Una ventana es un visor a ciertas propiedades de un cierto GameObject en la escena, ello te permitirá accesar a características especiales clasificadas por el nombre de la ventana. Como la Editor Window, que sirve para editar la escena, o el Hierarchy Window, que permite modificar la jerarquía.
Yo tengo mis propios layouts personalizados (que puedes ver bajo el nombre Mary). Cada una la empleo para potenciar mi flujo de trabajo y lograr una experiencia más eficiente. Originalmente, tu tendrás algo como esto…

Adelante, juega con el layout, puedes arrastrar y soltar las ventanas conforme tu lo quieras. Mi Layout principal (que llamé Mary Code), es el que utilizo cuando estoy comenzando un nuevo proyecto, puedo fácilmente accesar a mis assets (Project Window), editar mi jerarquía (Hierarchy Window) y ambos los acomodo del lado derecho; porque soy diestra y occidental, por tanto, leer contenido de izquierda a derecha es natural para mí. Tengo mi Scene Window a un lado del Game Window, para fácil y rápidamente intercambiar entre una y otra mientras hago la corrida de prueba (play test), además de tenerlas ocupando la mayor cantidad de espacio visual. En el fondo tengo el Inspector Window en modo debug (dale click a las tres pequeñas barras de la ventana y selecciona debug.

Esto te ayudará a ver esas variables de script que no sean accesibles desde el Inspector Window (para que sean accesibles, necesitas etiquetarlas como public en el código, si no, esta es la única forma en que podrás verlas, esto lo manejaremos más adelante).
Lo siguiente es la Console Window, que te mostrará durante el play test qué pasa con los códigos, los bugs, advertencias (cosas que suceden que no están tan bien como deberían estar!) y cualquier otro detalle que le digas al código que te muestre (usando el método debu, que intentaremos después).
Finalmente, la parte más importante para modificar GameObject, la Inspector Window! Aquí podrás ver todas las propiedades de los objetos que tengas en cualquier lugar del Unity Editor, un asset, un GameObject, todo lo que puedas accesar y modificar.

Si lo deseas, cópiate de mi Layout, sé que lo quieres jejeje xD.

Hemos estado hablando mucho de GameObjects, pero qué son!? Son los elementos del juego dentro de Unity que puedes modificar para crear un juego. Piensa en tu personaje jugable o cualquier cosa que quieras dentro de un juego, todo será un GameObject. Las cosas que no serán gameObject son materiales, texturas, videos, códigos y otros recursos externos, todo esto se llama Asset. Tú deberás poner los assets dentro de gameobjects, pero no puedes tenerlos por sí mismos por ahí en tu juego, tendrá que estar añadido a un plano, un cubo, o cualquier otra cosa.
Hablando de suelos, nuestro pequeño juego necesitará un piso donde todo tendrá lugar y pasará! Veamos cómo añadir gameobjects a las escenas! Sólo da click al menú Create sobre la Hierarchy window (ese lugar donde tus gameobjects serán listados conforme los añadas).

Enfoquémonos en un gameobject especial por ahora, el Terrain, selecciónalo y verás esto aparecer en tu escena.

Podrías no saber qué es al principio, se ve tan alien desde esa perspectiva, pero te compartiré un secreto, el Editor Window puede ser navegado! Puedes ver esos controles e la esquina superior?

Si seleccionas el primero (con forma de manita), podrás ver que el apuntador del mouse cambia a una mano, si tu das click en la escena y arrastras por ahí, podrás hacer pan en la vista, de esa manera, podrás ver mejor qué hay ahí!

Para controlar major los alrededores, puedes hacer zoom in o out (adentro o afuera) presionando la tecla Alt y el botón derecho del mouse, y rotar la vista con el botón derecho del mouse solo. Has zoom out hasta que puedas ver la extensión de tu terreno, el mío es enorme porque está configurado así desde un proyecto previo o algo. Puedes ver las medidas reales dando click izquierdo en el Terrain gameobject y checando en el Inspector window.

Puedes ver bajo la resolución los valores que le darán las dimensiones reales del terreno. Si quieres tener tierra vasta para explorar, pon valores altos. Pero ya que estoy tratando de mantener las cosas simples, lo cambiaré a width (anchura) 100, lenght (longitud) 100 y height (altura) 50. Height te permitirá terraformar el plano con los brushes que puedes experimentar tu mismo, formando valles y colinas. Una vez que hagas algún cambio en los primeros dos valores, podrás ver que el terreno cambia sus medidas reales, pero para height sólo notarás sus cambios una vez que edites el terreno.

Ahora que tienes un terreno que consume menos recursos gráficos, hay que editarlo! Puedes ver que hay una sección en el Inspector window etiquetada como terreno, esto se llama Component (componente). Este component es un script que el Inspector puede mostrarte para que modifiques los valores.
Algunos scripts se controlan internamente y no se pueden abrir en el Script Editor para modificarlos, pero otros si, los que están hechos por ti, o alguien más! Aquí lo importante es que puedes abrirlos y modificarlos como tú quieras.
Si le quitas un componente, el gameobject dejará de funcionar como lo que sea que ese componente le permitía hacer. Por ejemplo, si quitas el componente Terrain, ya no será un terreno, sólo un plano aburrido… pero no! Porque ni siquiera tiene ese componente, será solo un gameobject vacío, nada más que una ubicación en el espacio. (útil para otras cosas, pero no como un piso…).
La parte divertida sobre los componentes es que puedes crearlos tú mismo y hacer tus propios gameobjects personalizados! Para aclarar más, esos campos width, height y lenght que modificamos se llaman propiedades, son variables internal de dichos scripts. Cuando hagas tu propio componente (codificando un script), y pongas algunas variables públicas, esas serán tratadas como propiedades y podrán ser accesibles a través del Inspector, qué bello es Unity!
Por ahora, nos concentraremos en esas etiquetas con íconos bajo el componente Tearrain. Esas contienen herramientas para editar el terreno, intentaremos la que tiene el ícono de brush en ella. Te permitirá añadir una textura de terreno para pintar sobre el suelo y hacer que deje de verse tan plano y aburrido.

Primero, necesitarás una tectura en tus assets. Dale click en el menú Create de Project window.

Elige la opción Folder del menú desplegable, dale un nombre como lo que tu quieras usar para identificar lo que contiene (en este caso, textures estará bien). Puedes hacer esto por cada tipo de assets que insertes en el Editor Unity, de esa forma, tendrás un orden adecuado para cada cosa!

Para añadir la textura.png para el terreno, necesitarás minimizar el Editor Unity a un lado y el explorador de archivos al otro y arrastrar el archivo asset a la carpeta debida. Este es el archivo que se puede descargar desde Itch.io! Si aparece una pequeña flecha+ abajo del apuntador mientras arrastras el archivo, quiere decir que lo estás haciendo bien, puedes liberar el botón del mouse para que el archivo sea añadido a la carpeta escogida.

Escoge Edit textures, añade la textura, y en la ventana que se despliega, escoge normal, y añade ahí la textura que cargaste; luego selecciona albedo y repite el proceso. Modifica la repetición (tiling) como te guste, si pones las mismas dimensiones que en witdh y lenght, se extenderá a todo lo ancho y largo del terreno, sin crear un mosaico. Cuando esté listo, da click en Add.

Puedes jugar alrededor del resto de las herramientas, muchas de ellas son auto explicativas, siéntete libre de experimentar a tus anchas, eso te ayudará a aprender! También, puedes añadir tantas texturas como gustes, pintándolas sobre el terreno para tener un campo diverso, diviértete!
Ahora tenemos que acomodar la cámara de acuerdo a lo que habíamos decidido. Por default, Unity siempre coloca una cámara y una luz en las escenas nuevas. Es importante que recuerdes que una escena no puede ser reproducida sin una Main Camera, y cómo sabes que es la main? Tienes que prestar atención a las etiquetas!

Ese es el campo de Tag, que funciona como una etiqueta que le dirá al engine qué cámara es la principal. Puedes tener muchas cámaras con diferentes modos de visualización, ángulos, enfoques, etc. Dentro del mismo juego, que cambien con el click de un botón, simplemente todas tendrán la misma etiqueta y se activarán y desactivarán en turnos.
Además, otras cámaras sin etiqueta Main te pueden ayudar a crear objetos especiales para visualizar diferentes cosas, como tener una pantalla de TV, una videocámara, un espejo, un retrovisor, etc.
Así que cuando sea que coloques una nueva cámara, asegúrate de que sea o no Main, estableciendo el tag apropiado para identificarlo. Presta especial atención al componente AudioListener, todas las cámaras Main deberán tenerlo, pero sólo una activa por escena; de otra forma, tendrás errores con el audio y eso no es para nada bueno!
Hay otras etiquetas para otros propósitos, y además, puedes añadir tus propios tags para lo que ocupes, pero los dejaremos por el momento hasta siguientes tutoriales!

Por ahora, nos enfocaremos en la Main Camera que tenemos que modificar, puedes ver que está desenfocada (en el Game Window), necesitamos apuntarla hacia el terreno, apuntando desde el cielo. Cambiemos eso!

Con la cámara seleccionada, dale click al Segundo ícono donde la manita Pan está, este ícono tiene forma de cruz, va a activar el gizmo de desplazamiento sobre la cámara.

Si das click y arrastras sobre una flechita de color que se despliega, o sobre el cuadradito que se encuentra entre dos o tres de ellas, puedes mover la cámara alrededor en relación al espacio dentro de la escena. Haz zoom, rota o panea la vista para poder ver mejor el terreno y coloca la cámara justo en medio.
La cámara cambiará luego, en relación al personaje jugable, pero se requerirá un script para lograrlo. Por ahora, usaremos la cámara como un visor simple para saber cómo se está viendo la escena conforme colocamos más gameobjects.
Si necesitas ayuda para saber cómo orientar mejor tu vista, aprovecha el giszmo del cubito con los conos coloridos. Si alguna vez has usado algún producto Autodesk, este tiene la misma función que el ViewCube de navegación que usan muchos de sus productos, pruébalo, es divertido!

Por el momento, la cámara está bien donde la dejamos, pero hay un problema!

Por default, Unity pone a la cámara mirando hacia la vista frontal, pero la necesitamos mirando hacia el suelo! Hay que cambiar eso, escoge el ícono con las flechitas en círculo, el gizmo cambiará a algo como una esfera hecha con cuerdas de colores.
Por qué todos esos gizmos tienen los mismos colores? Pues así lo manejan estándar varios programas de modelado 3D, es un código de colores para marcar y distinguir entre sí los 3 ejes de manipulación 3D virtual!
Si no sabes qué color es de qué eje, sólo mira el cubo con el gizmo que tiene conitos en la esquina superior derecha, así es, el viewcube. Necesitamos rotar la cámara 90 grados en el eje z o x, o eso es cómo está indicado en el transform local de la cámara, y eso es todo lo que importa!

SI deseas más control al modificar esas propiedades en cualquier gameobject, puedes referirte a la ventana Inspector. Cualquier gameobject, vacío o no, siempre posee su componente Transform, experimenta cambiarle las propiedades en cualquier campo que gustes, en este ejemplo, ocupas cambiar la propiedad rotación.

Cuando termines con la cámara, será tiempo de añadir al jugador! Así que pongamos nuestras manos en acción con otro gameobject que Unity te da por default. Verás, no hay nada de malo en utilizar los gameobjects predeterminados que incluye Unity, siempre puedes modificarlos acorde a tus necesidades. Conocer cómo conseguir lo que quieres con poco esfuerzo y qué usar en determinado caso diferencia a un pro de un no0b!
Puedes ver aquí que hay una opción créate 3D object. Talvez quieres experimentar con ellos, sólo para saber cómo se siente, talvez bien, quién sabe! … Pero esperen! Estamos haciendo un juego 2D! Sólo debemos usar gameobjects 2D, cierto? Bueno, quizá, quizá no! Cómo se supone que lo sepa!? Oh, cierto, estoy haciendo este tutorial, ejem… Así que veamos…

Los gameobjects 3D ted an más opciones y posibilidades, lo que siempre es Bueno! Qué necesitas? Qué puedes usar? Bien, para comenzar, ocupas un gameobject personaje. Cómo funciona eso? Ocupas algo que pueda moverse por ahí, sostener armas, disparar y esconderse detrás de objetos, así como ser afectado por ataques enemigos y no atravesar el suelo o los obstáculos!
Uh? Qué dije acerca de ir a través del suelo? Así es! Basicamente eres un fantasma aquí! Cuando el juego comienza, si tienes masa, irás a través del suelo, a menos que tengas colisión también. Pero de qué estoy hablando? Tú eres sólo un bebé en entrenamiento y no haz tocado un libro de física en tu vida! Jajaja, es broma!=P (no me mates! Aún sirvo xD)
Bien, recuerdas esos aburridos conceptos de masa, gravedad, impenetrabilidad y todo eso que tanto dolor de cabeza te causó en la escuela? Todos ellos aplican aquí, así que si tienes una comprensión básica de ello, qué bien! Yo me las arreglo solamente con un conce´to vago de todo ello. Podría ser óptimo conocer sobre ecuaciones y demás, pero Unity puede hacer un montón de esas cosas por ti, a menos que ocupes algo más avanzado, entonces estarás en problemas!
Dado que apenas estás comenzando aquí, no necesitas preocuparte aún, pero nunca es tarde para aprender cosillas extra, si te llama la atención, ve y refresca tu memoria! Mientras, veamos qué son esas cosillas gameobject 2D Sprite, escógelo y explóralo con el Inspector.

Por ahora, tu sprite es invisible, no tiene una textura, y puedes ver que sólo tiene dos componentes, Transform y Sprite Renderer. Sprite Renderer no tiene masa, ni colisión, no será afectado por gravedad, es básicamente aire! Este gameobject Sprite sólo sirve como un contenedor para texturas 2D, pero efectivo para un juego 2D! Así que pongámosle la textura de personaje que te doy con los assets, y añádelo al proyecto, luego al sprite renderer…

Ahá! Has descubierto que no se puede añadir al Sprite Renderer! Te da un círculo negro bloqueado, cierto? Te engañé! Primero necesitarás dar click en la textura, y en el campo desplegable Texture, puedes encontrar el tipo Sprite (2D and UI), cierto? Dale click, lo necesitarás.

No necesitas cambiar más que eso (más adelante, con animaciones, veremos otras opciones), sólo dale click en el botón Apply al mero fondo del Inspector, y estarás listo para continuar!

Ahora, la textura tiene una pequeña flechita desplegable y dentro, otra cosita cuadrada llamada igual, este es el sprite dentro de la textura que Unity ha identificado. Si tienes múltiples sprites en una imagen (como un sprite sheet para animación), puedes dividirlo con el Sprite Editor (dentro de las opciones que no ocupas modificar por ahora), y serán enlistadas aquí para que las veas y hacer cambios o manipularlas conforme ocupes.
Por ahora, sólo ocupamos esta imagen solitaria, no haremos más cambios en el personaje hasta que sea tiempo de aprender animación con Mecanim. Qué es eso, y con qué se come!? Bien, así es como se llama el nuevo sistema de Unity que controla la animación.
Es un sistema de codificación gráfico con nodos, simple de usar y comprender. De verdad! Prácticamente lo aprendí por mi misma, después de una serie de migrañas mientras me figuraba qué hace que!
Como sea, de vuelta al tema, ahora ya podemos poner el sprite en el juego! Arrastra y colócalo en el Sprite Renderer y ya está! Ahora intenta rotar la vista para darte cuenta que sólo es una imagen plana que se repite atrás y adelante, perfecta para un juego 2D, con poco consumo de recursos y todo.

Bueno, pero ahora te darás cuenta que la perspectiva de la imagen está equivocada, oh no! Hice el sprite mal! No, espera! No me culpes, es tu culpa! Así es, no has cambiado la cámara aún. Es una cámara aérea, pero no necesariamente de arriba abajo. Yo odio esas cámaras, cuál es el chiste de ver todo desde arriba?

Qué hay de divertido en usar esa perspectiva? Sólo parece un hotcake con algunos tumores en su cabeza y una banana sujetando una salchicha. No se entiende, qué horror! Y mi personaje tan bonito que estaba, lloro lágrimas de sangre! T.T

Bien, si te gusta esa vista, entonces cambia los sprites para que se vean bien, es tu decisión. Lo importante aquí es que sepas cómo quieres que sea tu juego y te apegues a ello. Por mi parte, ya cambié la cámara, así que no te preocupes ;D.

Lo Bueno es que el personaje fue creado en el mismo lugar que la cámara, pues la tenía seleccionada cuando añadí el 2D sprite. Si tu personaje está en otro lado que nada qué ver, dale click en el pequeño engranaje a un lado del componente transform de la cámara, entonces selecciona Copy Component, luego dale click al engranaje del transform del personaje y selecciona Paste Component Values. Automáticamente los dos se fusionarán en el mismo lugar, qué útil!
Así mismo, puedes usar esta misma técnica para copiar y pegar el mismo componente a un nuevo gameobject que no lo tiene, y a la vez ocupas que tenga los mismos valores, o puedes cambiarlos después. Recuerda este pequeño truco en el futuro!

Justo ahora, el personaje no tiene físicas y no se puede mover, la cámara no lo seguirá tampoco, todo son sólo objetos torpes, esto no es un juego… ni siquiera es divertido y ya me aburrí, adiós!!…. Ups, este es mi tutorial, estoy aquí, soy profesional, lo prometo!
Bueno, podemos dejarlo así por ahora, pero te llevaré un nivel más arriba (como el libro, woah!). Vamos a añadir un control de físicas al personaje, que le permitirá moverse, interactuar con otros, tener amigos, amores perdidos y cualquier otra loca aventura! Escoge un 3D gameobject Capsule, mientras tienes seleccionado con doble click el gameobject del personaje.

Si lo hiciste bien, se añadirá en la misma posición que el personaje (si no, intenta de nuevo, o copia las coordenadas), también, tiene volumen y color, es real! Inclusive me preocupé en etiquetarlo apropiadamente. No más ítems visibles, yupi! Pero malas noticias, no necesitamos que sea visible!

Para arreglar este problema, ve al component Mesh Renderer de la cápsula y dale click al pequeño cuadro azul marcado, desmárcalo y observa cómo desaparece del mundo virtual!
Podrás estarte preguntando, otro renderer, qué raro, qué es un renderer! Tengo miedo, hay muchos términos nuevos!… Bueno, deja de enroscarte como gusano en el suelo y enfrenta los hechos! Los Renderers permitirán que tus gameobjects puedan visualizarse, renderizarse en el mundo virtual.
Hay más renderers por ahí, como el Skinned Mesh Renderer, que permite que un modelo 3D importado a Unity pueda visualizarse, pero eso es muy avanzado, y también, pertenece a un mágico juego 3D o que tenga gráficos 3D involucrados. No te preocupes, talvez podamos usar objetos 3D para simular un mundo 2D!
Tú sabes, incluso cuando emules un mundo 2D, hay veces que ciertos objetos necesitan ser 3D para poder visualizarse correctamente en todos los ángulos. Dado que nuestra cámara estará fija, que significa, no rotará alrededor del mundo (más que cuando el personaje se mueva) o del personaje, sólo lo seguirá por detrás; tener cualquier cosa aparte de un personaje 2D es super exagerado, ni siquiera mirará la cámara!
Y dado que este es un juego 2D, si quieres escenas de película con el personaje viendo la cámara, (llegaremos a tenerlo en futuros tutoriales!), sólo bastará con que añadas las animaciones y las reproduzcas en pantallas de tv. No ocupas más, y te ahorra el problema de tener que hacer más gráficos para el personaje (soy floja, y qué?).
Dado que este es un simple juego para tutorial, eso se permite, pues lo importante es que aprendas a usar el programa y lo básico de programación y diseño de juegos, no que hagas el siguiente Final Fantasy xD. Pero para tus propios juegos avanzados, siéntete libre de experimentar lo que quieras!
De vuelta al tema, ahora que tenemos nuestro cuerpo físico del personaje, no necesitas mover más desde donde está, sólo ubícalo en la mitad del personaje. Luego experimentaremos más con esto.
Puedes ver que este capsule gameobject tiene ya un componente llamado Capsule Collider, como con los Renderers, hay muchos Colliders en Unity, con diferentes formas (inclusive Mesh Collider perfecto para el Skinned Mesh Renderer!).
No tocaremos más por ahora, pues se explicarán después. Sólo recuerda que esto le permitirá al personaje interactuar con lo que sea que tenga otro Collider, cool, no crees?

Justo ahora, este Capsul gameobject no es parte del personaje, cuando uno se mueva, el otro no lo seguirá, porque no están conectados, qué sucede? Si observas nuestra Hierarchy Window, están en lugares diferentes. Qué tiene eso que ver con todo? Bien, en Unity las cosas deben estar emparentadas para poder funcionar juntas, o algo similar, todo depende del contexto.
Para arreglar esto, arrastra y deposita el Character Control (Capsule gameobject) dentro del sprite del personaje, y ya está, ahora el Character Control es hijo del carácter sprite que es su nuevo papi. Intenta mover el sprite y verás qué sucede! Aprovecha y emparenta la cámara al sprite, de esa forma, no tendrás que ponerle un script para que le siga por donde vaya el personaje, lo hará en automático!

Otra cosilla extra que quiero enseñarte es sobre la cámara, puedes jugar con el menú desplegable debajo del componente Camera (que lo convierte en cámara, duh). Existe la opción de vista en perspectiva y ortogonal. Escoge lo que te guste, entonces arrastra o escribe la profundidad de campo (slider perspectiva) o tamaño (campo ortogonal), que te guste.
Experimenta con las opciones, intenta modificar y agregar cosas, aprende explorando!

Si tienes cualquier pregunta, no dudes e preguntarme por aquí o en la página de Facebook. Diviértete y adelante, añade más gameobjects con diferentes formas, crea tus propios ítems de utilería y colocalos alrededor del campo. Puedes usar cualquier imagen que encuentres en internet, cualquier cosa plana funcionará.
En la próxima lección, nos meteremos a aprender programación para mover al personaje alrededor, esencial en cualquier juego, a menos que sea una novela gráfica…
Un tip final, si das click en la pequeña flechita de arriba al centro, entrarás en el modo Play Test, justo ahora no hay algo que jugar, pero puedes experimentar con ello. No olvides guardar el proyecto!

Published by

Mary D Kidd

Una misteriosa creativa dispuesta a dejar sus ideas salir y tomar control del mundo. Preparada siempre para innovar ;D

Leave a Reply

Your email address will not be published. Required fields are marked *

Transcribe Unity 3D tutorial introductorio P. 1

Your email address will not be published. Required fields are marked *

*

*