Introducción a la Oclusión y Obstrucción Ambientales

El audio de juego es un componente crítico de la inmersión, y la propagación del sonido realista puede hacer o romper el sentido de presencia de un jugador. La oclusión y obstrucción del audio ambiental simulan cómo el sonido se comporta cuando se encuentra con obstáculos, agregando profundidad y conciencia espacial al juego. En FMOD, la implementación de estos efectos requiere una combinación de radiodifusión de nivel del motor y las características de audio espaciales incorporadas de FMOD.

La correcta ejecución, oclusión y obstrucción permiten a los jugadores localizar enemigos a través de las paredes, medir el tamaño de un espacio y sentirse conectado al mundo del juego. Sin ellos, el audio se siente plana y desconectada. Al final de este artículo, tendrá un oleoducto listo para la producción para agregar el filtrado de audio ambiental a su juego impulsado por FMOD.

Comprensión de la Oclusión vs. Obstrucción

Antes de sumergirse en la implementación, es esencial distinguir entre oclusión y obstrucción, ya que afectan el sonido de manera diferente y requieren un manejo separado en código y en FMOD Studio.

Occlusion

La oclusión ocurre cuando un objeto sólido bloquea completamente la línea directa de la vista entre una fuente de sonido y el oyente. El sonido debe difractarse alrededor del objeto o viajar a través de él, lo que resulta en una reducción significativa del volumen y un efecto filtrante de baja velocidad. Por ejemplo, un disparo de arma en una sala de hormigón adyacente suena a la mofa y distante. En FMOD, la oclusión se modela normalmente mediante un volumen atenuante y la aplicación de un filtro de baja frecuencias para eliminar las frecuencias elevadas.

Obstrucción

La obstrucción describe el bloqueo parcial de la trayectoria del sonido. La trayectoria directa no se corta completamente, pero el sonido debe pasar a través de un material semitransparente o alrededor de un borde. Esto causa reducción moderada del volumen y atenuación de frecuencias. Un jugador que habla a través de una puerta de madera delgada es un ejemplo clásico de obstrucción. La voz permanece inteligible pero suena ligeramente amortiguada.

Ambos efectos dependen de la geometría y las propiedades materiales del medio ambiente. Un principio clave es que la oclusión y la obstrucción son valores continuos en lugar de estados binarios. La cantidad de bloqueo debe escalar sin problemas en función del número, el espesor y el material de los obstáculos.

Configuración de FMOD para audio espacial

FMOD proporciona un sólido tubo de audio 3D que puede ampliarse con la lógica de oclusión/obstrucción personalizada. El primer paso es configurar correctamente su proyecto FMOD y estructura de eventos.

Creación de un evento 3D en el estudio FMOD

Abrir el estudio FMOD y crear un nuevo evento. 3D tab, asegurar que el evento se establece 3D más que 2D. Esto permite la espacialización, atenuación de distancia y efectos Doppler. Dentro del evento, añadir dos parámetros: Occlusion y Obstrucción. Estos serán impulsados por el código de juego en tiempo de ejecución. Establecer sus rangos de 0.0 (sin bloqueo) a 1.0 (bloqueo completo). En el tiempo de evento, mapee estos parámetros a volumen y automatización de filtros de baja velocidad. Para oclusión, puede configurar el volumen para caer a -40 dB y la frecuencia de baja velocidad a 400 Hz. Para obstrucción, una caída de mástil a -15 dB y baja-pass a 2000.

Integrando el FMOD con su motor de juego

Después de actualizar el proyecto FMOD Studio, los bancos deben regenerarse. En Unity, importar el paquete de integración de FMOD. En unreal, habilitar el plugin de FMOD Studio. Ambos motores proporcionan API C# o C+ para controlar FMOD en tiempo de ejecución. Asegúrese de que su oyente y todos los objetos emisores de sonido utilizan FMOD para crear y gestionar eventos.

Implementación de Raycasting para detección de obstáculos

El Raycasting es el método más común y eficiente para detectar obstáculos entre la fuente de sonido y el oyente. El enfoque básico arroja un rayo desde la posición del oyente a la posición de fuente de sonido. Si el rayo golpea un colider, existen obstáculos. Los valores de oclusión/obstrucción se derivan del número de golpes, distancias acertadas y propiedades materiales.

Aplicación básica de un solo rayo

