オーディオストリーム

はじめに

すでに オーディオバス を読んでいるかもしれませんが、音声はAudioStreamPlayerノードを介して各バスに送信されます。 AudioStreamPlayerにはさまざまな種類があります。それぞれがAudioStreamをロードして再生します。

AudioStream

An audio stream is an abstract object that emits sound. The sound can come from many places, but is most commonly loaded from the filesystem. Audio files can be loaded as AudioStreams and placed inside an AudioStreamPlayer. You can find information on supported formats and differences in オーディオサンプルのインポート.

There are other types of AudioStreams, such as AudioStreamRandomPitch. This one makes a random adjustment to the sound's pitch every time it's played back. This can be helpful for adding variation to sounds that are played back often.

AudioStreamPlayer

これは標準の、位置を持たないストリームプレーヤーです。どのバスでもプレイできます。5.1サウンド設定では、オーディオをステレオミックスまたはフロントスピーカーに送信できます。

AudioStreamPlayer2D

これはAudioStreamPlayerのバリアントですが、2Dの位置環境で音を発します。画面の左に近づくと、パンが左に移動します。右側に近づくと、右側に移動します。

注釈

Area2Dを使用すると、その領域に含まれるAudioStreamPlayer2Dから、特定のバスにサウンドを転送できます。これにより、さまざまなリバーブまたは音質のバスを作成して、ゲームワールドの特定の部分で発生するアクションを処理できます。

../../_images/audio_stream_2d_area.png

AudioStreamPlayer3D

これはAudioStreamPlayerのバリアントですが、3Dの位置環境で音を発します。画面に対するプレーヤーの位置や、選択したオーディオ設定に応じて、5.1、7.1のステレオでサウンドを配置できます。

AudioStreamPlayer2Dと同様に、エリアはサウンドをオーディオ バスに転送できます。

../../_images/audio_stream_3d_area.png

2Dとは異なり、AudioStreamPlayerの3Dバージョンには、さらに高度なオプションがいくつかあります:

Reverb bus

Godotでは、特定のエリアノードに入る3Dオーディオストリームを使用して、ドライオーディオとウェットオーディオを別々のバスに送信できます。これは、部屋の種類ごとに複数のリバーブ構成がある場合に便利です。これは、エリアのプロパティの Reverb Bus セクションでこのタイプのリバーブを有効にすることで実行されます。

../../_images/audio_stream_reverb_bus.png

同時に、各エリアが各エリアからリバーブ情報を受け取る特別なバスレイアウトが作成されます。目的のエフェクトのセットアップを完了するには、各リバーブバスでリバーブエフェクトを作成および構成する必要があります:

../../_images/audio_stream_reverb_bus2.png

エリアの Reverb Bus セクションには、Uniformity という名前のパラメーターもあります。一部のタイプの部屋(倉庫など)は他の部屋よりもバウンド音が多いため、音源が遠く離れていても、部屋全体にほぼ均一に残響が聞こえます。このパラメーターをいじって、その効果をシミュレートできます。

Doppler

エミッターとリスナー間の相対速度が変化すると、これは放出された音のピッチの増加または減少として認識されます。 Godotは、AudioStreamPlayer3DおよびCameraノードの速度の変化を追跡できます。両方のノードにはこのプロパティがあり、手動で有効にする必要があります。

../../_images/audio_stream_doppler.png

オブジェクトの移動方法に応じて設定して有効にします: _process を使用して移動するオブジェクトには Idle を使用し、_physics_process を使用して移動するオブジェクトには Physics を使用します。追跡は自動的に行われます。