0

+ 1

+ 5

Programa y Proyectos docentes

Diseño de juegos y Ludonarrativa

Descargar Programa


Descargar Proyecto Docente Grupo I


Descargar Proyecto Docente Grupo II

Horario de tutorías 21/22

Primer cuatrimestre. Tutorías virtuales

Martes de 8.30 a 10.30


Miércoles de 8.30 a 10.30


Martes de 17.30 a 19.30

Formularios de control de clases

Ver resultados y calificaciones obtenidas

[La publicación de estos resultados está sujeta a su aproboación por parte del alumnado]

Formulario 01

Formulario 02

Formulario 03

Formulario 04

Formulario 05


Formulario 06

Formulario 07

Formulario 08

Formulario 09

Formulario 10

Tipología de clases

Código de colores

Clases teóricas [ 1-6, 9-12, 17-19 ] 43.3%


Clases prácticas [ 7-8, 14-16, 26-30 ] 33.3%


Clases teórico-prácticas [ 13, 20-25 ] 23.3%


Contenido de clase trasvasado a clase futura

Versión de Unity

Cuando descargue Unity para seguir el apartado práctico de la asignatura, escoja una versión compatible con la que hay instalada en el Aula de Informática.

Unity 2018.4.0 ----- 10 May0, 2019


Profesor

Diseño de juegos y Ludonarrativa

Luis Navarrete

Profesor del Departamento de Comunicación Audiovisual de la Facultad de Comunicación. Universidad de Sevilla.

Perfil en US Perfil en CV
Luis Navarrete

CLASE VIII

CONCEPTOS

Ejercicio 1 - Ejercicio 2 - Ejercicio 3 - Ejercicio 4

DESARROLLO DE CONCEPTOS CLAVES

Descargar Assets para Ejercicios

Los assets están, habitualmente, comprimidos en *.rar. Descomprímelos y llévalos al escritorio de tu ordenador. La carpeta resultante es la que contiene el proyecto que posteriormente abriremos con Unity una vez instalado.

Siga el siguiente enlace para descargar el archivo: PRÁCTICA 1

Por favor, este enlace caduca a la semana, por lo que debe descargar su contenido, hacer una copia de trabajo y guardar el original intacto para futuros ejercicios.

Ejercicio 1

Instalación de Unity, apertura de nuestro primer proyecto y configuración de un LAYOUT para la interfaz del programa. El proyecto debe descargarse desde el botón de Assets ubicado justamente arriba de este texto. Para la instalación, apertura del proyecto y configuración de LAYOUT, puedes seguir los pasos siguientes que te ayudarán con el proceso:

1) El enlace para descargar el programa está en el menú superior de la Web, en la pestaña Unity. Este botón te llevará a la página de Unity donde podrás descargar el instalador. Una vez descargado el instalador de Unity (para Windows o Mac), sólo tendremos que pinchar sobre éste para instalarlo. Los siguientes pasos muestran los hitos más importantes de la instalación hasta abrir un proyecto con el programa.

2) Este botón te llevará a la página de Unity donde podrás descargar el instalador. Una vez descargado el instalador de Unity (para Windows o Mac), sólo tendremos que pinchar sobre éste para instalarlo. Los siguientes pasos muestran los hitos más importantes de la instalación hasta abrir un proyecto con el programa.

1) La imagen muestra el primer cuadro de diálogo que abre el instalador. Sólo debes seguir sus instrucciones para instalarlo.

1) Acepta los términos del servicio y de la licencia del software.

1) Escoge los siguientes componentes del software para su descarga e instalación.

1) Completa la instalación pulsando la opción Finalizar.

1) La primera vez que abras el programa te pedirá que introduzcas tu identidad. Puedes hacerlo introduciendo una dirección de correo electrónico de GMAIL y una contraseña.

