Unity Audio - Efectos de Sonido

De MediaWiki
Ir a la navegación Ir a la búsqueda

Introducción

  • El audio es uno de los elementos más importantes para conseguir una correcta ambientación y experiencia cuando jugamos a u juego.
El uso de audio incluye:
  • Música ambiental
  • Efectos de sonidos (explosiones, aceleraciones, choques, disparos,aciertos al disparar...)


  • En lo referente al manejo de Audios, Unity maneja tres conceptos:
  • Audio Clips: Son los ficheros de audio que guardan el sonido que queremos reproducir
  • Audio Source: Componente asociado a un GameObject que permite reproducir un AudioClip.
  • Audio Listener: Componente necesario para que se pueda escuchar cualquier Audio Source.


  • Para realizar esta sección, creamos una nueva escena de nombre Escena_UD3_Audio y vamos a descargar los siguientes recursos:
Bilderbergin by Robbero (c) copyright 2016 Licensed under a Creative Commons Attribution (3.0) license.



Audio Clips


  • Son los sonidos que queremos reproducir.
Unity los almacena en forma de Assets dentro de la ventana de proyecto.
Tendrán un formato determinado, como mp3, wav,...
Los formatos de audio que Unity soporta son los siguientes:
Unity3d audio 1.jpg
Imagen obtenido de https://docs.unity3d.com/Manual/AudioFiles.html


  • Para importar un audio a Unity crearemos una carpeta Audio y dentro de ella podremos crear una jerarquía de carpetas para tener todos los recursos de audio ordenados.
Así, podemos crear una carpeta en la sección Assets dentro del 'Project Window' para:
  • Los audios asociados a los protagonistas-enemigos (cuando mueren, saltan,...).
  • Música
  • Armas (al disparar, al explotar).
  • Para los Audio Mixer (sección de investigación dentro de esta unidad).


  • Una vez creada la estructura de carpetas dentro de Assets en la Project Window, sólo tenemos que arrastrar los audios a dichas carpetas (podemos cambiar el nombre de los archivos por otros más significativos):
Unity3d audio 3.jpg


  • Ahora, al pulsar un archivo de Audio (Audio Clip) podemos ver sus propiedades:
Unity3d audio 4.jpg
  • Todos los archivos de audio de importan como estéreo. Si quisiéramos forzar a que suenen como mono, marcaríamos la opción Force to Mono.
  • Todos los Audio Clips son cargados en memoria antes de que la escena comience a funcionar. Si tenemos una cantidad muy grande de audios, esto puede suponer que se produzca un cierto retardo en cargar la escena. En este caso podemos marcar que el audio se cargue en Background chequeando dicha opción en sus propiedades (Load in Background). Debemos de tener en cuenta como es nuestra escena, ya que si intentamos reproducir un audio que todavía no se haya cargado en memoria no se reproducirá.
  • Todos los audios se cargan antes de comenzar la escena, y se indica con la opción PreLoad Audio Data (opción por defecto). Fijarse que esta opción puede estar personalizada por cada plataforma. Así puedo tenerla activa en la versión PC y desactiva en la versión Android. Si desmarcamos esta opción el audio se cargará en memoria al reproducir dicho audio (AudioSource.play()) o si queremos podemos cargarlo mediante código con la orden AudioSource.LoadAudioData()).
  • Forma que usa Unity para cargar el audio en memoria (Load Types):
Unity3d audio 5.jpg
  • Decompress On Load: Lo que hace Unity es descomprimir el archivo de audio en memoria. Debemos de tener cuidado si estamos haciendo uso de archivos Vorbis ya que este tiene un formato de compresión de hasta un factor de 10. Quiere decir que si el archivo de audio ocupa 10MB, en formato Vorbis podría tener 1MB. Por lo tanto no debemos hacer uso de esta opción para archivos de audio muy grandes (ADPCM puede comprimir un archivo de audio hasta 3.5 veces su tamaño original). Esta es la opción a escoger cuando tenemos pequeños archivos de audio como efectos.
  • Compressed in Memory: En este caso Unity guarda el archivo de audio comprimido en memoria y cuando lo va a reproducir lo descomprime. En el caso de archivos Vorbis tiene una ligera sobrecarga de rendimiento. Sería la opción a escoger con archivos comprimidos de Audio muy grandes.
  • Streaming: En este caso Unity va cargando de disco-descomprimiendo-reproduciendo el archivo de audio. Es la opción que menos memoria consume pero que la más coste de CPU tiene.
  • Formatos de compresión: Van a depender del tipo de audio importado.
Unity3d audio 6.jpg
  • Vorbis: Permite establecer un parámetro de calidad que nos permite ahorrar espacio en memoria. En lar parte media aparece un cuadro donde se nos da información sobre el tamaño original, tamaño comprimido y ratio de compresión. Es el formato de compresión que reduce más el tamaño del archivo de audio original. Se debe utilizar en archivos de audio muy grandes.
  • PCM: Permite tener una calidad muy alta pero es la opción que menos compresión tiene.
  • ADPCM: Puede tener una compresión de 3.5. Suele utilizarse en audios que se reproducen de forma continua y no ocupan mucho, como por ejemplo, disparos o pisadas de pies al andar...


  • Sample Rate Settings. Indica la frecuencia de muestreo (el número de veces por segundo en la que tomamos una muestra de la señal de audio). Con la opción 'Preserve Sample Rate' dejamos la que viene del archivo de audio importado. Cuanto más frecuencia más fiel se reproduce el sonido del fichero de audio pero más espacio ocupa.
Unity3d audio 7.jpg


  • Unity permite realizar operaciones de reproducción sobre el archivo de audio:
Unity3d audio 8.jpg
  • La primera opción (Auto play on), si está marcada, hará que al pulsar cualquier archivo de audio comience su reproducción de forma automática.
  • La segunda opción (Loop on) hará que al terminar de reproducir el audio vuelva al comienzo y siga la reproducción.
  • La tercera opción (Play) hará que el audio suene.
Podemos ver las dos señales de audio (recordar que siempre importa en estéreo y por tanto tendremos dos canales con el mismo audio), indicando su frecuencia de muestreo, su formato de compresión y su duración.




Audio Source


  • Un Audio Source es un componente que se asocia a un GameObject en la escena y permite reproducir un AudioClip.
Controla:
  • Volumen.
  • Tono.
  • Cuando un AudioClip es reproducido teniendo en cuenta aspectos 3D o no (por ejemplo, si es tratado como 3D, al aumentar la distancia el volumen disminuye, el sonido puede venir de un altavoz derecho y pasar a un izquierdo al desplazarse la fuente de audio).



Audio Listener


  • Componente necesario para que se pueda escuchar cualquier Audio Source.
Todo proyecto que se cree en Unity viene con un Audio Listener creado por defecto asociado como un componente a la cámara:
Unity3d audio 2.jpg
NOTA IMPORTANTE: Sólo puede haber un Audio Listener activo en la escena.
  • Un Audio Listener representa el punto desde el cual el jugador va a escuchar el sonido.
La posición del Audio Listener va a influir en el sonido que escucha el jugador debido a que va a poder tener en cuenta la distancia entre el Audio Listener y los Audio Sources que reproducen los Audio Clips.
Así la frecuencia del sonido va a variar si nos acercamos o nos alejamos del Audio Source produciendo un efecto Doppler.





Investigación




-- Ángel D. Fernández González -- (2018).