Unity tutorial: videojuego educativo

En este tutorial aprenderás a crear el videojuego educativo que tiene como nombre “Dinosaurland”, fue creado en Unity, y consiste en un pequeño museo en el cual se muestran múltiples modelos de dinosaurios con su respectiva información, además de la opción de escuchar su rugido, todo esto con el fin de ser un videojuego educativo orientado a cualquier tipo de audiencia. El proyecto fue creado en el motor de videojuegos multiplataforma llamado Unity, el cual brinda todas las herramientas necesarias para elaborar un videojuego, contemplando todos los aspectos y características que debe contener un videojuego. La versión utilizada de este motor fue la 2019.4.13f1.
El juego será desarrollado para la plataforma Android, dando toda la funcionalidad para que se pueda ejecutar en celulares, dando múltiples acciones sobre los dinosaurios, como escalarlos, moverlos, etc. además, de brindar una experiencia más inmersiva al tener una vista en primera persona.

Público objetivo

El público al que está dirigido este videojuego es a todo público de cualquier edad, al ser un videojuego educativo cualquier persona lo puede usar sin restricciones de edad. De igual forma al no manejar luces estroboscópicas, ni algún efecto o personaje que pueda provocar alguna fobia, no tendrá restricciones para personas que padezcan alguna enfermedad. Además, aunque tenga texto informativo, al tener sonidos y modelos 3D, los niños que no sepan leer pueden relacionar la figura con un sonido que es el rugido de este, brindando así más interactividad.

Estilo visual

Localización/mapas

La localización del entorno del primer nivel será en dos plataformas separadas por un puente, ambas plataformas están encima de un asset de agua para simular que fueran islas y diera un poco más de dinamismo al escenario, en vez de que fuera solo un pasillo con las exhibiciones. Otra de las razones para que sean islas, es para dar el contraste con los dinosaurios acuáticos, haciendo que estos salgan de una pequeña piscina en cada sala. Cada nivel del videojuego se basará en dos plataformas unidas por algún elemento para cumplir el mismo factor; no generalmente tendrán que estar suspendidas sobre assets de agua.

El segundo nivel se localiza en un acuario, en donde se encuentran múltiples dinosaurios acuáticos que lo rodean, el escenario es circular, situado en una semiesfera, dando una visión más amplia de los dinosaurios y dando una mejor inmersión al usuario en el ambiente.

El tercer nivel se localiza en un pasillo que simula una sala de un museo, en donde se exhiben fósiles de dinosaurios y en el centro de esta se encuentra un fósil gigante de un T-Rex. Se propuso que este escenario fuera un museo ya que los fósiles son algo menos vistoso y representa algo más cercano a la historia de los dinosaurios, por lo tanto se escogió este ambiente más serio y académico.


Ya que el entorno que recorrerá el usuario es lineal y bastante autónomo, no se implementará un mapa de guía al usuario en ninguno de los tres niveles.

Recorrido del juego

El recorrido del videojuego se basa en simular un museo, en donde el usuario pasará por salas que exhiben modelos de dinosaurios de diferentes clases con información relevante a estos que se mostrará en texto y en audio narrado. El jugador tendrá la capacidad de moverse de una plataforma a otra a través de un puente que las conectará. El usuario no tendrá la posibilidad de entrar en los cubículos de los dinosaurios ni tampoco de entrar a los lagos de los dinosaurios acuáticos ni tampoco de entrar al terreno que está afuera de las salas.

Hierarchy en Unity

La jerarquía utilizada para este proyecto en Unity se basa en una escena para cada nivel que contiene todos los elementos del juego, es decir, el escenario varía dependiendo de cada nivel. Para el primer nivel son dos plataformas simulando un zoológico, para el segundo nivel es una plataforma rodeada por cuerpos de agua para que simule un acuario y por último el tercer nivel que es un pasillo hecho con objetos primitivos para simular un pasillo de un museo. Cada escenario se compone por modelos 3D de dinosaurios y cilindros que muestran información relevante de cada uno de estos y reproducen el rugido de cada uno.

Además cada escenario conteniene elementos básicos como son la iluminación, la cámara y el First Person controller (personaje que se mueve por el mapa controlado por el usuario) que se maneja gracias a un canvas ubicado en la interfaz 2D de cada escena que se compone por varios elementos que se explicarán más adelante.