2) Es muy posible, que la primera vez que te registres, Unity te obligue a responder una encuesta destinada a conocer qué tipo de usuario eres. Es muy importante dejar claro que NO eres profesional ni que darás un uso profesional a Unity (escoge siempre la versión Personal y NO la versión Pro). Lee con atención antes de responder y, con sentido común, contesta siempre aquello que te defina como estudiantes y amateur en el diseño de juegos.

1) Una vez que has instalado Unity, debes abrir un proyecto. En este caso, abrirás el proyecto que has descargado desde la Web de la asignatura y que, según mis instrucciones, debe de estar descomprimido en tu escritorio. El proyecto simplemente es una carpeta que contiene todo lo necesario para generar un videojuego.

2) Para acceder a tu explorador de Windows, simplemente pulsa sobre el botón OPEN remarcado en color rojo.

1) Escoge la carpeta que has descomprimido anteriormente.

2) Lo que has hecho es abrir un proyecto ya existente, por eso has acudido al botón de OPEN. Si en lugar de abrir un proyecto existente, desearas crear uno nuevo, simplemente debes escoger la opción NEW.

1) Como hemos dicho en el paso anterior, para crear un proyecto NEW, sólo debes seleccionar esta opción en lugar de OPEN.

2) Cuando el proyecto es nuevo, debes darle un nombre (es el nombre de la carpeta que contendrá el proyecto y que aparecerá luego en el panel Project del programa); debes localizar la carpeta del proyecto en tu ordenador; también debes escoger si el proyecto es 2D o 3D; y, finalmente, debes pulsar el botón Create Project.

3) Cuando un proyecto nuevo ha sido creado, deberá abrirse mediante el botón OPEN, para localizarlo en tu ordenador, y seguir trabajando. Pero sigamos con el proyecto que hemos abierto (OPEN) que ha sido facilitado por el profesor.

1) Como en este caso hemos abierto un proyecto iniciado, deberás visualizar una imagen parecida a la que aparece abajo. Se trata de un escenario que nos permitirá realizar una práctica.

2) Si tu interfaz no presenta una disposición como la de la imagen de abajo, sólo tienes que ir al boton de LAYOUT Y escoger la opción TALL. De este modo los paneles se organizarán en una nueva disposición. Observa que el panel PROJECT sólo posee una columna en la imagen primera mientras que presenta dos en la imagen segunda. Realmente este detalle no tiene importancia, pero resulta mucho más claro escoger la opcion de una sola columna. Para ello, sólo debes ir al panel PROJECT, clicar sobre el icono de menú que hay en la parte superior derecha del panel y escoger la opción de visualizar en modo de columna única.

3) Observa que en la imagen primera la ventana más grande de la interfaz de Unity tiene tres pestañas (SCENE, GAME y CONSOLE) y puede que sólo dos en tu caso (SCENE y GAME).

4) Las que te aparecen (SCENE y GAME) lo hacen por defecto, la tercera, la de CONSOLE, debes abrirla tú desde la pestaña Window --> General. La ventana de CONSOLE nos permitirá conocer los errores de programación y nos ayudará a corregirlos dándonos feedback sobre nuestros errores en los scripts.

5) Una vez que has ordenado la interfaz, vuelve al botón de LAYOUT y guarda tu configuración de interfaz con el nombre que desees. Cuando vuelvas a abrir Unity, la interfaz cargará tu LAYOUT guardado.

Ejercicio 2

Paneles de la interfaz y su correspodencia. Aquí repasamos las cualidades de los diferentes paneles que constituyen la interfaz de Unity. Habitualmente, cada panel está en correspondencia con otro panel de la interfaz, estableciendo una relación estructural que definimos seguidamente.

1 ) PANEL ESCENA: Aquí es donde diseñamos, disponemos los objetos del juego y establecemos la ubicación de la cámara (la cámara no es más que un GameObject). Por defecto, cuando creamos una escena (desde File -- New Scene), dos GameObject aparecen por defecto: una cámara y una luz direccional (imita al sol).

2 ) Debemos aprender a movernos por la escena. Existen diferentes modos de hacerlo. Serían los siguientes, expuestos del más simple al más complejo:

