Contexto


La música ha estado presente en el mundo de los videojuegos desde sus inicios, muchos de los scores son recordados como clásicos por ser grandes composiciones musicales y por la nostalgia que provocan en sus seguidores.

La música juega un rol muy importante, ya que genera emociones, orienta al jugador y crea una atmósfera impresionante que se complementa con el gameplay para presentar una excelente experiencia para el usuario.

La música cambia según lo que se muestra en pantalla; por medio de los sonidos reconoces las etapas del videojuego, ya que el audio es uno de los factores fundamentales para atrapar la atención del jugador.

Explicación


15.1 Referencias de audio

Un videojuego sin audio está incompleto, para esto Unity cuenta con un sistema de audio flexible, el cual puede importar diversos formatos. Puedes importar archivos en los siguientes formatos:

 

Estos se importan como assets de audio. Los Tracker Modules (paquetes de muestras de audio) se utilizan para música, como paquetes de muestras de audio que pueden ser importados en formato xm, mod, it, s3m.

Estos se importan como assets de audio. Los Tracker Modules (paquetes de muestras de audio) se utilizan para música, como paquetes de muestras de audio que pueden ser importados en formato xm, mod, it, s3m.

En Unity también puedes grabar audio desde un micrófono de tu computadora o micrófono externo.

 

Creando un Audio Source (fuente de audio)

Los sonidos en Unity deben ser originados por Audio Sources que estén adjuntos a los GameObjects; los Audio Sources son componentes que reproducen audio, estos necesitan un Audio Clip para funcionar correctamente, esto quiere decir que debes seleccionar un Audio Clip (sonido) para tener audio en tu videojuego. Se le denomina clip al archivo de sonido que será reproducido. Source es el control para reproducir o parar el clip.

Ten en cuenta que debes contar con tus archivos de audio en tu carpeta de Assets. Para crear un Audio Source dirígete a GameObject / Audio /Audio Source o GameObject / Create Empty, luego selecciona el GameObject vacío y haz clic en Component / Audio / AudioSource.

Audio Source cuenta con las siguientes propiedades:


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Haz clic en cada elemento.

El archivo del clip de sonido que será reproducido.

El sonido es un Output mediante alguno de los siguientes:

Al estar activado el sonido queda silenciado.

Evita efectos aplicados al Audio Source.

Al activarlo se prenden o apagan los efectos del Listener.

Al activarlo se prenden o apagan los Reverb Zones.

Cuando está activada la casilla el sonido se reproduce en el momento en el que la escena se muestre.

Se activa esta casilla para que el clip de audio haga bucle al llegar al final de su reproducción.

Esta opción determina la prioridad del Audio Source, siendo 0 la prioridad más importante y 256 la menos importante; 128 es el valor predeterminado.

Es la magnitud del ruido a una distancia de 1 metro desde el Audio Listener.

Cambio de tono debido a la desaceleración o aceleración del Audio Clip. El valor 1 es una velocidad de reproducción normal.

Este configura la posición de sonidos en el campo estéreo.

Establece qué tanto el motor 3D tiene un efecto en el Audio Source (fuente de audio).

Determina la cantidad de señal que saldrá en zonas de reverberación. 

Se aplican las siguientes configuraciones.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Haz clic en cada elemento.

Siendo Doppler el cambio de frecuencia de onda, en esta opción se determina el nivel del Doppler que se aplicará al Audio Source.

Se establece el ángulo de propagación del sonido estéreo o el sonido multicanal.

Es la velocidad en la que el sonido se desvanece. Esto se determina por una gráfica como la siguiente:


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Haz clic en cada elemento.

El sonido es mayor al estar cerca del Audio Source y disminuye gradualmente conforme te alejas del sonido.

El sonido se escuchará menos entre más lejos te encuentres de él.

El sonido se comporta de acuerdo a como esté modificado en la gráfica.

En esta opción el sonido se mantiene fuerte, se aumenta el Min Distance para atenuar un ruido.

Es la distancia donde el sonido disminuye su intensidad.

 

Audio Listener


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

