Animación en Unity 5.0
Datos Baked en Unity 5.0

Audio en Unity 5.0

Estas son notas para tener en cuenta cuando actualice proyectos de Unity 4 a Unity 5, si su proyecto utiliza características de audio.

AudioClips (Clips de Audio)

Un número de cosas ha cambiado en el AudioClip. Primero, hay una flag 3D más larga en el asset. Esta flag ha sido movida al AudioSource en forma de un deslizador Spatial Blend permitiéndole a usted, en tiempo de ejecución, el morphing de sonidos 2D a 3D. Los viejos proyectos serán importados de tal manera que los AudioSources en los GameObjects en la escena que tienen un clip asignado van a tener su parámetro Spatial Blend configurado de acuerdo a la vieja flag 3D del AudioClip. Por razones obvias, esto no es posible para scripts que dinámicamente asigna clips a las fuentes, por lo que esto requiere un arreglo manual.

Mientras los ajustes por defecto para la propiedad vieja 3D fuera verdad, por defecto en el nuevo sistema, el predeterminado para el parámetro para Spatial Blend es configurado a 2D.

Finalmente, los AudioClips pueden ser multi-editados.

Formato

El nombramiento de la propiedad Format ha cambiado para que refleje el método por el cual los datos son almacenados en vez de un formato de un archivo particular que se desvía de plataforma a plataforma. Por lo que de ahora en adelante lo Uncompressed (Descomprimido) se refiere a datos de muestra crudos, Compressed (Comprimido) se refiere a un método de compresión con pérdidas que encaja mejor a la plataforma y ADCPM se refiere a un ligero (en términos de CPU) método de compresión que mejor encaja a la señales naturales de audio que contienen una cantidad moderada de ruido (pasos, impactos, armas, etc.) y están para reproducir en grandes cantidades.

Precargando y cargando datos de audio en el fondo

Una nueva característica de AudioClips es que estos proporcionan soporte para una opción para determinar si precargar los datos de audio o no. Cualquier propiedad del AudioClip es separada del estado de carga de datos de audio actual, y puede ser consultado en cualquier momento, por lo que tener la posibilidad de cargar en demanda ahora ayuda mantener el uso de memoria de AudioClips bajo. Adicionalmente a esto, los AudioClips pueden cargar sus datos de audio en el fondo sin bloquear el thread del juego principal y causar caídas de frames. El proceso de carga puede obviamente ser controlado vía el API de scripting.

Multi-edición

Todos los AudiClips ahora soporta multi-edición.

Force to Mono (Pasar a Mono)

La opción Force To Mono ahora realizar un pico-de normalización en el down mix resultante.

GetData/SetData (ObtenerDatos/ConfigurarDatos)

Estos llamados de API solo están soportados por clips que están almacenando los datos de audio descomprimidos como PCM o realizar la descompresión cuando cargue. En el pasado, más clips soportaban esto, pero el patrón no era muy limpio ya que ambos dependía en la plataforma destino y tenia diferente comportamiento en el editor y reproductores standalone. Como una nueva cosa, los archivos trackers pueden ser descomprimidos como data PCM a memoria también, por lo que GetData/SetData también puede ser utilizado en estos.

Comportamiento de pausa del AudioSource

Pausar en Unity 5 ahora es más consistente entre llamadas Play y PlayOneShots. Pausar un AudioSource pausa las voces reproducidas en ambos lados, y llamando Play o PlayOneShot renauda el AudioSource para las voces reproducidas de ambas maneras.

Para asistir con des-pausar un AudioSource sin reproducir el clip asignados, (útil para cuando haya voces oneshot reproduciendo), nosotros hemos agregado una nueva función AudioSource.Unpause ().

Audio Mixer (Mezclador de Audio)

El AudioMixer es una nueva característica de Unity 5 permitiendo un routing complejo de datos de audio desde los AudioSources para mezclar grupos dónde los efectos pueden ser aplicados. Una diferencia clave del componente Audio Filter es que los filtros de audio son instanciados por AudioSource y por lo tanto son más costoso en términos de CPU si el juego tiene una gran cantidad de AudioSources con filtros o si un script simplemente crea muchas instancia de un GameObject conteniendo. Con el mezclador ahora es posible configurar un grupo con los mismos efectos y simplemente enrutar el audio del AudioSource a través de los efectos compartidos resultando en un uso bajo de CPU.

El mezclador actualmente no soporta efectos basados en script, pero si tiene un API de plugin de audio nativo permitiéndole a los desarrolladores escribir efectos de alto rendimiento que integran sin problemas con los otros efectos incorporados.

AudioSettings (Configuraciones de Audio)

La manera en que el sistema de audio es configurado ha cambiado. Los ajustes generales para configurar el modo de speaker y tamaño DSP buffer (i.e. estado latente) todavía debe ser configurado en la configuración del proyecto de audio, y adicionalmente a estos también ahora es posible configurar las cuentas de voces reales y virtuales. La cuenta de las voces reales especifica qué tantas voces pueden ser oídas concurrentemente y por lo tanto tienen un fuerte impacto en el consumo general del CPU del juego. Anteriormente a esto, ésta fue codificada a 32 con algunas excepciones específicas de la plataforma. Cuando el número de voces reproduciéndose exceda este número, aquellas que sean menos audible serán puestas en espera hasta que estas voces se vuelvan dominantes o algunas voces dominantes paren de reproducirse. Estas voces son simplemente excluidas de reproducirse. Estas no son paradas, simplemente se vuelven inactivas hasta que haya banca ancha nuevamente. La cuenta de voces virtuales definen qué tantas voces pueden ser manejadas en total, por lo que si el número de voces reproduciéndose excede esto, las voces menos audibles pararán.

AudioSettings.outputSampleRate y AudioSettings.speakerMode puede todavía se puede leer, pero los setters ahora son obsoletos, al igual que la función SetDSPBufferSize. Como remplazo para estos cambios de configuración en el audio que necesitan suceder en el tiempo de ejecución, ahora hay una estructura llamada AudioConfiguration. Esta puede ser obtenida vía AudioSettings.GetConfiguration() que va a devolver los ajustes activos en el dispositivo de output del audio. Los cambios a esta estructura pueden ser hechos y aplicados vía AudioSettings.Reset() que va a devolver un resultado boolean dependiendo en el intento con exitoso o fallido de aplicar los cambios.

Cuando haya cambios a la configuración de audio, ya sea causados por script vía AudioSettings.Reset() o por eventos externos como un plugging en monitores HDMI con soporte de audio, tarjetas de sonido externas o auriculares USB, un callback definido por el usuario AudioSettings.OnAudioConfigurationChanged(bool deviceChanged) sera invocado. Su argumento deviceChanged será falso si el cambio fue causado por un llamado AudioSettings.Reset(), y verdad si fue causado por un cambio de dispositivo externo (este también puede cambiar la velocidad de muestras del dispositivo de audio en uso). Si el callback le permite a usted recrear cualquier sonido volátil como lo son clips PCM generados, restaurar cualquier estado de audio, o adaptar los ajustes de audio a través de AudioSettings.Reset().

Animación en Unity 5.0
Datos Baked en Unity 5.0