En Unity, un simple o puede detectar si la línea de visión está bloqueada. El siguiente fragmento de C# muestra cómo establecer el parámetro de oclusión en una instancia de evento de FMOD basado en un solo golpe de rayos:

Mientras esto funciona, un solo rayo es inconfiable, puede perder los bordes o dar un resultado binario. Para un comportamiento realista, usted necesita múltiples rayos o un enfoque volumétrico.

Múltiples Raycasts para Oclusión de la Madre

En lugar de un rayo, echa varios rayos de puntos alrededor de la fuente de sonido (por ejemplo, una pequeña esfera). Cada rayo contribuye a un valor de oclusión promedio. Por ejemplo, funde 8 rayos en un patrón hemisférico alrededor de la fuente de sonido. Contar cuántos rayos están bloqueados y ponderarlos por distancia de la fuente. Esto produce un valor de oclusión fraccional entre 0 y 1.

Este método suaviza la transición a medida que la fuente de sonido se mueve detrás de los objetos. Puedes refinar aún más al no contar los rayos que golpean objetos muy finos o al usar capas de radio para ignorar la fuente misma y el colisionador del oyente.

Propiedades materiales y filtración de frecuencias

Los diferentes materiales absorben o reflejan el sonido de manera diferente. Un muro de yeso seca amortigua menos que un pilar de hormigón sólido. Para contabilizar el material, asigne materiales de física a sus colisionadores con propiedades de oclusión. En Unity, puede utilizar un script personalizado que lee un ] o ] y lo mapea a un valor. Absorción de sonido propiedad flotante. Cuando se emiten rayos, recuperar el material del colisionador del golpe y utilizar su valor de absorción para escalar el parámetro de oclusión. Para la obstrucción, también puede modular la curva de frecuencia de corte de baja pasada. FMOD se puede llamar múltiples veces por marco para actualizar ambos parámetros:

Este enfoque permite entornos dinámicos donde los materiales cambian (por ejemplo, una ruptura de la pared).

Aplicar las características incorporadas del FMOD

FMOD ofrece varios mecanismos incorporados para aplicar oclusión y obstrucción más allá de los parámetros personalizados. Utilizar correctamente los métodos es crucial.

y la bendición espacial

Cada evento 3D debe tener sus atributos 3D actualizados cada marco. Llame con las posiciones de escucha y fuente. Esto permite la espacialización nativa de FMOD, incluyendo atenuación y panificación de distancia. La oclusión y obstrucción se aplican en la parte superior de esto. Asegúrese de que la curva de atenuación de su evento se establece en algo sensible en FMOD Studio: iniciar con una curva de escala "Logaritmica" predeterminada.

Utilizando el Reverbio Ambiental de FMOD

FMOD incluye un efecto Reverbio Ambiental que puede automatizarse junto con la oclusión. Cuando un sonido está fuertemente oculto, es posible que desee que el reverbio se vuelva más prominente para simular el sonido que viene a través de una pared. En FMOD Studio, agregue un efecto Reverb al grupo de mezcladores del evento. ReverbMix. El lado del script, cuando la oclusión es alta, aumenta la mezcla del reverbio. Esto crea una ilusión auditiva convincente de sonido que viaja a través de una barrera. Por ejemplo, una explosión distante detrás de un edificio tendrá un fuerte ruido de baja gama con mucho reverbio, mientras que las explosiones directas de línea de visión son nítidas y secas.

Curvas y automatización del parámetro

En FMOD Studio, los parámetros que conduce desde el código deben ser mapeados a propiedades de audio reales. Seleccione el evento Pista (por ejemplo, el tiempo de clip de audio). Haga clic en el sobre de volumen y seleccione Agregar automatizaciónParámetroOcclusion. Ahora el volumen seguirá el valor de oclusión. Haga lo mismo para un filtro de baja velocidad (un efecto añadido a la cadena de señal de la pista). Establecer el corte de filtro en mapa de 22000 Hz (sin oclusión) hasta, digamos, 400 Hz (oclusión completa). Para la obstrucción, utilice una curva menos agresiva, tal vez sólo bajando a 2000 Hz y reduciendo el volumen por -10 dB en la mayoría.

Técnicas avanzadas

Para proyectos más grandes, la radiografía básica puede no ser suficiente. Considere estos métodos avanzados para mejorar la precisión y el rendimiento.

Oclusión volumétrica con sistemas Portal