El Audio Listener es el equivalente a los oídos del videojuego, ya que recibe o escucha fuentes de audio que estén dentro del videojuego. No tiene ajustes o propiedades debido a que el comportamiento del audio se realiza desde el componente de la fuente del audio o Audio Source.

Este Audio Listener está vinculado a la cámara que se encuentra en tu escena por defecto, pero este Audio Listener puede ser colocado en cualquier GameObject. Solo puede haber un listener por escena para que funcione correctamente.

 

Audio Mixer (mezclador de audio)

El Audio Mixer permite el control sobre la señal de flujo de audio en los proyectos de Unity.

Para crear un Audio Mixer, haz clic en Proyect Window y Audio Mixer. Verás algo como en la siguiente imagen:


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Automáticamente se crea un Master. En Unity, el sistema de audio se agrupa por medio de canales, como grupos, ya que proveen funcionalidad adicional al sonido que un mixer regular no haría; para verificar que el mixer esté en funcionamiento, selecciona tu GameObject al que está asignado el sonido, en la ventana del Source selecciona Master en el Output y podrás ver los niveles del clip de audio por medio del Audio Mixer.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

15.2 Audio Filters (filtros de audio)

Los filtros de audio son un recurso muy valioso para mejorar el audio, ya que éste debe emplearse con moderación hasta obtener el resultado deseado; el abuso de algunos filtros puede llegar a ser un tanto molesto para el usuario.

Un Audio Filter transforma el clip de audio de manera digital para conseguir una mejora en alguno de sus aspectos sonoros, puede normalizar el audio e incluso puede deformarlo de una manera creativa. El Audio Filter se puede utilizar para ecualizar el sonido, ya que de esta manera se consigue claridad en el audio.

En Unity cuentas con los siguientes filtros:

Haz clic en cada elemento.

Pasa señal con una frecuencia menor y acentúa la señal con frecuencias altas.

Pasa señal con una frecuencia mayor y corta las señales de frecuencias menores.

Acentúa las repeticiones de un sonido.

Distorsiona el sonido desde un AudioSource. Se puede conseguir el efecto de simulación del sonido de transmisión de audio de baja calidad.

Distorsiona el Audio Clip para crear el efecto de reverberación.

El Audio Clip se escuchará como si hubiera múltiples fuentes, emitiendo el mismo sonido, como en un coro. Se puede utilizar el Delay para retrasar ciertas voces.

Unity cuenta con los Audio Effects que sirven para modificar la frecuencia, la dinámica o el volumen de un clip.  Los Audio Effects modifican el resultado de un componente Audio Mixer.

Para añadir los efectos, haz clic en el Master/ Add o Add Effect. Aparecerá un listado de efectos que puedes agregar, cada uno cuenta con sus propiedades para editar. Se pueden modificar rangos de frecuencia de sonido y agregar distorsión, entre otros.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

 

15.3 Script de audio

Para agregar música de fondo a tu juego crea un objeto vacío y agrega un componente de Audio Source, selecciona tu clip de audio y verifica las propiedades; se recomienda activar la casilla de Loop. Puedes generar un script si quieres llamar tu audio al dar un clic en tu escena.

Haz un Script, le puedes llamar AudioScript. Crea una clase de Audio Clip y una variable pública para cargar tus sonidos y música. En el método Update necesitas indicar si se está presionando una tecla. Observa el script completo en la siguiente imagen.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Para el juego que se ha desarrollado a lo largo del tercer módulo se le agregaron los sonidos a las espinas y monedas. Se creó un componente de audio en el script del personaje y se añaden tres nuevas variables:

    public AudioClip moneda;
  public AudioClip espinas;
  AudioSource audio;

En la función de start agregas la línea:

        audio = gameObject.GetComponent<AudioSource>();

para inicializar el audio.

Se utiliza la función OnTriggerEnter2d para que Void no regrese, si no que sea del tipo IEnumerator. Se agregan las líneas: 

     audio.clip = moneda;
audio.Play();

La condición if, que en este caso se llama moneda, se agregan las líneas:

		audio.clip = espinas;
audio.Play();
yield return new WaitForSeconds(audio.clip.length);

