Einführung in Environmental Audio Occlusion and Obstruction

Game-Audio ist eine kritische Komponente des Eintauchens, und realistische Klangausbreitung kann das Gefühl der Präsenz eines Spielers erzeugen oder stören. Umgebungs-Audio-Occlusion und -Hindernis simulieren, wie sich Sound verhält, wenn er auf Hindernisse trifft, was dem Gameplay Tiefe und räumliches Bewusstsein verleiht. In FMOD erfordert die Umsetzung dieser Effekte eine Kombination aus Engine-Level-Raycasting und den eingebauten räumlichen Audiofunktionen von FMOD. Dieser erweiterte Leitfaden führt durch die Theorie, Einrichtung und praktische Umsetzung von Okklusion und Obstruktion mit FMOD und bietet umsetzbare Schritte für Unity- und Unreal Engine-Workflows.

Richtig ausgeführt, ermöglichen Okklusion und Behinderung den Spielern, Feinde durch Wände zu lokalisieren, die Größe eines Raums zu messen und sich mit der Spielwelt verbunden zu fühlen. Ohne sie fühlt sich Audio flach und getrennt an. Am Ende dieses Artikels haben Sie eine produktionsbereite Pipeline, um Ihrem FMOD-basierten Spiel eine Umgebungs-Audiofilterung hinzuzufügen.

Verständnis von Occlusion vs. Obstruktion

Bevor wir uns mit der Implementierung befassen, ist es wichtig, zwischen Okklusion und Obstruktion zu unterscheiden, da sie den Klang unterschiedlich beeinflussen und eine separate Handhabung in Code und FMOD Studio erfordern.

Ausschluss

Ein Verschluss tritt auf, wenn ein fester Gegenstand die direkte Sichtlinie zwischen einer Schallquelle und dem Hörer vollständig blockiert. Der Schall muss sich um den Gegenstand herum beugen oder durch ihn hindurchgehen, was zu einer signifikanten Volumenreduzierung und einem Tiefpassfiltereffekt führt. Beispielsweise klingt ein Schuss, der in einem benachbarten Betonraum abgefeuert wird, gedämpft und entfernt. In FMOD wird der Verschluss typischerweise durch Dämpfung des Volumens modelliert und ein Tiefpassfilter verwendet, um hohe Frequenzen zu entfernen.

Obstruktion

Die Blockierung beschreibt eine teilweise Blockierung des Schallpfades. Der direkte Pfad ist nicht vollständig abgeschnitten, aber der Schall muss durch ein halbtransparentes Material oder um eine Kante herum gehen. Dies verursacht eine moderate Lautstärkereduzierung und Frequenzdämpfung. Ein Spieler, der durch eine dünne Holztür spricht, ist ein klassisches Beispiel für eine Blockierung. Die Stimme bleibt verständlich, klingt jedoch leicht gedämpft.

In der Praxis verwendet das Hindernis oft einen milderen Tiefpassfilter und eine weniger extreme Lautstärkereduktion als der Okklusion.

Beide Effekte beruhen auf der Geometrie und den Materialeigenschaften der Umgebung. Ein Schlüsselprinzip ist, dass Okklusion und Obstruktion nicht binäre Zustände sind, sondern kontinuierliche Werte. Die Menge der Blockierung sollte reibungslos auf der Grundlage der Anzahl, Dicke und des Materials der Hindernisse skaliert werden.

Einrichten von FMOD für Spatial Audio

FMOD bietet eine robuste 3D-Audiopipeline, die mit einer benutzerdefinierten Okklusions-/Obstruktionslogik erweitert werden kann.

Erstellen eines 3D-Events in FMOD Studio

Öffnen Sie FMOD Studio und erstellen Sie eine neue Veranstaltung. 3D tab, stellen Sie sicher, dass das Ereignis auf 3D statt 2D. Dies ermöglicht die Verräumlichung, Distanzdämpfung und Dopplereffekte. Ausschluss und Obstruktion. Diese werden zur Laufzeit durch den Spielcode gesteuert. Legen Sie ihre Bereiche von 0,0 (keine Blockierung) bis 1,0 (vollständige Blockierung) fest.

