Work in progress

The content of this page was not yet updated for Godot 4.5 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.

オーディオストリーム

はじめに

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

AudioStream

オーディオ ストリームは、サウンドを出力する抽象的なオブジェクトです。サウンド(のデータ)は多くの場所からやってくる可能性がありますが、最も一般的にはファイルシステムから読み込まれます。オーディオファイルはAudioStreamとして読み込んで、AudioStreamPlayer内に配置できます。対応しているフォーマットとそれぞれの違いに関しては オーディオのインポート を参照してください。

他のAudioStreamの種類には、 たとえば AudioStreamRandomizer があります。これは、再生されるたびにStreamのリストからランダムなAudioStreamを選択し、ピッチと音量をランダムに調整します。これは、頻繁に再生されるサウンドにバリエーションを加えるのに役立ちます。

AudioStreamPlayer

../../_images/audio_stream_player.webp

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

Playback Type は実験的な設定であり、Godotの将来のバージョンでは変更される可能性があります。これはWebエクスポートでWeb Audio-APIベースのサンプルを使用するために存在します。これはほとんどのプラットフォームのような、全てのサウンドをブラウザにストリームするのと異なる方法です。これによってシングルスレッドのWebエクスポートでオーディオが不明瞭になることを防ぎます。デフォルトでは、Webプラットフォームのみがサンプルを使います。この設定を変えることは明確な理由がなければ非推奨です。プロジェクト設定の オーディオ > 一般 で、Webとその他プラットフォームのデフォルトPlayback Typeを変更できます(設定を見るには高度な設定をオンにする必要があります)。

AudioStreamPlayer2D

../../_images/audio_stream_2d.webp

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

注釈

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

../../_images/audio_stream_2d_area.webp

AudioStreamPlayer3D

../../_images/audio_stream_3d.webp

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

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

../../_images/audio_stream_3d_area.webp

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

Reverb bus

警告

AudioStreamPlayerの再生モードがデフォルトの Sample に設定されている場合、この機能はWebプラットフォームではサポートされません。この機能は再生モードが Stream に設定されている場合にのみ機能しますが、スレッドが有効になっていない場合はレイテンシが増加します。

詳細については、 Audio playback in the Exporting for the Web documentation を参照してください。

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

../../_images/audio_stream_reverb_bus.webp

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

../../_images/audio_stream_reverb_bus2.webp

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

ドップラー

警告

AudioStreamPlayerの再生モードがデフォルトの Sample に設定されている場合、この機能はWebプラットフォームではサポートされません。この機能は再生モードが Stream に設定されている場合にのみ機能しますが、スレッドが有効になっていない場合はレイテンシが増加します。

詳細については、 Audio playback in the Exporting for the Web documentation を参照してください。

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

../../_images/audio_stream_doppler.webp

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