La primera parte del código funciona al tocar las monedas, se llama a un clip dentro de la imagen (monedas) a la variable monedas del AudioSource, esto da un play para que se reproduzca el sonido cuando el personaje agarre monedas.

La segunda parte del código sirve al tocar las espinas, funciona de la misma manera que con las monedas, en este caso se aplica un delay para que el sonido corra antes de reiniciar el juego.

Es importante seleccionar tus clips en el Inspector Window para que funcione correctamente el código:


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

15.4 Build & Export

En todo videojuego es necesario realizar pruebas y enviarlo a diversos usuarios para conocer las opiniones y realizar correcciones. En este subtema aprenderás a exportar tu videojuego.

Unity cuenta con la ventana de Build Settings, en la cual puedes ver las diferentes opciones para exportar a plataformas como PC, Mac, Linux, Android, Xbox, entre otras.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Quality Settings

Dirígete a Edit/Project Settings/Quality. Estos ajustes de calidad tienen varios niveles desde bajo hasta Ultra, pulsa cada uno y verás cómo cambian las propiedades por cada uno. Puedes borrar algunos niveles tomando en cuenta las opciones que creas convenientes según la complejidad de tu juego.

Player Settings

Es importante decidir a cuál plataforma vas a exportar, puede ser un Standalone (Windows, Mac o Linux) o para el Browser o explorador (WEBGL).


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Si lo que quieres es crear un Standalone, en los ajustes del Player dirígete a Resolution and Presentation y haz las modificaciones de pantalla necesarias. Para un juego casual se recomienda la opción Windowed.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Finalmente dirígete a Build Settings y selecciona el Target Platform. Al elegir Windows debes especificar la arquitectura 32 o 64 bits, y luego hacer clic en Build. En la serie de imágenes que se presenta a continuación puedes ver el proceso para construir tu ejecutable. Si quieres guardar tu juego en varias plataformas, la recomendación es realizar varias carpetas para cada plataforma.

Haz clic en cada paso.

Selección de plataforma para el Build del proyecto.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Es recomendable crear un folder para guardar el archivo ejecutable.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Archivo ejecutable de Windows.


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

Juego listo para comenzar


Esta pantalla se obtuvo directamente del software que se está explicando en la computadora, para fines educativos.

 

Cierre


Existen muchas formas para programar videojuegos; aquí solo se mostró una pequeña parte del extenso panorama que está a tu disposición. Las bases son las mismas en cualquier tecnología, en todos los lenguajes necesitarás actualizar posiciones o datos, en cualquier plataforma necesitarás activar variables o crear clases para generar y controlar objetos, en cualquier juego necesitas crear gráficos y elementos para interfaz de usuario, navegación, etcétera.

El lenguaje de programación orientado a objetos comparte muchos conceptos entre los múltiples lenguajes que existen. El método es muy similar, por lo que, conociendo las bases, puedes seguir experimentando y buscar información acerca de estos temas. Hacerlo te acercará cada vez más a la meta que te propongas.

Recuerda que el juego que programaste en el curso puede no incluir todos los conceptos de reciclaje y eficiencia, pues el propósito ha sido mostrarte las bases para programación de juegos interactivos. Queda en ti buscar mayor información y apasionarte por el mundo de la creación de juegos de video, de manera que puedas convertirte en un escritor de sueños y en un creador de aventuras.

Proyecto final

Los efectos sonoros fueron lo último que desarrollaste en este curso, sin embargo, es necesario que lo tengas suficientemente claro.

Incluye estos elementos a tu proyecto final para completarlo y exporta el ejecutable, asimismo pruébalo con amigos para detectar posibles fallas. Agrega la música y los efectos sonoros; recuerda que estos son los que agregan el efecto de un gran impacto o explosión o le hacen saber al usuario, de manera sensorial, que ha logrado algo.

Checkpoint


Asegúrate de poder:

  • Conocer las herramientas de audio en Unity.
  • Comprender la importancia de la música y el sonido dentro de un videojuego.
  • Aprender a generar un archivo ejecutable.

Referencias