a ) Con la rueda del ratón hacemos ZOOM IN y ZOOM OUT.

b ) Seleccionando cualquier objeto de la escena y haciendo Focus (f) con la tecla F.

c ) Con la herramienta Hand Tool podemos desplazar la escena respecto al marco de la misma.

d ) Con la herramienta Hand Tool seleccionada presionamos el botón derecho del ratón para acceder a Eye Tool, lo que nos permitirá girar la escena.

e ) Además de con el ratón, podemos hacer ZOOM pulsando al tiempo la tecla ALT y presionando el botón derecho del ratón.

f ) Para navegar por la escena como si estuvieras en un FPS debes mantener pulsado la tecla ALT y desplazar la escena en la dirección que desees presionando las teclas A W S D.

g ) GIZMO: con este artilugio puedes visualizar diferentes secciones de la escena: Top, Front, Bottom, Left, Right, Back. También puedes ver la escena en Perspectiva o en proyección Isométrica.

Es en la escena donde podemos manipular a los diferentes Game Objects. Las herramientas que tenemos para ello son tres: Move Tool, Rotate Tool y Scale Tool (también podemos hacerlo desde el componente Transform del objeto en el Inspector). Cuando seleccionas un objeto con una de estas herramientas puedes desplazarlo, rotarlo o escalarlo, respectivamente. Para ello, sólo debes desplazar, girar o escalar el objeto en función de uno de sus ejes. Estos ejes representan la tridimensionalidad del objeto, así el eje verde es la Y, el rojo es la X y el azul es la Z. Prueba a mover, rotar o escalar un objeto en la escena.

El panel escena mantiene una correspondencia con el panel JERARQUÍA (HIERARCHY). Esto quiere decir que todo objeto presente en la escena posee, obligatoriamente, su correlato en el panel Jerarquía. El nombre de Jerarquía responde a la estructura de los Game Objects, donde unos pueden actuar de padres de otros objetos, estableciéndose cierta herencia entre sus propiedades. Observa que si seleccionamos un objeto en la escena, automáticamente se selecciona en el panel Jerarquía. La acción es conmutable, es decir, la selección de un objeto en la Jerarquía conlleva su selección en la escena. De hecho, si haces doble clic en un objeto de la jerarquía, la escena mostrará en primer término dicho objeto.

A su vez, el panel jerarquía mantiene una correspondencia con el panel INSPECTOR. Cualquier objeto seleccionado en la escena o en la jerarquía, mostrará sus componentes (un Game Object no es más que una suma de componentes). Todos los objetos del espacio 3D tienen un componente en común: el componente Transform que muestra su ubicación en el espacio X, Y, Z. El resto de componentes varía según la naturaleza del Game Object. En la imagen se muestra un objeto seleccionado en la escena y, por tanto, en la jerarquía, que nos devuelve en el inspector los diferentes componentes que posee.

La ventana PROJECT es el lugar donde se almacenan todos los assets que utilizamos para desarrollar el videojuego. Es el lugar en el que podemos importar nuevos elementos para nuestro proyecto. El proyecto es justamente la carpeta que creamos inicialmente cuando abrimos Unity y creamos New Project. Como puedes ver en la imagen, con el botón derecho del ratón puedes abrir un menú contextual que posibilita acceder directamente a la carpeta del proyecto en Windows.

Ejercicio 3

Creación de un simple escenario, explicacion y añadido de componentes.

En primer lugar, crearemos una nuevo proyecto en Unity. Si ya tienes Unity abierto, sólo tienes que ir a File -- New Project. Si Unity está cerrado, cuando lo abras escoge NEW para crear nuevo proyecto. En ambos casos, el programa nos dirigirá a la misma ventana. Como vimos en el ejercicio 1, tienes que nombrar el proyecto y localizarlo en tu equipo. Recuerda que el nombre y su localizacion originan el contenido del panel PROJECT en la interfaz de Unity.

