Audio streams

Einführung

Wie Sie vielleicht bereits in Audiobusse gelesen haben, wird der Ton über einen AudioStreamPlayer-Node an jeden Bus gesendet. Es gibt verschiedene Arten von AudioStreamPlayern. Jeder lädt einen AudioStream und spielt ihn ab.

AudioStream

Ein Audiostrom ist ein abstraktes Objekt, das Ton ausgibt. Der Ton kann von vielen Stellen kommen, wird aber meistens aus dem Dateisystem geladen. Audiodateien können als AudioStreams geladen und in einem AudioStreamPlayer platziert werden. Informationen über unterstützte Formate und Unterschiede finden Sie in Audio-Samples importieren.

Es gibt noch andere Typen von AudioStreams, wie z. B. AudioStreamRandomPitch. Dieser nimmt bei jeder Wiedergabe eine zufällige Anpassung der Tonhöhe des Sounds vor. Dies kann hilfreich sein, um Sounds zu variieren, die häufig wiedergegeben werden.

AudioStreamPlayer

../../_images/audio_stream_player.png

Dies ist der Standard-Stream-Player ohne Position, der zu jedem Bus gespielt werden kann. In 5.1-Sound-Setups kann Audio an Stereomix oder Frontlautsprecher gesendet werden.

AudioStreamPlayer2D

../../_images/audio_stream_2d.png

Dies ist eine Variante von AudioStreamPlayer, gibt jedoch Ton in einer 2D Positionsumgebung aus. Wenn Sie sich links vom Bildschirm befinden, wird nach links geschwenkt, in der Nähe der rechten Seite dementsprechend nach rechts.

Bemerkung

Area2Ds können verwendet werden, um Sound von allen AudioStreamPlayer2Ds die sie enthalten, auf bestimmte Busse umzuleiten. Auf diese Weise können Busse mit unterschiedlichen Hall- oder Klangqualitäten erstellt werden, um die Aktionen in bestimmten Teilen Ihrer Spielwelt zu bewältigen.

../../_images/audio_stream_2d_area.png

AudioStreamPlayer3D

../../_images/audio_stream_3d.png

Dies ist eine Variante von AudioStreamPlayer, gibt jedoch Ton in einer 3D-Positionsumgebung aus. Abhängig von der Position des Spielers relativ zum Bildschirm kann der Ton je nach gewähltem Audio-Setup in Stereo, 5.1 oder 7.1 positioniert werden.

Ähnlich wie bei AudioStreamPlayer2D kann ein Bereich den Ton auf einen Audiobus umleiten.

../../_images/audio_stream_3d_area.png

Im Gegensatz zu 2D bietet die 3D Version von AudioStreamPlayer einige erweiterte Optionen:

Reverb Busse (Hall-Effekt)

Godot ermöglicht 3D Audiostreams, die in einen bestimmten Bereichs-Node eintreten, um unverarbeitetes (dry) und verarbeitetes (wet) Audio an separate Busse zu senden. Dies ist nützlich, wenn Sie mehrere Hallkonfigurationen für verschiedene Raumtypen haben. Dies erfolgt durch Aktivieren dieser Art von Hall im Abschnitt Reverb Bus der Eigenschaften des Bereichs:

../../_images/audio_stream_reverb_bus.png

Gleichzeitig wird ein spezielles Buslayout erstellt, in dem jeder Bereich die Hall-Informationen von jedem Bereich empfängt. In jedem Reverb-Bus muss ein Hall-Effekt erstellt und konfiguriert werden, um das Setup für den gewünschten Effekt abzuschließen:

../../_images/audio_stream_reverb_bus2.png

Der Abschnitt Reverb Bus des Bereichs enthält auch einen Parameter mit dem Namen Uniformity. Einige Arten von Räumen prallen stärker ab als andere (wie ein Lagerhaus), sodass der Nachhall fast gleichmäßig im gesamten Raum zu hören ist, auch wenn die Quelle möglicherweise weit entfernt ist. Das Herumspielen mit diesem Parameter kann diesen Effekt simulieren.

Dopplereffekt

Wenn sich die Relativgeschwindigkeit zwischen einem Sender und einem Hörer ändert, wird dies als Zunahme oder Abnahme der Tonhöhe des emittierten Tons wahrgenommen. Godot kann Geschwindigkeitsänderungen in dem AudioStreamPlayer3D Node und Camera Nodeverfolgen. Beide Nodes haben diese Eigenschaft, die manuell aktiviert werden muss:

../../_images/audio_stream_doppler.png

Aktivieren Sie es abhängig davon wie Objekte verschoben werden: verwenden Sie Leerlauf für Objekte, die mit _process verschoben wurden, oder Physik für Objekte, die mit _physics_process verschoben wurden. Die Verfolgung erfolgt automatisch.