En juegos con geometría compleja, como transiciones interiores/ordenadas, considere implementar un portal o sistema basado en células. Precomputa qué habitaciones están conectadas y tratar las puertas como portales acústicos. Cuando una fuente de sonido está detrás de un portal, el factor de oclusión se determina por el número de portales entre fuente y oyente. Esto evita el radiodifusión por marco y funciona bien para la geometría estática.

Zonas de Reverb y formas de audio

Otro enfoque es definir zonas de activación de audio con diferentes presets de reverbio. Mientras el oyente se mueve por zonas, el reverbote de la fuente de sonido cambia. Combinado con oclusión de rayos, esto produce transiciones naturales. Por ejemplo, una fuente dentro de una catedral tendrá cola de reverbio largo, mientras que una fuente exterior tendrá reverbio corto. Reverb efecto en un autobús y controla su mezcla a través de un parámetro global establecido por la zona del jugador.

Consideraciones de la ejecución

Raycasting cada marco para cada fuente de sonido puede ser caro. Optimize by:

  • Limitar los radiodifusión a los sonidos a una distancia máxima (por ejemplo, 50 metros).
  • Usando un temporizador de refrigeración (por ejemplo, recalcula cada 0,1 segundos).
  • Las solicitudes de radiodifusión de batido por .
  • Sólo aplicar oclusión a sonidos importantes (por ejemplo, enemigos, no aves ambientales).

También asegúrese de que sus parámetros de FMOD no se actualicen cada marco si el valor de oclusión no ha cambiado mucho, use una comparación de umbral.

Consejos prácticos y mejores prácticas

  • Use múltiples radiografías alrededor de la fuente de sonido para evitar bordes delgados que causan resultados binarios. Un array de rayos 5-8 proporciona un buen equilibrio.
  • Ajuste curvas de atenuación para combinar materiales ambientales. Por ejemplo, una pared de madera debe humedecer el sonido más que una cortina. Cree una mesa de miración con relación material-a-absorción.
  • Combina oclusión con efectos de reverbio para una percepción espacial mejorada. Los sonidos ocluidos con frecuencia tienen más reverbio; los sonidos directos tienen menos.
  • Pruebas en diversos entornos para calibrar parámetros para diferentes materiales y geometrías. Utilice un nivel de prueba con cubos simples y diferentes materiales de física para verificar el comportamiento.
  • Usar la actualización en vivo de FMOD para monitorear valores de parámetro en tiempo real. En Unity, conectar a través de FMOD Studio Live Update. Esto le permite ver los valores de oclusión ajustarse a medida que mueve el oyente.
  • No olvides el oyente en sí mismo. Si un oyente está bajo el agua, eso afecta todo el sonido. Implementar un modificador de oclusión global que se combina con oclusión por fuente.
  • Considere una interpolación suave para actualizaciones del parámetro oclusión. En lugar de fijar el parámetro directamente cada marco, inclinarse hacia el valor objetivo para evitar cambios abruptos.

Pruebas y ajuste en el juego

Una vez implementado, la prueba es crucial. Camina el oyente a través de varios ambientes y escucha para transiciones no naturales.

  • Oclusión bajando a cero al instante cuando la fuente está justo detrás de un pilar.
  • Demasiado filtrado de baja velocidad haciendo sonidos inaudibles.
  • Reverb no coincide con la acústica esperada.

Usar el FMOD incorporado 3D Audio Visualizer en Studio para ver posiciones de escucha y fuente. Alternativamente, puedes dibujar rayos de depuración en el motor del juego para visualizar los rayos. En Unity, usa para mostrar los rayos bloqueados vs. claros. Grabar los valores del parámetro utilizando las herramientas de perfil de FMOD. Desenrollar las curvas de automatización hasta que los jugadores de oclusión/obstrucción se sientan naturales sin convertirse en un juego de musance.

Conclusión

La aplicación de oclusión de audio ambiental y obstrucción en FMOD transforma un sonido plano en un mundo de audio vivo y reactivo. Combinando el rayo del motor del juego con la automatización y el reverbio del parámetro de FMOD, puede simular una propagación de sonido realista que responde a la geometría y los materiales.

Para más lectura, consulte al funcionario Documentación sobre el FMOD, el Física de unidad.Raycast referencia, y Guía de Trace de Línea de Motores No Reales. Recursos adicionales sobre la oclusión de audio incluyen Artículo de desarrollador de juegos sobre oclusión/obstrucción y a Papel blanco oclusión en el fondo (Las técnicas son transferibles).