In der Ereigniszeitleiste weisen Sie diese Parameter auf Lautstärke und Tiefpassfilterautomatisierung ab. Für die Okklusion können Sie die Lautstärke auf -40 dB und die Tiefpassfrequenz auf 400 Hz senken. Für die Blockierung funktioniert ein milderer Abfall auf -15 dB und Tiefpass auf 2000 Hz gut.

Integrieren von FMOD mit Ihrer Game Engine

Nach dem Aktualisieren des FMOD Studio-Projekts müssen Bank Builds regeneriert werden. In Unity importieren Sie das FMOD Unity Integration-Paket. In Unreal aktivieren Sie das FMOD Studio Plugin. Beide Engines bieten C#- oder C++-APIs zur Steuerung von FMOD zur Laufzeit. Stellen Sie sicher, dass Ihr Zuhörer und alle schallemittierenden Objekte FMODs verwenden, um Ereignisse zu erstellen und zu verwalten.

Unity-Entwickler können verwenden; Unreal-Entwickler verwenden oder rufen direkt zu auf.

Implementierung von Raycasting für die Hinderniserkennung

Die meisten Hindernisse zwischen Schallquelle und Hörer werden am häufigsten und effizientsten erkannt. Der grundlegende Ansatz führt einen Strahl von der Hörerposition in die Schallquellenposition. Wenn der Strahl auf einen Beschleuniger trifft, gibt es Hindernisse. Die Okklusions-/Hinderniswerte werden aus der Anzahl der Treffer, der Trefferabstände und der Materialeigenschaften abgeleitet.

Grundlegende Single-Ray-Implementierung

In Unity kann ein einfacher oder erkennen, ob die Sichtlinie blockiert ist.

Während dies funktioniert, ist ein einzelner Strahl unzuverlässig - er kann Kanten verpassen oder ein binäres Ergebnis liefern. Für ein realistisches Verhalten benötigen Sie mehrere Strahlen oder einen volumetrischen Ansatz.

Mehrere Raycasts für Smoother Occlusion

Anstelle eines Strahls mehrere Strahlen von Punkten um die Schallquelle werfen (z. B. eine kleine Kugel). Jeder Strahl trägt zu einem durchschnittlichen Okklusionswert bei. Zum Beispiel 8 Strahlen in einem halbkugelförmigen Muster um die Schallquelle werfen. Zählen Sie, wie viele Strahlen blockiert sind, und gewichten Sie sie nach Entfernung von der Quelle. Dies ergibt einen fraktionierten Okklusionswert zwischen 0 und 1.

Diese Methode glättet den Übergang, wenn sich die Schallquelle hinter Objekten bewegt. Sie können weiter verfeinern, indem Sie Strahlen, die auf sehr dünne Objekte treffen, nicht zählen oder indem Sie Raycast-Schichten verwenden, um die Quelle selbst und den Zuhörer-Collider zu ignorieren.

Materialeigenschaften und Frequenzfilterung

Verschiedene Materialien absorbieren oder reflektieren Schall unterschiedlich. Eine Trockenmauerwand dämpft weniger als eine feste Betonsäule. Um Material zu berücksichtigen, weisen Sie Ihren Beschleunigern Physikmaterialien mit Okklusionseigenschaften zu. In Unity können Sie ein benutzerdefiniertes Skript verwenden, das ein oder liest und es einem Wert zuordnet. Zum Beispiel könnte ein ein Schallabsorption Float-Eigenschaft.

Beim Raycasting das Material des Trefferbeschleunigers abrufen und seinen Absorptionswert verwenden, um den Okklusionsparameter zu skalieren. Bei Behinderung können Sie auch die Tiefpass-Grenzfrequenzkurve modulieren. FMODs kann mehrmals pro Frame aufgerufen werden, um beide Parameter zu aktualisieren:

Dieser Ansatz ermöglicht dynamische Umgebungen, in denen sich Materialien verändern (z. B. ein Wandbruch).

Anwenden der eingebauten Funktionen von FMOD

FMOD bietet mehrere eingebaute Mechanismen, um Okklusion und Obstruktion über die benutzerdefinierten Parameter hinaus anzuwenden.

und Spatial Blending