La cantidad de modelos de dinosaurios que se utilizaron en la primera escena fue de ocho además de ocho cercas de “seguridad” para dar la ambientación de jaula. En el segundo nivel se utilizaron siete modelos de dinosaurios, y cinco cuerpos de agua que son esferas con textura de agua, esto para dar la ambientación de que el usuario está dentro del agua en un acuario, además de una semiesfera que es la plataforma principal en donde se ubica el usuario. Por último en el tercer nivel se utilizaron seis modelados de fósiles.

Assets en Unity

Se manejaron múltiples assets en este proyecto, muchos de ellos sacados de la Asset store como el paquete de Standard Assets que brinda Unity gratuitamente, del cual se tomaron elementos como el agua, y figuras primitivas para realizar las colisiones y los muros que separan a los dinosaurios del primer nivel y a los fósiles del tercero.

Pasando a revisar los assets como tal, se debe revisar primeramente la jerarquía de estos, en la cual se puede observar múltiples carpetas, en las cuales destacan la carpeta de los standard assets y las carpetas de los assets del proyecto como tal.

De las carpeta de Standard Assets se utilizó el prefab del agua para simular el océano, además del First Person Controller.

Pasando a explorar a fondo el paquete de assets del proyecto se pueden encontrar siete carpetas: ASSETS AMBIENTES, ASSETS DINO TERCER NIVEL, ASSETS DINOSAURIOS PRIMER NIVEL, ASSETS DINOSAURIOS SEGUNDO NIVEL, INFO DINOSAURIOS, Scripts, Sonidos, en las que se encuentran todos los archivos, modelos, sonidos y código que componen el juego como tal.

ASSETS AMBIENTES

Entrando en detalle a revisar cada una de las carpetas de los assets del proyecto, podemos encontrar la carpeta ASSETS AMBIENTES, la cual tiene los modelos, prefabs y texturas relacionadas con los elementos utilizados para dar ambientación a los escenarios, estos son puentes, candelabros, techos, portales y una semiesfera para el segundo nivel simulando un acuario. Además se encuentran todos los materiales y texturas de estos modelos y prefabs.

ASSETS DINOSAURIOS PRIMER NIVEL

Pasando a la siguiente carpeta de ASSETS DINOSAURIOS PRIMER NIVEL, encontramos todos los modelos 3D utilizados en el primer nivel del videojuego, estos son todos los relacionados con dinosaurios terrestres y el megalodón, y las texturas respectivas a cada uno de estos. Además encontramos elementos como una cerca de protección que ayuda a dar la ambientación de que los dinosaurios están encerrados en jaulas.

ASSETS DINOSAURIOS SEGUNDO NIVEL

Siguiendo a la siguiente carpeta de ASSETS DINOSAURIOS SEGUNDO NIVEL, encontramos todos los modelos 3D utilizados en el segundo nivel del videojuego, estos son todos los relacionados con dinosaurios marinos, y las texturas respectivas a cada uno de estos.

ASSETS DINO TERCER NIVEL

Continuando con la carpeta de ASSETS DINO TERCER NIVEL, encontramos todos los modelos 3D utilizados en el tercer nivel del videojuego, estos son todos los relacionados con fósiles, y las texturas respectivas a cada uno de estos. Hay algunos modelos que no tenían una textura específica como el cráneo del tigre dientes de sable y el stegosaurus, ya que son modelos hechos en color blanco y no necesitan texturas.

INFO DINOSAURIOS

En la carpeta de INFO DINOSAURIOS podemos encontrar imágenes de la interfaz de movimiento del usuario, estas imágenes se utilizaron en la pantalla de controles. Además, se pueden observar tres subcarpetas fundamentales, que son: “PRIMER NIVEL”, “SEGUNDO NIVEL” y “TERCER NIVEL”, cada una de estas contiene imágenes con texto informativo que corresponden a los dinosaurios de cada uno de los niveles.

Scripts / códigos en Unity

Se crearon múltiples clases de C# en las que se modelan ciertos comportamientos de los objetos encontrados en el videojuego. Estas clases se especifican a continuación: 

Cambiar Escena Nivel