Una vez abierto el nuevo proyecto, observa que la escena (y la jerarquía) muestran dos GameObjects por defecto: una luz direccional y una cámara. Ambos elementos están contenidos en una escena que por defecto se llama SampleScene. Este es el nombre que Unity da por defecto a la escena. Observa igualmente que en el panel Project se ha creado una carpeta que se llama Scene que contiene esta primera escena generada por Unity.Si te diriges al panel Project, seleccionas la escena y pulsas F2, podrás renombrarla.

Vamos a crear nuestro primer Game Object, que se sumará a los ya existentes en la escena y en la jerarquía. Se trata de un Game Object 3d --- Cube. Selecciona la pestaña GameObject del menú principal de la interfaz y navega por el menú hasta encontrar el objeto: 3D Object -- Cube. Observa que el objeto se sitúa en el punto origen del espacio (x,y,z) = (0,0,0).

Ahora, escoge la herramienta Scale Tool y redimensiona el cubo hasta darle forma de suelo, una superficie amplia que nos sirva de escenario. También puedes ser más preciso en la creación de este suelo si introduces directamente las medidas correspondientes en el componente Transform, en su apartado escala (X= 10; y= 0.1; z= 10). Después, con la herramienta Eye Tool (Véase ejercicio 2, paso d) modifica el punto de vista hasta conseguir algo parecido a la imagen de abajo. Además de la herramienta Eye Tool, que te permitirá cambiar el punto de vista, debes modificar también la posicion de la cámara, situándola en contrapicado sobre el suelo, para obtener el resultado de la citada imagen. La cámara debe modificarse en su Position Y = 5 y en su Rotation X = 20. Si cambias a la pestaña Game en la escena, podrás comprobar el resultado final.

Ahora vamos a crear otro Game Object que vamos a ubicar sobre la superficie anterior a una altura de 5 unidades sobre el suelo. Ve nuevamente a la pestaña GameObject y escoge 3D Object -- Capsule. Esta acción creará una capsula que también se ubicará en el punto origen (0,0,0). Para elevarla sobre la superficie, puedes utilizar la herramienta Move Tool, tirando del vector Y (color verde), mientras compruebas en el inspector el número de unidades a la que es elevado el objeto, o puedes introducir el valor en unidades en el Transform Position del objeto (Y = 5). Ahora, pulsa Play en el reproductor superior de la interfaz. Esta acción cambiará el modo de visión directamente a Game.

Vamos a añadir un nuevo componente a la capsula. Se trata de un material que nos permitirá visualizar el objeto con un color. Los pasos son los siguientes:

a ) Ve al panel PROJECT, desde el drop menu Create, escoge la opción Folder. Esto creará una carpeta en el Project que nos permitirá ordenar los diferentes materiales utilizados para no tenerlos sueltos. Nombra Material a la nueva carpeta.

b ) Con la nueva carpeta Material seleccionada (la selección hará que cualquier nuevo elemento creado se incluya en su interior), ve de nuevo al drop menú Create del panel Project y escoge esta vez la opción Material. Esta acción creará un material (es decir, un elemento que nos permitirá añadir texturas o colores a los objetos) que nombraremos Rojo.

c) El nuevo material Rojo aparece contenido en la carpeta Material. Selecciona Rojo y observa cómo el inspector ofrece las características del material. En el apartado Albedo, escoge un color rojo con el Pick Color. Esto dará un color al material, que ahora se verá rojo. Selecciona el material y arrástralo sobre el objeto Capsule en la escena, esto hará que el material rojo se aplique al objeto que se visualizará de color rojo.

Ahora vamos a añadir un nuevo componente al objeto Capsule. Se trata de un Rigidbody, un elemento que hará que el objeto se vea afectado por la física. En este momento, si pones el juego en modo Play, el objeto no se ve afectado por la gravedad. Para evitar esta situación, selecciona el objeto en la escena o en la jerarquía, ve a la pestaña superior de la interfaz de Unity llamada Component -- Physics -- Rigidbody (ojo, no te equivoques con Physics y Rigidbody 2D). Esta acción añadirá el componenente Rigidbody al objeto que ahora sí se verá afectado por la ley de la gravedad. Utiliza el reproductor para poner el juego en Play y observar el efecto.

