Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

Audiostreams

Einführung

Wie Sie vielleicht bereits in Audio-Busse 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 Audiostream ist ein abstraktes Objekt, das Ton ausgibt. Der Ton kann von vielen Orten 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 standardmäßige, nicht-positionierbare Stream-Player. Er kann auf jedem Bus spielen. In 5.1-Sound-Setups kann er Audio an den Stereomix oder die Frontlautsprecher senden.

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, stellt sich das Panning nach links, 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

Hierbei handelt es sich um eine Variante des AudioStreamPlayers, die jedoch den Ton in einer 3D-Positionsumgebung wiedergibt. Je nach Position des Players im Verhältnis zum Bildschirm kann er den Ton in Stereo, 5.1 oder 7.1 ausgeben, je nach gewähltem Audio-Setup.

Ä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

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

../../_images/audio_stream_reverb_bus.png

Gleichzeitig wird ein spezielles Buslayout erstellt, in dem jede Area die Reverb-Informationen von jeder Area empfängt. In jedem Reverb-Bus muss ein Reverb-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 der Area enthält auch einen Parameter mit dem Namen Gleichmäßigkeit. Einige Arten von Räumen lassen Klänge stärker abprallen 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-Node verfolgen. Beide Nodes haben diese Property , die manuell aktiviert werden muss:

../../_images/audio_stream_doppler.png

Aktivieren Sie sie 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. Das Tracking erfolgt automatisch.