jairogarcíarincón
05/09/2022
Contenidos
Introducción
Un elemento crucial en cualquier videojuego es el sonido.
Te invito a conocer mi Curso de Sonido para Videojuegos en el que explico cómo funciona el sonido digital, cuales son los formatos utilizados o cómo se diseña el sonido de un videojuego en líneas generales.
También te invito a realizar el tutorial de Unity Working with Audio Componentes (en inglés).
No obstante, en esta receta lo que vamos a conseguir es lo siguiente:
- Reproducir una música de fondo durante todo el juego (musica.mp3)
- Reproducir un sonido cuando se recoja una moneda (moneda.mp3)
- Reproducir un sonido cuando salta el jugador (salto.mp3)
- Reproducir un sonido desde que se recoge una cápsula hasta que termina la potencia de salto extra (saltoExtra.mp3)
- Reproducir un sonido cuando se pierda una vida (perderVida.mp3)
- Reproducir un sonido cuando se gane una vida (ganarVida.mp3)
- Reproducir un sonido cuando se termine el juego y gane (finGanar.mp3)
- Reproducir un sonido cuando se termine el juego y pierda (finPerder.mp3)
- Reproducir un sonido para la plataforma rotatoria que ira subiendo de intensidad a medida que nos acerquemos a ella (rotatoria.mp3)
- Poder gestionar todos los niveles de esos sonidos mediante un sistema de mezcla
Todos estos archivos de audio ya preparados los puedes obtener en ESTE ENLACE o usar los tuyos propios, y puedes comprobar el objetivo final haciendo clic AQUÍ.
El Audio en Unity
Una vez descargados los archivos, arrástralos a una nueva carpeta dentro de Assets llamada Audio.
Según el Manual de Unity:
- Las características de Audio de Unity incluyen un sonido completo 3D spatial (espacial), una mezcla y mastering en tiempo real, jerarquías de mezcladores, snapshots y efectos pre-definidos.
- Unity puede importar archivos audio en formatos AIFF, WAV, MP3 y Ogg de la misma manera que otros assets, simplemente arrastrando los archivos al panel del Proyecto.
- Unity puede acceder a los micrófonos del computador desde un script y crear Audio Clips mediante una grabación directa mediante la clase Microphone.
Para empezar a trabajar con el audio, debemos diferenciar 4 elementos principales (si bien hay otros que conoceremos más adelante):
Audio Clip
Los Audio Clips contienen información de audio utilizada por Audio Sources. Unity soporta mono, stereo y assets de audio multi-canal (hasta ocho canales).
Audio Source
El Audio Source reproduce un Audio Clip en la escena. El clip se puede reproducir en un Audio Listener o a través de un Audio Mixer.
Audio Listener
El Audio Listener actúa como un dispositivo parecido a un micrófono. Recibe la entrada de cualquier Audio Source de la escena y reproduce el sonido a través de los alta-voces del computador. Para la mayoría de aplicaciones tiene mucho sentido adjuntar el listener a la Cámara principal, ya que cada escena solo puede contener un Audio Listener.
Audio Mixer
El Audio Mixer nos permite organizar las fuentes de audio en canales con control de volumen, así como aplicar diferentes efectos.
El mezclador de audio
Una vez entendido lo anterior y partiendo de la base de la receta 5, realiza los siguientes cambios:
- Dentro de la carpeta Assets > Audio, crea un nuevo Audio Mixer con el nombre Mezclador.
- Haz doble clic en él y, en el apartado Groups, añade dos grupos que dependan de Master llamados SFX (para los efectos sonoros) y Música (para la música de fondo)
De este modo, hemos configurado un mezclador para poder organizar mejor los niveles de nuestros audios. El resultado debería parecerse a este:
El Audio Source de la cámara
- Añade un componente Audio Source a la Main Camera
- Arrastra dentro de la propiedad Audio Clip el audio musica.mp3 (que deberías tener en Assets > Audio).
- Haz clic en el círculo a la derecha de la propiedad Audio Mixer y selecciona el grupo Música en la ventana flotante.
- Activa la propiedad Loop (reproducir en bucle)
El Audio Source de la plataforma Rotatoria
- Añade un componente Audio Source a la plataforma Rotatoria
- Arrastra dentro de la propiedad Audio Clip el audio rotatoria.mp3 (que deberías tener en Assets > Audio).
- Haz clic en el círculo a la derecha de la propiedad Audio Mixer y selecciona el grupo SFX en la ventana flotante.
- Activa propiedad Loop (reproducir en bucle)
- Spatial Blend: 1 (3D)
- Volume Rolloff: Linear Rolloff
- Min Distance: 3
- Max Distance: 18
NOTA: Las distancias son relativas al Listener, que en nuestro caso está en la Main Camera. Los valores correctos de Distance van a depender de tu proyecto y de en qué posición se encuentren la plataforma Rotatoria y el Jugador respecto de la Main Camera. Puedes ajustarlos con el juego en modo Play y moviendo los puntos de la pendiente que se ha generado.
En este momento, si ejecutas el juego deberías escuchar la música de fondo y el sonido de la Rotatoria, que son los únicos que se reproducen al arrancar el juego. Haz doble clic en el Mezclador y ajusta los niveles de los dos grupos (SFX y Música) para que suene a tu gusto y sin saturar.
Los Audio Sources del jugador
- Añade 7 componentes Audio Source al Jugador.
- Arrastra dentro de la propiedad Audio Clip de cada uno de ellos y en este orden los audios salto.mp3, moneda.mp3, saltoExtra.mp3, perderVida.mp3, ganarVida.mp3, finGanar.mp3 y finPerder.mp3 (que deberías tener en Assets > Audio).
- Haz clic en el círculo a la derecha de la propiedad Audio Mixer de cada uno de ellos y selecciona el grupo SFX en la ventana flotante.
- Desactiva la propiedad Play on Awake (reproducir al arrancar) de cada uno de ellos.
- Modifica y comprende el siguiente código de JugadorController
Por supuesto, si lo consideras necesario, haz doble clic en el Mezclador y ajusta los niveles de los dos grupos (SFX y Música) para que suene a tu gusto y sin saturar. También puedes modificar los niveles de cada Audio Source por separado en su componente correspondiente.
Con esto estaría terminada la receta y el tutorial, espero que te haya resultado útil.
Publicado el 23 de Noviembre de 2024
unity