UN CONJUNTO DE HERRAMIENTAS PARA UNITY ORIENTADO AL DESARROLLO DE VIDEOJUEGOS DE ACCIÓN-AVENTURA Y ESTILO RETRO CON GRÁFICOS ISOMÉTRICOS 3D D. Iván José Pérez Colado D. Víctor Manuel Pérez Colado GRADO EN INGENIERÍA DEL SOFTWARE FACULTAD DE INFORMÁTICA UNIVERSIDAD COMPLUTENSE DE MADRID TRABAJO DE FIN DE GRADO DE INGENIERÍA DEL SOFTWARE Madrid, 20 junio de 2014 Director: Prof. Dr. D. Federico Peinado Gil Autorización de difusión y utilización Iván José Pérez Colado y Víctor Manuel Pérez Colado autorizamos a la Universidad Complutense de Madrid a difundir y utilizar con fines académicos, no comerciales y mencionando expresamente a sus autores, tanto la propia memoria, como el código, los contenidos audiovisuales incluso si incluyen imágenes de los autores, la documentación y/o el prototipo desarrollado. Fdo. Iván José Pérez Colado Fdo. Víctor Manuel Pérez Colado Para nuestro nono Quien con su empeño e ilusión, fue un motivo en nuestras vidas para llegar hasta donde hemos llegado y no está hoy con nosotros para verlo Agradecimientos Queremos agradecer, en primer lugar, a nuestro director de proyecto Federico Peinado Gil, por darnos la oportunidad de participar en un proyecto del campo que más nos apasiona, los videojuegos, y por toda la ayuda y dedicación que nos ha prestado durante el curso para completarlo. En segundo lugar, agradecemos a nuestros amigos y familia, su opinión y continua valoración de los resultados que íbamos obteniendo durante la realización del proyecto. Por último, agradecer a la comunidad de usuarios de Unity, y a los usuarios de StackOverflow, la cesión de múltiples fragmentos de código que han servido de referencia para la realización del proyecto. Gracias a todos por vuestra colaboración. Índice Índice de figuras ..................................................................................................................... VII Resumen ..................................................................................................................................... X Abstract.................................................................................................................................... XI Capítulo 1. Introducción..........................................................................................................1 Capítulo 2. Revisión del Estado del Arte ................................................................................4 Sección 2.1. Videojuegos de referencia ................................................................................4 Sección 2.1.1. La Abadía del Crimen ................................................................................5 Sección 2.1.2. Final Fantasy Tactics .................................................................................7 Sección 2.1.3. FEZ .......................................................................................................... 11 Sección 2.1.4. Ragnarok Online ...................................................................................... 13 Sección 2.1.5. The Secret of Monkey Island ................................................................... 14 Sección 2.2. Motores de videojuegos .................................................................................. 20 Sección 2.2.1. RPG Maker .............................................................................................. 20 Sección 2.2.2. Unreal Engine .......................................................................................... 25 Sección 2.2.3. Unity ........................................................................................................ 26 Sección 2.2.4. AlterEngine .............................................................................................. 28 Sección 2.3. Complementos de motores de videojuegos. .................................................... 29 Sección 2.3.1. Complementos para RPG Maker .............................................................. 29 Sección 2.3.2. Complementos para Unity ........................................................................ 30 Capítulo 3. Objetivos y especificación de requisitos ............................................................. 32 Sección 3.1. Objetivos ........................................................................................................ 32 Sección 3.2. Plan de trabajo ................................................................................................ 32 Sección 3.3. Especificación de requisitos software ............................................................. 34 Sección 3.3.1. Creación de escenarios ............................................................................. 34 Sección 3.3.2. Creación y gestión de entidades ............................................................... 37 Sección 3.3.3. Formas de interacción del jugador con el juego ....................................... 39 Sección 3.3.4. Menús e interfaces ................................................................................... 41 Capítulo 4. Análisis y diseño................................................................................................. 48 Sección 4.1. Diseño de la creación de escenarios ................................................................ 48 Sección 4.1.1. La celda .................................................................................................... 49 Sección 4.1.2. Las texturas isométricas, IsoTextures ....................................................... 50 Sección 4.1.3. Las decoraciones, IsoDecorations ............................................................ 52 Sección 4.1.4. El mapa .................................................................................................... 53 Sección 4.1.5. Diseño del editor de mapas ...................................................................... 55 Sección 4.2. Creación y gestión de entidades ...................................................................... 58 Sección 4.2.1. Creación de entidades .............................................................................. 58 IV Sección 4.2.2. Gestión de entidades en tiempo de ejecución ........................................... 58 Sección 4.3. Creación de interfaces..................................................................................... 63 Sección 4.4. Interacción del jugador con el juego ............................................................... 66 Sección 4.5. Sistema de secuencias ..................................................................................... 68 Sección 4.5.1. Diálogos ................................................................................................... 71 Sección 4.5.2. Eventos de juego ...................................................................................... 72 Sección 4.5.3. Bifurcaciones ........................................................................................... 73 Sección 4.5.4. Variables globales, IsoSwitches ............................................................... 74 Sección 4.5.5. Editor para múltiples tipos básicos ........................................................... 74 Sección 4.6. Cierre del análisis y diseño ............................................................................. 75 Capítulo 5. Implementación, pruebas y resultados ................................................................ 76 Sección 5.1. Prototipos........................................................................................................ 76 Sección 5.2. Implementando la celda .................................................................................. 79 Sección 5.3. Las IsoTexturas .............................................................................................. 82 Sección 5.3.1. El asistente de IsoTexturas ....................................................................... 83 Sección 5.3.2. El manejador de texturas .......................................................................... 84 Sección 5.3.3. Las Decoraciones ..................................................................................... 85 Sección 5.4. Implementando el mapa .................................................................................. 90 Sección 5.4.1. El gestor de mapas ................................................................................... 92 Sección 5.4.2. El editor de mapas .................................................................................... 92 Sección 5.5. La clase gestora Game .................................................................................... 99 Sección 5.6. Implementando eventos del juego................................................................. 100 Sección 5.7. Implementando las entidades ........................................................................ 100 Sección 5.7.1. La componente jugador, Player ............................................................. 101 Sección 5.7.2. La componente movedora, Mover .......................................................... 102 Sección 5.7.3. La componente habladora, Talker .......................................................... 103 Sección 5.7.4. La componente almacén, Inventory ........................................................ 104 Sección 5.7.5. La componente objeto, ItemScript .......................................................... 104 Sección 5.7.6. La componente movimiento aleatorio, RandomMover ........................... 105 Sección 5.7.7. La componente teletransportadora, Teleporter ....................................... 105 Sección 5.8. Implementando los manejadores de eventos ................................................. 106 Sección 5.9. Implementando el controlador ...................................................................... 107 Sección 5.10. Implementando las interfaces ................................................................... 108 Sección 5.10.1. Interfaz de diálogos .............................................................................. 109 Sección 5.10.2. Interfaz de inventario ........................................................................... 110 Sección 5.10.3. Interfaz de selección de acciones ......................................................... 112 Sección 5.10.4. Interfaz de controles en pantalla ........................................................... 113 V Sección 5.11. Implementando las secuencias .................................................................. 114 Sección 5.11.1. Intérprete de secuencias ....................................................................... 115 Sección 5.11.2. Editor de secuencias ............................................................................. 117 Capítulo 6. Discusión .......................................................................................................... 124 Capítulo 7. Conclusiones .................................................................................................... 128 Aportaciones de los integrantes ................................................................................................ 131 1. Iván José Pérez Colado..................................................................................................... 131 2. Víctor Manuel Pérez Colado ............................................................................................ 133 Bibliografía .............................................................................................................................. 135 Anexo 1. Title (in English)....................................................................................................... 139 Anexo 2. Introduction (in English)........................................................................................... 140 Anexo 3. Conclusions (in English)........................................................................................... 143 VI Índice de figuras Figura 2.1 - Imagen tomada del videojuego La Abadía del Crimen ................................ 5 Figura 2.2 - Cuatro fragmentos de La Abadía del Crimen que forman una pequeña secuencia ........................................................................................................................... 7 Figura 2.3 - Mapa del videojuego Final Fantasy Tactics A2 remarcando las: Decoraciones, Rampas, Casillas y Alturas ............................................................................................... 8 Figura 2.4 - Dos ejemplos de diálogo en secuencia del Final Fantasy Tactics Advance tomados con varios segundos de diferencia. .................................................................. 10 Figura 2.5 - Dos ejemplos de expresiones en secuencia del Final Fantasy Tactics Advance tomados con una separación muy pequeña..................................................................... 10 Figura 2.6 - Ejemplo de elección en secuencia del Final Fantasy Tactics Advance ...... 10 Figura 2.7 - Secuencia de imágenes del videojuego Fez en el que se muestra la rotación de perspectiva que se permite hacer en dicho videojuego. ............................................. 12 Figura 2.8 - Instantáneas del videojuego Ragnarok Online. En ellas se ve el estilo que une personajes en dos dimensiones, en un mundo completamente en tres dimensiones. ..... 14 Figura 2.9 - Imagen del Monkey Island donde observamos en la parte inferior izquierda, las acciones que permiten al jugador interactuar con el entorno. ................................... 15 Figura 2.10 - Al hablar con el hombre de la izquierda nos hace una pregunta. ............. 16 Figura 2.11 - Imagen donde se muestra, en la parte inferior, la lista de opciones entre la que podemos elegir lo que queremos decir. ................................................................... 17 Figura 2.12 - El personaje dice en voz alta la opción elegida, a lo que el hombre responde “Se parece bastante.” ...................................................................................................... 18 Figura 2.13 - Instantánea del videojuego Stars Wars: Caballeros de la Antigua República donde se muestra en la zona inferior, la lista de opciones que podemos responder. ...... 19 Figura 2.14 - Instantánea del videojuego The Elder Scrolls: Skyrim donde vemos en un cuadro flotante en la parte central-derecha de la pantalla, las opciones que podemos responder. ....................................................................................................................... 19 Figura 2.15 - Motor RPG Maker VX Ace mostrando un ejemplo de un mapa creado con el mismo en cuestión de minutos. ................................................................................... 21 Figura 2.16 - Diferencia entre la perspectiva Isométrica y la Oblicua Normal. ............. 22 Figura 2.17 - Representación en perspectiva Isométrica (izquierda) y Oblicua Normal (derecha). ........................................................................................................................ 22 Figura 2.18 - Motor RPG Maker VX Ace mostrando un ejemplo de un mapa con eventos sobre el mismo. ............................................................................................................... 23 Figura 2.19 - Panel de edición de eventos. ..................................................................... 24 Figura 2.20 - Imagen de la “Elemental Demo” de Unreal Engine 4, demostrando las capacidades y el potencial del mismo. Esta imagen es propiedad de Epic Games. ....... 26 Figura 2.21 - Instantánea de la Asset Store de Unity donde los usuarios comparten sus complementos ................................................................................................................. 27 Figura 2.22 - Capturas tomadas del complemento para RPG Maker Layy Meta Editor.30 Figura 2.23 - Imágenes del complemento proTile Map Editor. Estas imágenes son propiedad del proyecto proTile Map Editor. .................................................................. 31 VII Figura 3.1 - Imagen que muestra las diferencias entre el mapeado de texturas por defecto y el mapeado de texturas que se especifica en este proyecto. ........................................ 35 Figura 3.2 - Esquema de una posible secuencia para una entidad. ................................. 45 Figura 4.1 - Las configuraciones por defecto de los mapeados contarán con valores de la imagen. ........................................................................................................................... 51 Figura 4.2 - Diagrama de clases del editor de mapas. .................................................... 56 Figura 4.3 - Diagrama de interacción referente a los métodos del editor de mapas. ...... 57 Figura 4.4 - Diagrama de clases combinando los patrones mencionados, factoría, singleton, prototipo y cadena de responsabilidades........................................................ 70 Figura 5.1 - Imagen del primer prototipo de IsoUnity - Prototipo de editor 2D ............ 76 Figura 5.2 - Imagen del segundo prototipo de IsoUnity - Prototipo de rejilla 3D.......... 77 Figura 5.3 - Imagen del tercer prototipo de IsoUnity prototipo de celda basada en cubo con un intento de mapeado. ............................................................................................ 78 Figura 5.4 - De izquierda a derecha, celda plana, semi-inclinada e inclinada. Junto a ella, su variante de media altura. ............................................................................................ 79 Figura 5.5 - Transformaciones para los UVs de las caras .............................................. 80 Figura 5.6 - Vista del inspector del editor de la celda. ................................................... 81 Figura 5.7 - Crecimiento de la celda al levantar la flecha superior. ............................... 81 Figura 5.8 - Ventana de proyecto, creando una IsoTextura............................................ 82 Figura 5.9 - A la izquierda, textura mapeada para cara superior, a la derecha, para la cara izquierda. ........................................................................................................................ 83 Figura 5.10 - A la izquierda, mapeado para el lado derecho, a la derecha, mapeado de una rampa semi-inclinada. ..................................................................................................... 84 Figura 5.11 - Imagen de los diferentes posicionamientos que adquiere una Decoration al ser posicionada sobre una cara de una Celda. ................................................................ 86 Figura 5.12 - Imagen que representa los puntos por los que pasa la decoración para alcanzar la posición final deseada. ................................................................................. 87 Figura 5.13- Resultado de las transformaciones realizadas al colocar paralelamente una Decoration sobre cada uno de los tipos de superficies. .................................................. 88 Figura 5.14 - Decoración tridimensional (Barril) colocada dentro de una celda. Este barril es propiedad de Tooncraft 3D y está disponible, de forma gratuita, en la Asset Store de Unity. .............................................................................................................................. 89 Figura 5.15 - El personaje de la derecha muestra una emoción animada de indignación. ........................................................................................................................................ 90 Figura 5.16 - Editor de mapas sin módulo seleccionado. ............................................... 93 Figura 5.17 - Vista del inspector del módulo de edición. ............................................... 93 Figura 5.18 - La celda fantasma con tono semitransparente muestra la ce crear. .......... 94 Figura 5.19 - A la izquierda el comportamiento nativo, a la derecha el logrado. .......... 94 Figura 5.20 - A la izquierda, la cara a pintar, a la derecha, la cara a extraer. ................. 96 Figura 5.21 - Inspector del módulo de decoración. Las decoraciones mostradas han sido extraidas de: Final Fantasy Tactics Advance y son propiedad de Square Enix, La Abadía del Crimen y fuentes libres. ............................................................................................ 97 Figura 5.22 - Panel que se muestra al activar la opción de animado. ............................. 97 Figura 5.23 - Vista del inspector de Talker. ................................................................. 103 VIII Figura 5.24 - Distintas opciones del teletransportador en la vista del inspector. ......... 106 Figura 5.25 - Interfaz de diálogos para un fragmento. ................................................. 109 Figura 5.26 - Interfaz de selección de opciones. .......................................................... 110 Figura 5.27 - Interfaz de inventario. ............................................................................. 111 Figura 5.28 - Al pulsar sobre el objeto podremos realizar acciones sobre él. .............. 111 Figura 5.29 - A la izquierda interfaz con 3 acciones, a la derecha con 5 acciones. ..... 112 Figura 5.30 - Interfaz de selección de acciones con múltiples acciones. ..................... 113 Figura 5.31 - Interfaz de controles en pantalla causando el movimiento del jugador. . 114 Figura 5.32 - Editor de secuencias mostrando a la izquierda un editor de nodo de diálogo con fragmentos y distintas opciones y a la derecha tres editores de nodos vacíos. ...... 119 Figura 5.33 - Editor por defecto para un evento. .......................................................... 120 Figura 5.34 - Editor para un evento move. ................................................................... 121 Figura 5.35 - Editor para un evento add item. .............................................................. 121 Figura 5.36 - Editor para un evento change switch. ..................................................... 122 Figura 5.37 - Editor para una bifurcación de variable global. ...................................... 123 Figura 5.38 - Editor para una bifurcación basada en un objeto. ................................... 123 IX
Description: