Unity 5 ha traido también nuevos
controles de sonido, y la verdad es que hacía falta, una vez más
pasamos de algo bastante básico a un control completamente
profesional. Visto por encima puede parecer que han metido una mesa
de mezclas y ya, pero tiene bastante más profundidad.
Las mesas de mezclas son Mixers, nuevos
elementos que creamos, y serían el equivalente en sonido al Animator
que usamos con Mecanim. Son elementos con su propia ventana de
edición. En un Mixer podemos crear lo que serían canales de la mesa
de mezclas, que se llaman Groups. En principio es parecido a un canal
en una mesa de mezclas, pero con añadidos. Los Groups del Mixer son
una jerarquía donde el sonido de los hijos pasa por el canal padre.
Es decir si tenemos una jerarquía típica familiar en un Mixer
(abuelo, padre, nieto), el group nieto tiene su sonido, que pasará
al padre, si el padre tiene reducción del 50%, llegará un 50% del
volumen del nieto al abuelo, y si el abuelo tiene otro 50% de
reducción el sonido final que escucharemos será un 25% de lo que
sonase en el nieto.
Tenemos además efectos de sonido en
tiempo real que podemos añadir en una pila a cada canal. Efectos
como reverberación, eco, reducción por tonos, limitadores de pico
de volumen, cambio de velocidad, distorsiones... Y siempre el de
control de volumen (Attenuation) que es un efecto obligatorio en cada
group. Funcionan como una tubería, cada efecto da su salida al de
debajo y por lo tanto el orden afecta al resultado.
Hay que tener en cuenta que estos
efectos en tiempo real pueden ser exigentes para la CPU, por lo que
es recomendable juntar los sonidos y aplicar el efecto solo una vez.
Es decir si tenemos una escena en una cueva y queremos que haya eco,
es mejor juntar los sonidos de diálogos, fx y demás y aplicar el
eco sobre el total que aplicar un eco a cada tipo de sonido.
Para poder hacer esto mejor nos dan los
comandos send y recieve. Nos permite poner como un efecto más en la
pila un receive para un canal y enviar sonido desde otro(s). Así
podríamos tener un canal para el efecto de eco y enviar lo que nos
interese hacia él y el efecto se haría solo 1 vez mejorando el
rendimiento. También podríamos haber hecho esto aprovechando la
jerarquía, hacer todos los groups que necesiten eco hijo del group
que tiene el efecto, ¿qué ventajas nos da hacerlo con send y
recieve?
Uno es que podemos poner varios send a
canales distintos. Esto nos permitiría mandar el sonido de fx al
canal que hace eco y también al que hace reverb (suponiendo que
tengamos esos efectos separados por algo), y que cada efecto se
aplique sobre el sonido original. Si lo hicieramos con jerarquía uno
de los efectos se aplicaría sobre el resultado del otro. Y la otra
gran ventaja es que podemos elegir el volumen de envío en send. Esto
hace que aunque tengamos varios sonidos distintos yendo al mismo
efecto no tenemos por qué tener el mismo nivel de volumen en todos.
Por ejemplo, imaginemos que queremos reverb en música y fx, si lo
hacemos por jerarquía, podemos ajustar el volumen de música, fx y
reverb, pero el volumen de reverb será el mismo para música y fx,
no podemos ajustar eso. Con send y recieve podemos poner la música
al 80% de volumen, y enviar al 50% con send (tendríamos un 40% de
reverb en música), y el fx al 100% con un send del 80% (tendríamos
un 80% de reverb en fx), y todo eso sin tocar la atenuación del
group del reverb. Es muy versátil y eficiente, ajustar volúmenes es
una multiplicación más y tenemos mucho control sobre efectos
complicado en tiempo real sin mucha sobrecarga de CPU.
Y ya la cosa que me ha encantado son
los snapshots, que son copias de la configuración de todos los
parámetros de un Mixer. Esto nos permite pasar de una configuración
de sonido a otra de forma fácil, podemos ajustar todos los
parámetros en el editor (incluso con el juego al play), y guardarlos
como un snapshot, y configurar de forma completamente distinta para
otro momento u otra zona de juego que tiene sonido diferente y
guardarlo como snapshot, y luego en código con una sola línea pasar
de una a otra, incluso con transición suave entre ellas.
No hay comentarios :
Publicar un comentario