Esta clase se encarga de cargar las diferentes escenas según se cambie de nivel, es decir, cada vez que se ingrese por el portal a otro nivel. Se creó una función llamada OnTriggerEnter pasandole un Collider, el cual identifica cuando el game object identificado con la tag “Player” toca el objeto que tiene asociado este código, haciendo se cargue una nueva escena por medio de la función Load Scene que está implementada gracias a la librería SceneManagement que es la encargada de administrar todas las funcionalidades de las escenas. Para esta funcionalidad se crearon tres clases que realizan la misma función, pero se cambia únicamente el nombre de la escena que se quiere cargar.

Disable Items

En cada escena hay múltiples planos que contienen imágenes con la información de cada dinosaurio o fósil, estos planos predeterminadamente está activos en las escenas, pero el concepto original de este videojuego es que el usuario interactúe con los botones establecidos de información para que estos planos aparezcan y haya más interactividad con el usuario. Por lo tanto, se creó esta clase que hace que todos estos planos inicialmente cuando se cargue cada escena aparezcan desactivados.  Para ello se utilizó el método Start() que se realiza siempre que se cargue una escena o un objeto como es en este caso, luego, dentro de este método se implementó la función asociada al game object de cada plano “SetActive” que permite determinar el estado de un objeto, si se quiere poner activo se pone true y si se quiere desactivar como es el caso se pone false.Iniciar juego:

Iniciar juego

Esta clase se compone de cuatro métodos, que se expondrán a continuación: 

  • LoadScene: Este método recibe una cadena de texto (String) con el nombre de la escena que se quiere cargar, esto con el objetivo de ser usado en el menú de incio del juego, para que se cargue la primera escena, para ello se utiliza el comando de SceneManager “LoadScene” que recibe el nombre de la escena específica. 
  • Exit: Este método se encarga de cerrar la aplicación cuando se toque el botón de salir de la interfaz del menú principal, esto se hace por medio de los comandos Applicattion.Exit().
  • pausar: Este método es el encargado de mostrar el menú de pausa en cada uno de los tres niveles, este método se activa cuando el usuario presiona el botón de pausa que se encuentra en cada nivel. Lo que activa este método es una interfaz de pausa que contiene multiples opciones que se verán en el apartado de pantallas. Esto se hace por medio del comando setActive del objeto que se esté pasando, en este caso ese objeto es un canvas que contiene todos los elementos gráficos de la pausa. 
  • reanudar: Este método se encarga de desactivar la pantalla de pausa si es que esta está activa, eso se da cuando el usuario en el menú de pausa presione el botón de “reanudar”, para que la interfaz de pausa se desactive, esto se hace por medio de el comando setActive del objeto que se esté pasando, en este caso ese objeto es un canvas que contiene todos los elementos gráficos de la pausa.

Mostrar Texto Dino / Marino / Fósil

Esta clase es la encargada de mostrar todos los planos que contienen la información de los dinosaurios, esta información se debe mostrar cuando se presione sobre un cilindro específico que está cerca de cada uno de los dinosaurios. Para realizar esta función primeramente se creó una lista de game objects en la que irán guardados los planos informativos, luego en la función update se valida si el usuario está presionando sobre algo, si lo está haciendo, se valida por medio de la clase RayCast si lo que está tocando el usuario es un objeto con un tag específico, si lo está haciendo se debe validar si el tag que está tocando está embebido en el código para mostrar así el plano asociado a ese dinosaurio y debe activar el texto asociado a ese dinosaurio.

Mecánicas del videojuego

Controles propios de Unity

Ya que el videojuego será para la plataforma de Android y dispositivos móviles, los controles que se manejan en este son táctiles, en donde la parte izquierda de la pantalla se use para moverse en las cuatro direcciones: adelante, atrás, izquierda, derecha, y la parte derecha de la pantalla sirva para mover la dirección de la visión del jugador en 360 grados. Además, habrá la funcionalidad de presionar botones, esto se hará simplemente tocando en la pantalla del dispositivo el elemento gráfico específico. 

Música y efectos visuales

Música