Jedes 3D-Ereignis muss seine 3D-Attribute in jedem Frame aktualisieren. Aufrufen mit den Listener- und Quellpositionen. Dies ermöglicht die native Verräumlichung von FMOD, einschließlich Distanzdämpfung und Schwenken. Occlusion und Obstruktion werden darüber hinaus angewendet. Stellen Sie sicher, dass die Dämpfungskurve Ihres Ereignisses auf etwas Sensibles in FMOD Studio eingestellt ist - beginnen Sie mit einer standardmäßigen “Logarithmischen” Kurve und passen Sie sie basierend auf Ihrer Spielskala an.

Verwendung von FMODs Environmental Reverb

Wenn ein Ton stark verdeckt ist, möchten Sie vielleicht, dass das Reverb stärker hervortritt, um den Klang durch eine Wand zu simulieren. ReverbMixWenn die Okklusion hoch ist, erhöht sich die Reverb-Mischung. Dies erzeugt eine überzeugende akustische Illusion von Schall, der durch eine Barriere reist. Zum Beispiel wird eine entfernte Explosion hinter einem Gebäude einen starken Low-End-Thud mit viel Reverb haben, während direkte Line-of-Sight-Explosionen scharf und trocken sind.

Parameterkurven und Automatisierung

Zurück in FMOD Studio müssen die Parameter, die Sie vom Code aus steuern, den tatsächlichen Audioeigenschaften zugeordnet werden. Gleisketten (z. B. die Audio-Clip-Timeline) Klicken Sie auf den Volume-Umschlag und wählen Sie Hinzufügen von Automatisierung → Parameter → Ausschluss. Jetzt folgt die Lautstärke dem Okklusionswert. Machen Sie dasselbe mit einem Tiefpassfilter (ein Effekt, der der Signalkette der Spur hinzugefügt wird). Stellen Sie den Filter-Cutoff so ein, dass er von 22000 Hz (keine Okklusion) auf beispielsweise 400 Hz (vollständige Okklusion) abgebildet wird.

Verwenden Sie zur Blockierung eine weniger aggressive Kurve, die vielleicht nur auf 2000 Hz heruntergeht und die Lautstärke um höchstens -10 dB reduziert. Diese Kurven können durch Rechtsklick auf die Automatisierungszeile und Hinzufügen von Punkten bearbeitet werden.

Fortgeschrittene Techniken

Bei größeren Projekten reicht das grundlegende Raycasting möglicherweise nicht aus, um die Genauigkeit und Leistung zu verbessern.

Volumetrische Occlusion mit Portalsystemen

In Spielen mit komplexer Geometrie, wie z. B. Übergängen in Innen- und Außenräumen, sollten Sie die Implementierung eines Portals oder eines zellbasierten Systems in Betracht ziehen. Berechnen Sie, welche Räume miteinander verbunden sind, und behandeln Sie Türöffnungen als akustische Portale. Wenn sich eine Schallquelle hinter einem Portal befindet, wird der Okklusionsfaktor durch die Anzahl der Portale zwischen Quelle und Zuhörer bestimmt. Dies vermeidet Raycasting pro Frame und funktioniert gut für statische Geometrie. FMODs gilt immer noch, aber der Okklusionswert wird aus einem Raumgraphen abgeleitet.

Reverb Zonen und Audio-Formen

Ein anderer Ansatz ist die Definition von Audio-Triggerzonen mit unterschiedlichen Reverb-Voreinstellungen. Wenn sich der Hörer durch Zonen bewegt, ändert sich der Reverb der Schallquelle. In Kombination mit Raycast-Occlusion erzeugt dies natürliche Übergänge. Zum Beispiel hat eine Quelle innerhalb einer Kathedrale einen langen Reverb-Schwanz, während eine Quelle außerhalb einen kurzen Reverb hat. Verwenden Sie FMODs Reverb Einfluss auf einen Bus und Kontrolle seiner Mischung über einen globalen Parameter durch die Zone des Spielers eingestellt.

Leistungsbetrachtungen

Jedes Bild für jede Schallquelle zu übertragen kann teuer sein.

  • Begrenzung von Raycasts auf Geräusche innerhalb einer maximalen Entfernung (z. B. 50 Meter).
  • Mit einem Cooldown-Timer (z. B. alle 0,1 Sekunden neu berechnen).
  • Die Anfragen werden über gestellt.
  • Nur Anwendung Okklusion auf wichtige Geräusche (z. B. Feinde, nicht Umgebung Vögel).

