[MUSIC] Los elementos creados deben exportarse al motor de juego. Una vez hemos terminado los modelos en los programas de creación 3D. Es necesario traer ese contenido al motor en el que va a funcionar nuestro videojuego. En función del tipo de proyecto y del estudio de desarrollo, se utiliza un tipo de motor diferente. Existen motores de desarrollo propio que normalmente genera por la misma empresa que desarrolla el videojuego. De esta manera, controla con más precisión y detalle la tecnología usada. Por otra parte, existen motores comerciales que son productos que compañías desarrolladoras compran. Para así poderse ahorrar tiempo en el desarrollo de un motor propio. En este ejemplo, vamos a utilizar Unity, para ver cómo se va integrando el arte dentro de un motor. Unity es un ejemplo de un motor comercial. Algunos conceptos básicos de Unity son los siguientes. Se trata de una herramienta de integración que está pensada para juntar contenido you sea arte, programación y diseño. Diseño referido a diseño de juego. Hacerlo todo de manera rápida. De esta manera, no se trata de una herramienta para crear contenido. Pues para esto you están los diferentes programas en cada uno de los respectivos departamentos. Además, Unity está pensado para un desarrollo multiplataforma. De manera que después de trabajar en este motor se pueda exportar a diferentes plataformas, como plataformas móviles u ordenadores de sobremesa. Unity cuenta con una versión de acceso gratuito. Además también cuenta con una comunidad de usuarios muy importante. De esta manera, se puede encontrar en la red mucha información sobre cómo generar contenido y utilizar dicho programa. En este tema y en el siguiente, vamos a tratar la interfaz básica de este motor, de este programa. A la vez, vamos a comentar cuál es la metodología de trabajo para este motor y cómo se organiza el contenido en él. Sobre todo, vamos a poner especial énfasis en cómo se puede importar el contenido creado con los programas de creación artística. Es muy importante no olvidar que un artista debe saber cómo traer su arte a un motor. A la vez que debe conocer los conceptos básicos sobre el funcionamiento de dicho motor. Para empezar viendo la herramienta de Unity, lo primero que debemos hacer es conseguir la herramienta. Para ello, tenemos que ir a la web de Unity, unitiy3d.com y ahí la podemos descargar. Hay varias ediciones, por ejemplo, la personal es gratuita. you tenemos disponibles la mayor parte de características. Así que you sea para Windows o para Mac, la descargamos y la instalamos. Cuando abrimos Unity por primera vez, nos pide crear un proyecto nuevo. Para ello simplemente hay que asignarle un nombre al proyecto y una ruta va a guardar dicho proyecto. Hay que tener muy clara la ruta, porque, como veremos, se crea toda una estructura de carpetas dentro de esa ruta. Algunas de estas carpetas las crea el propio Unity. Y otras las vamos creando nosotros como usuarios, para llenarlas de diferente contenido del videojuego. Así pues, le damos a crear proyecto, y el Unity se cierra y se vuelve abrir con este nuevo proyecto. Aquí vemos la interfaz de Unity. Lo primero a comentar es que la distribución de la interfaz puede variar, puede configurarse. Si nos vamos aquí al Layout. Podemos configurar o escoger diferentes configuraciones de la interfaz. Nosotros vamos a trabajar aquí con las de 2x3. A grandes rasgos, lo que nos llama la atención, son los dos visores y las tres columnas de edición. En referencia a los dos visores, el visor de Scene o escena que tenemos aquí, nos permite ver todos los objetos que hay en esa escena y también editarlos. Disponemos de varias cámaras, you llegaremos a este punto. Y a través de estas cámaras, podemos ver los elementos de la escena y también editarlos. Por otra parte, el visor de game, muestra la acción desde la cámara definitiva del videojuego. De manera que cuando ejecutemos el videojuego, veremos la acción sólo a través de esta cámara. En relación a las tres columnas de edición, tenemos jerarquía, que es la primera, luego proyecto y el inspector. Vamos a empezar por la columna de proyecto. De hecho you la hemos introducido un poco, hace nada. Cuando hablamos de dónde teníamos que guardar el proyecto. El proyecto es toda la jerarquía de carpetas en donde se guarda toda la información de nuestro proyecto. Aquí en Project, proyecto, vemos una carpeta que se llama Assets. Si movemos esto un poco para ver nuestra estructura de carpetas. Veremos que en la estructura en la que hemos guardado nuestro proyecto. Se ha creado todo esto de forma automática. La carpeta de la que nos vamos a preocupar más es la de Assets, porque aquí es donde vamos a crear el contenido o incorporar el contenido para nuestro juego. Geometría, texturas, scripts, animaciones, etcétera. Las otras, de momento las podemos dejar más de lado, porque se crean por defecto. Cuando inicias un proyecto nuevo, es importante entender la relación entre la estructura de carpetas en el explorador de archivos y el mismo Unity. Si voy a Project, luego Create y selecciono Folder, estoy creando una carpeta nueva. Y selecciono. Y en esta carpeta nueva, por ejemplo, voy a poner geometría, o geo para abreviar. Se ha creado aquí adentro, la carpeta de geometría. Lo que creo en un lado se ve en el otro. En principio, puedes hacerlo donde quieras, pero siempre se recomienda trabajar únicamente desde Unity, creando las carpetas que hagan falta. De todas formas tenemos que ser conscientes de esta relación bidireccional entre lo que hacemos en Unity y lo que pasa en el explorador de archivos. Bien, volvamos a nuestra visión general. Aquí podemos crear las diferentes carpetas que queramos y las podemos ordenar como queramos. Si quiero crear otra carpeta que se llame texturas para guardar las texturas. Creo otra carpeta y en este caso, se me ha quedado dentro de la carpeta de geometría. Pero nosotros podemos editar este orden para que estén en el mismo nivel. Ahora, tanto geometría como texturas, están dentro de la carpeta de assets. Voy a crear una tercera carpeta que se va llamar escenas. ¿Por qué escenas? Muy bien, porque you habíamos hablado de que se trabaja por proyecto. Un proyecto no es nada mas que todo el compendio de elementos que van ver en nuestro videojuego. Pero nosotros estructuramos nuestros videojuegos por niveles. Básicamente, la comparación es escena y nivel. Cada escena es una distribución específica de algunos elementos de nuestro videojuego. Hay elementos que los vamos a incorporar en cada escena, como seguramente, el personaje protagonista. Hay otros elementos, como algún enemigo o algún objeto, que puede que estén solamente en algunas escenas. Entonces, para construir escenas, lo que hacemos es coger los elementos del proyecto que nos interesan y los movemos en esa escena en particular. Así que, trabajamos dentro de un proyecto, pero trabajamos escenas de manera individual. Ahora mismo, como el proyecto lo acabamos de abrir, no se ha guardado la escena. Estamos en una escena que no tiene título, como podemos ver aquí. ¿Qué pasa si guardamos la escena? Si le damos a Ctrl+S, o comando +S, nos pide guardar la escena. El formato es propio de Unity, por eso tiene una extensión .unity, y you nos sugiere guardarlo dentro de la misma carpeta de Assets, ¿de acuerdo? Le damos Guardar, vamos a ponerle un nombre, por ejemplo. Escena uno [SOUND] Y automáticamente se ha creado aquí en esta raíz. Aquí no se ve, pero se ve aquí. Aquí vemos como la segunda columna dentro de project, se señala que aparte de las carpetas hay objetos de manera individualizada. Y aquí tenemos un archivo .unity que es la escena número uno. Como yo you he creado una carpeta de escenas, lo más lógico es moverlo para que esté dentro de la carpeta de escenas. Así que si doy click en escenas, en este caso sobre esta escena. Lo ideal sería que en nuestro proyecto tengamos las escenas que necesitemos, todas dentro de una carpeta de escenas para trabajar de manera ordenada. Bien, ahora estamos trabajando en la escena número uno. Aquí en función del contenido que tengamos en geometría, texturas y otras carpetas más como animaciones, como script, etc. Vamos arrastrando y lo vamos trayendo a esta primera columna que se llama la jerarquía. En esta columna vamos a ver todos los elementos de esa escena. Ahora mismo sólo hay dos, la cámara principal y una luz. ¿Por qué hay estos dos elementos? Porque por defecto, Unity los coloca cuando creas una escena o un proyecto nuevo. Vamos a añadir un elemento más, para tenerlo de referencia, sobre todo, a nivel visual. Como ahora mismo no vamos a trabajar con contenido propio, vamos a trabajar con las primitivas de Unity. ¿Qué son las primitivas de Unity? Son pequeños objetos que sirven, básicamente, para hacer pruebas. Vamos aquí a GameObject, 3D object, plane. Esto crea un plano, que es una superficie plana en nuestra escena. Con este objeto de referencia es más fácil explicar cómo movernos por este visor del Scene. Para hacerlo, lo principal es girar la rueda del ratón para hacer zoom, botón del medio del ratón para panear. Tecla Alt y botón izquierdo para rotar. Así mismo podemos cambiar diferentes cámaras, tocando en estos ejes que hay aquí, para mirar en función del eje. Si le damos en el cubo del medio, volvemos a la vista isométrica o perspectiva. Podemos ir cambiando, hasta que queramos. Si vemos que perdemos o nos alejamos demasiado de un objeto apretamos la tecla F. Si tenemos el objeto seleccionado, apretamos la tecla S. Y lo volvemos a tener centrado. Es para hacer zoom o foco en el objeto seleccionado. Bien, ahora sabemos movernos un poco por este visor, también está bien recordar que vamos a rotar en función también del objeto seleccionado. Proseguimos comentando en este caso la columna del inspector, y lo vamos hacer creando más primitivas. Vamos a hacer un cubo, aquí en object/3D object/cube, así que no hemos creado nada. Pero, si nos acercamos y movemos el objeto, veremos que se ha creado un cubo. Bien, como veis, he movido un poquito el cubo, lo he hecho con las herramientas básicas de transformación, que son mover, rotar y escalar. Para mover, aquí tenemos este botón o el shortcut, de teclado, w. El botón siguiente es rotar, y el botón a continuación es escalar. Los shortcuts a continuación de la w, la e y la r. Para mover, como veis, simplemente se trata de seleccionar uno de los ejes del mundo que está en el punto de pivote de nuestro objeto y desplazarlo para poderlo mover. De esta manera podemos asignar la posición que queramos a nuestro objeto. Con rotar pasa lo mismo, nos salen tres ejes y podemos rotar. Y con escalar pasa de la misma manera. Escalamos en un eje, que implica deformar, o escalamos en todo, y cambia la escala de manera uniforme. Estos elementos que hemos tocado son los parámetros del transform del objeto. you veis que cuando tenemos seleccionado un objeto, aparece con este color o marca para indicarnos que está seleccionado. Si tenemos un objeto seleccionado, veréis que en el inspector aparecen varias partidas de información sobre este objeto en particular. Si cambiamos y seleccionamos otro objeto, van a variar esos parámetros, porque son relativos al objeto seleccionado. En función del tipo de objeto, tendrá unas partidas diferentes, lo mismo que categorías distintas u otras. Vamos al cubo y veremos algunos específicos. El primero es el transform, que indica básicamente la información de posición, rotación y escala, en relación con las coordenadas del mundo. Aquí vemos los tres ejes del mundo. X y Z, en los diferentes lados, en función de cómo se ve orientado el objeto. Si lo desplazamos a un eje, veremos cómo cambia su posición, está en unidades. Otro elemento importante del objeto es el box collider. Se trata de una primitiva que tiene un collider o una pequeña malla que podemos utilizar para calcular colisiones. Para calcular cómo los elementos van a colisionar entre ellos. Y después programar qué reacciones. Se tienen que producir cuando se producen estas colisiones. Además hay otro elemento que se llama mesh renderer, y este se ocupa de renderizar, es decir, de hacer que se pinten las caras, que se pinte la geometría y los triángulos. Cada uno de estos elementos también se llaman components o componentes de nuestro objeto en particular. Nosotros podemos ir creando game objects, podemos importar objetos a modo de game object, como desde otros programas como D'arte. También podemos crear y añadir components a los game objects que tenemos en las escenas de nuestro proyecto. De esta manera, trabajar en Unity, implica traer contenido, modificarlo, creando components o componentes y configurándolos. Creando las diferentes escenas y probando y testeando hasta que conseguimos el resultado definitivo. Para terminar esta edición muy rápida de lo más básico de la interficie, vamos a comentar un poco sobre el tema de las luces. Hay una luz por defecto, que es una luz direccional e imita la luz del sol. La podemos modificar, especialmente aquí, aunque la posición no va cambiar demasiado, pero sí la orientación. Si queremos cambiar un poco el ángulo También podemos tocar el inspector cuando seleccionamos su intensidad. Si creemos que es es demasiado fuerte y por eso quema un poco la escena. También tenemos una cámara, cuando la seleccionamos en el inspector vemos sus parámetros básicos. También podemos tocar su posición, moviéndola. Y también podemos tocar también a su campo de visión. Aquí no es un desplazamiento, como podéis ver. Basta con que cambiemos el campo de visión de la cámara. Vamos a dejar, de momento por defecto, como estaba antes. Para terminar, el Unity tiene muchísimas más opciones de configuración. El objetivo era simplemente ver con una visión general de la inferfaz. you a continuación, vamos a empezar a ver cómo se pueden crear los primeros comportamientos entre diferentes objetos. Está bien añadir y contemplar que el objetivo final de todo ésto, cuando trabajas con Unity, es crear un videojuego. Lo tenéis que exportar y construir, hacer una build, de un ejecutable. Un archivo que puedas exportar a diferentes plataformas o dispositivos en los que tiene que funcionar el juego. Así que si nos dirigimos aquí a file y build setting, podemos ver cómo you el propio programa te permite exportar a diferentes plataformas. Algunas de ellas requieren de una licencia especial, como podemos ver en el caso de consolas de sobremesa.