Observa la caída del objeto una vez añadido el componente Rigidbody.

Ejercicio 4

Un componente para el comportamiento de los objetos: el script.

Un script es un componente más que puede formar parte de un GameObject. Lo que hace este componente es dotar de un determinado comportamiento al objeto. Lo que programamos es justamente su comportamiento.

Para crear un script tenemos que ir al panel Project. Previamente, como ya hicimos con la carpeta Material, creamos una carpeta que hará de contenedor de todos los scripts del proyecto. Ve al drop menú del botón Create del panel Project y crea una carpeta y nómbrala Scripts. Así nos aseguramos de tenerlos ordenados y no dispersos. Selecciona la carpeta antes de crear el script para asegurarte que éste se incluye dentro. Para crear el script, ve igualmente al drop menú Create del panel Project y escoge la opción C# Script (también pueden crearse JavaScript). De este modo se creará un nuevo script llamado, por defecto, NewBehaviourScript. Como norma sintáctica, los scripts, que pueden llamarse de cualquiera manera pero, de modo recomendado, su nombre deberia sugerir la función que cumplen, deben escribirse siempre con mayúsculas inicialmente. Si para una mejor descripción de su función nos vemos obligados a escribir dos palabras, la segunda palabra, siempre junto a la primera, también se escribirá en mayúsculas, originando lo que se conoce como sintaxis de camello. Nombra al script creado como PrimerScript.

Igual que hicimos anteriormente con el material Rojo, arrastra el script sobre el objeto Capsule. El script se convertirá de este modo en un componente más del GameObject (el script, como cualquier otro componente, puede eliminarse de un GameObject a través del botón ubicado en el borde superior derecho del componente). En este caso, como el script no contiene ningùn método, no ocurrirá nada, en el objeto ni en la consola del programa, cuando pulsemos el botón Play para acceder a la vision Game.

Para abrir el script que acaba de crear, haga doble clic sobre él en el panel Project. De este modo se abrirá Visual Studio, un editor que nos permitirá modificar el contenido del script.

Para la ejecución de los próximos pasos, el profesor ha publicado sólo el código necesario que el alumno debe incluir en su script. Esté atento a las explicaciones que alternarán la interfaz de Visual Studio con la interfaz de Unity.

Elimine la capsula y cree un nuevo objeto sobre el escenario, en este caso un cubo. Añádale el material Rojo, un componente Rigidbody y también el script PrimerScript.

Vamos a escribir el siguiente código en nuestro script. Observe que sólo debe copiar lo que está en negrita y color rojo, el resto del código ya aparece en su script por defecto.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PrimerScript : MonoBehaviour
{
    public float velocidadMovimieto = 10.0f;
    public float velocidadGiro = 50.0f;
    
	// Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
	
        if (Input.GetKey("up"))
        {
            transform.Translate(Vector3.forward * velocidadMovimieto * Time.deltaTime);
        }
        if (Input.GetKey("down"))
        {
            transform.Translate(-Vector3.forward * velocidadMovimieto * Time.deltaTime);
        }
        if (Input.GetKey("left"))
        {
            transform.Rotate(Vector3.up, -velocidadGiro * Time.deltaTime);
        }
        if (Input.GetKey("right"))
        {
            transform.Rotate(Vector3.up, velocidadGiro * Time.deltaTime);
        }		
		
    }
}


Antes de comprobar el resultado en Unity, veamos un momento el significado de los métodos que hemos empleado.

transform.Translate

Input

Vector3

GetKey

COMENTARIOS SOBRE EL CONTENIDO DE LAS CLASES

Diseño de Juegos y Ludonarrativa

© Luis Navarrete 2020