Stellen Sie außerdem sicher, dass Ihre FMOD-Parameter nicht in jedem Frame aktualisiert werden, wenn sich der Okklusionswert nicht wesentlich geändert hat - verwenden Sie einen Schwellenwertvergleich.

Praktische Tipps und Best Practices

  • Verwenden Sie mehrere Raycasts um die Schallquelle herum Ein 5-8-Strahlenfeld bietet eine gute Balance.
  • Anpassung der Dämpfungskurven an Umweltmaterialien. Zum Beispiel sollte eine Holzwand den Schall mehr als einen Vorhang dämpfen. Erstellen Sie einen Lookup-Tisch mit Material-Absorptionsverhältnissen.
  • Kombinieren Sie Okklusion mit Reverb-Effekten für eine verbesserte räumliche Wahrnehmung. Stark verschlossene Geräusche haben oft mehr Reverb; direkte Geräusche haben weniger.
  • Test in verschiedenen Umgebungen Zur Kalibrierung von Parametern für verschiedene Materialien und Geometrien, Verwenden Sie eine Testebene mit einfachen Würfeln und verschiedenen physikalischen Materialien, um das Verhalten zu überprüfen.
  • Verwenden Sie das Live-Update von FMOD In Unity, verbinden Sie sich über FMOD Studio Live Update. Dies ermöglicht Ihnen, die Okklusionswerte anzupassen, während Sie den Zuhörer bewegen.
  • Vergiss nicht den Zuhörer selbst. Wenn ein Zuhörer unter Wasser ist, beeinflusst das alle Geräusche. Implementieren Sie einen globalen Okklusionsmodifikator, der sich mit dem Okklusionseffekt pro Quelle kombiniert.
  • Betrachten Sie eine glatte Interpolation Anstatt den Parameter direkt in jedem Frame zu setzen, sollten Sie auf den Zielwert zusteuern, um abrupte Änderungen zu vermeiden.

Testen und Tuning im Spiel

Wenn es einmal umgesetzt ist, ist das Testen entscheidend. Gehen Sie mit dem Zuhörer durch verschiedene Umgebungen und hören Sie auf unnatürliche Übergänge.

  • Der Verschluss fällt sofort auf Null, wenn sich die Quelle direkt hinter einer Säule befindet.
  • Zu viel Tiefpassfilterung macht unhörbar.
  • Reverb nicht mit der erwarteten Akustik übereinstimmt.

Verwenden Sie FMODs eingebautes 3D Audio Visualizer In Studio, um Hörer- und Quellpositionen zu sehen. Alternativ können Sie Debug-Strahlen in der Spiel-Engine zeichnen, um Raycasts zu visualisieren. In Unity verwenden Sie , um blockierte vs. klare Strahlen zu zeigen. Nehmen Sie die Parameterwerte mit den Profiling-Tools von FMOD auf. Optimieren Sie die Automatisierungskurven, bis sich Okklusion / Obstruktion natürlich anfühlt, ohne zu einem Gameplay-Problem zu werden (z. B. sollten Spieler immer noch Schritte durch Wände hören, nur gedämpft).

Schlussfolgerung

Durch die Implementierung von Umgebungs-Audio-Occlusion und -Verhinderung in FMOD wird eine flache Klanglandschaft in eine lebendige, reaktive Audiowelt verwandelt. Durch die Kombination von Game Engine Raycasting mit der Parameterautomatisierung und dem Reverb von FMOD können Sie eine realistische Schallausbreitung simulieren, die auf Geometrie und Materialien reagiert. Beginnen Sie mit einem einfachen Einzelstrahl-Setup, erweitern Sie dann auf mehrere Strahlen und materialbewusste Filterung. Verwenden Sie die fortschrittlichen Techniken von Portalsystemen oder Reverbzonen für größere, komplexere Umgebungen. Denken Sie daran, die Parameterkurven in FMOD Studio erschöpfend zu testen und abzustimmen.

Das Ergebnis wird ein immersives Spiel sein, in dem die Spieler den Raum um sie herum wirklich "hören" können.

Für weitere Lektüre konsultieren Sie den Beamten FMOD-Dokumentation, Unity Physics.Raycast Referenz und die Unwirkliche Motorlinie SpurführungZusätzliche Ressourcen für Audio-Occlusion umfassen die Game Developer Artikel über Okklusion / Obstruktion und a Weißes Papier mit Wwise-Occlusion (Techniken sind übertragbar).