オーディオストリーム

はじめに

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

AudioStream

オーディオ ストリームは、サウンドを出力する抽象的なオブジェクトです。サウンド(のデータ)は多くの場所からやってくることができますが、最も一般的にはファイルシステムから読み込まれます。WAV (.wav) や Ogg Vorbis (.ogg) などのオーディオファイルは、AudioStreamとして読み込んで、AudioStreamPlayer内に配置できます。

以下は、ユースケースに最適なファイルを選択するのに役立つ2つのファイルタイプの比較です。

  • WAVファイルは非常に大きくなりますが、再生にはCPUパワーをほとんど使用しません。パフォーマンスにほとんど影響を与えることなく、それを何百も同時に再生できます。通常、この形式は短い効果音に最適です。
  • Ogg Vorbisファイルははるかに小さくなりますが、再生にはかなり多くのCPUパワーを使用するため、一度に再生できる数はごくわずかです(特にモバイル)。この形式は、音楽、長い効果音シーケンス、比較的低いビットレートの音声に適しています。

Ogg Vorbisファイルにはループ情報が含まれていないことに注意してください。 Ogg Vorbisファイルのループが必要な場合は、インポートオプションを使用して設定する必要があります。

../../_images/audio_stream_import1.png

AudioStreamPlayerには、AudioStreamRandomPitchなど、他の種類があります。これは、再生されるたびにサウンドのピッチをランダムに調整します。これは、頻繁に再生されるサウンドにバリエーションを追加するのに役立ちます。

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 を使用します。追跡は自動的に行われます。