Para ambientar al videojuego se utilizará música sinfónico de uso gratuito, con el fin de permitir al usuario sentirse más cómodo con el ambiente. Estas sinfónicas tendrán canciones de Mozart, Beethoven, Bach, Vivaldi, Debussy, Brahms, Handel, Chopin, Schubert, Haydn, Dvorak, Schumann, Tchaikovsky y muchos más. La banda sonora se tomará del video “Música clásica para la relajación, Música para Reducir Estres, Bach, ♫E115” del canal de YouTube “ YellowBrickCinema”.

Efectos de sonido propios de Unity

Los efectos de sonido que se utilizarán son los predeterminados de los assets de Unity, que son los sonidos del movimiento del FirstPersonController que suenan cuando el asset se mueve, estos son sonidos de pasos e impacto al saltar. Además, se implementan los efectos de sonido de los rugidos de cada uno de los dinosaurios utilizados en el recorrido, cada uno hallado de múltiples videos en YouTube. 

AutorJuan Sebastián Martínez Martínez

Editor: Carlos Iván Pinzón

Código: UCMV-9

Universidad: Universidad Central

Información tomada de:
macrovector. (2018). Iconos de gestos de interfaz táctil vector gratuito [Imagen]. freepik
https://www.freepik.es/vector-gratis/iconos-gestos-interfaz-tactil_1530441.htm
Triceratops. (2020, 26 de octubre). En Wikipedia:
https://es.wikipedia.org/wiki/Triceratops
Tyrannosaurus rex. (2020, 18 de noviembre). En Wikipedia:
https://es.wikipedia.org/wiki/Tyrannosaurus_rex
Prehistórico Fandom. (2008). Velociraptor. Prehistórico Fandom. Recuperado de:
https://prehistorico.fandom.com/es/wiki/Velociraptor
Sánchez, R. (2020). Curiosidades del Brachiosaurus. muyinteresante. Recuperado de:
https://www.muyinteresante.es/naturaleza/articulo/curiosidades-del-brachiosaurus-691602358332 

Dinomania. (2020). ANQUILOSAURIO. Dinomania. Recuperado de:
https://www.dinomania.com.mx/Dinosaurios/ANQUILOSAURIO-MEDIANO-748
Prehistórico Fandom. (2008). Spinosaurus. Prehistórico Fandom. Recuperado de:
https://prehistorico.fandom.com/es/wiki/Spinosaurus
Prehistórico Fandom. (2008). Megalodon. Prehistórico Fandom. Recuperado de:
https://prehistorico.fandom.com/es/wiki/Megalodon
Animal Wiki. (2018). Pterodáctilo.buscafauna. Recuperado de:
https://buscafauna.fandom.com/es/wiki/Pterodáctilo
cronicasdefauna. (2018). Los mosasaurios. Terror de los mares cretácicos. cronicasdefauna. Recuperado de:

http://cronicasdefauna.blogspot.com/2018/11/los-mosasaurios-terror-de-los-mares.html
playmedusa. (2016, septiembre, 12). Cómo añadir música y sonidos en Unity (Curso de Unity, 21/22) [Archivo de video]. Recuperado de:
https://www.youtube.com/watch?v=XthsOXzjmro&list=PLZwTcAUvTX_GtzRMaH_dyVdkK7J7WgtvI&index=1
Fantasy & World Music by the Fiechters. (2016, abril, 13). African Jungle Music - Monkey Rainforest [Archivo de video].  Recuperado de:
https://www.youtube.com/watch?v=h6Cv77MYilo&list=PLZwTcAUvTX_GtzRMaH_dyVdkK7J7WgtvI&index=23
Fledermaus1990. (2011, julio, 14). Saint-Saëns - The Carnival of the Animals - VII. Aquarium [Archivo de video]. Recuperado de:
https://www.youtube.com/watch?v=XCBDlC0N8Rc&list=PLZwTcAUvTX_GtzRMaH_dyVdkK7J7WgtvI&index=24
Cologne Chamber Orchestra. (2018, agosto, 16). Oboe d'amore Concerto in A Major, BWV 1055: I. Allegro [Archivo de video]. Recuperado de:
https://www.youtube.com/watch?v=PXZSOHn-LAg&list=PLZwTcAUvTX_GtzRMaH_dyVdkK7J7WgtvI&index=25

Deja un comentario

Tu dirección de correo electrónico no será publicada.