サウンドスケープ は、環境音をプロシージャルに生成し、プレイヤーがワールドを動き回るのに合わせてストリーミングされます。セットアップすると、プラグインがこれらのサウンド システムを自律的に管理し、作成するため、手動で作成する必要がなくなります。
このガイドでは、独自の基本的なサウンドスケープを設定する方法を説明します。
前提条件
- Soundscape プラグインはデフォルトで無効になっています。このプラグインを有効にするには、[Edit (編集)] > [Plugins (プラグイン)] を選択して、[Plugin (プラグイン)] パネルを開き、検索バーでこのプラグインを見つけて、該当するチェックボックスをオンにします。
- 「サード パーソン」テンプレート などの、移動をサポートする プレイヤー キャラクター を含むプロジェクト。
- また、このガイドでは、プロジェクトに Sound Wave アセットも必要です。音声波形の作成方法については、「オーディオ ファイルをインポートする」を参照してください。
- (オプション) サウンドスケープは 3D 空間でサウンドを構成するため、Sound Wave に [Attenuation Settings (減衰設定)] を使用すると、より適切に空間化された結果が得られます。空間化の詳細については、「空間化と音量減衰」を参照してください。
1 - サウンドスケープ ステート データ テーブルを作成する
サウンドスケープは ゲームプレイ タグ をステートとして使用します。これらのステートは、ブループリントまたは C++ を使用して制御することができます。また、サウンドスケープは設定した条件で自動的に反応します。
-
[Add Content (コンテンツを追加)] をクリックするか、コンテンツ ブラウザ の空白の領域を右クリックし、[Miscellaneous (その他)] > [Data Table (データ テーブル)] を選択して、Data Table アセットを作成します。[Pick Row Structure (行構造を選択)] ウィンドウが表示されます。
-
ドロップダウンから GameplayTagTableRow を選択します。
- [OK] をクリックします。
- データ テーブルの名前に「SoundscapeStates」と入力します。
-
新しい Data Table アセットを右クリックし、コンテキスト メニューから [Edit… (編集…)] を選択します。新しい [Data Table Editor (データ テーブル エディタ)] ウィンドウが表示されます。
- [Add (追加)] をクリックし、新しいゲームプレイ タグを作成します
- [Row Editor (行エディタ)] パネルの [Tag (タグ)] を「Soundscape.Active」に変更します。
- データ テーブルを保存します。
2 - プロジェクト設定にデータ テーブルを追加する
エンジンに認識させるために、[Project Settings (プロジェクト設定)] でゲームプレイ タグを中央のタグ辞書に追加する必要があります。ゲームプレイ タグの詳細については、「ゲームプレイ タグ」を参照してください。
- [Edit (編集)] > [Project Settings... (プロジェクト設定...)] を選択すると、[Project Settings] が開きます。
- パネルの左側で、[Project (プロジェクト)] の見出しの下にある [GameplayTags] をクリックします。
- [Gameplay Tag Table List (ゲームプレイ タグ テーブル リスト)] で [Add Element (要素を追加)] をクリックします。
-
[Index 0] ドロップダウンをクリックして、前に作成した SoundscapeStates データ テーブルを選択します。これで [Gameplay Tag List (ゲームプレイ タグ リスト)] に Soundscape.Active ステートが表示されます。
3 - サウンドスケープ パレットおよびカラーを作成する
サウンドスケープ システムは、2 種類のアセット タイプ、パレット と カラー によって制御されます。サウンドスケープ カラーには、Sound アセットの参照と、サウンドの再生方法を制御する動作のプロパティが含まれています。[Soundscape Palette (サウンドスケープ パレット)] には、カラーの参照と、パレットがアクティブになるタイミングを制御する再生条件が含まれています。
- [Add Content (コンテンツを追加)] をクリックするか、コンテンツ ブラウザ の空白の領域を右クリックし、[Audio (オーディオ)] > [Soundscape (サウンドスケープ)] > [Soundscape Palette] を選択して、Soundscape Palette アセットを作成します。
- パレットに希望の名前を入力します。通常、この名前はパレットを有効にする条件を反映させる必要があります。
- [Add Content] をクリックするか、コンテンツ ブラウザ の空白の領域を右クリックし、[Audio] > [Soundscape] > [Soundscape Color] を選択して、Soundscape Color アセットを作成します。
- カラーに希望の名前を入力します。通常、この名前はカラーが再生するサウンドの内容を反映している必要があります。
4 - プロジェクト設定にパレットを追加する
エンジンに認識させるために、[Project Settings (プロジェクト設定)] の [Soundscape Palette Collection (サウンドスケープ パレット コレクション)] に [Soundscape Palettes] を追加する必要があります。
- [Edit (編集)] > [Project Settings... (プロジェクト設定...)] を選択すると、[Project Settings] が開きます。
- パネルの左側で、Game の見出しの下にある [Soundscape] をクリックします。
- [Soundscape Palette Collection] で [Add Element] をクリックします。
-
ドロップダウンをクリックして、前に作成したサウンドスケープ パレットを選択します。
5 - パレットをセットアップする
パレットがコレクションに登録されましたが、引き続き設定が必要です。
- コンテンツ ブラウザ で Soundscape Palette をダブルクリックして、その [Details (詳細)] パネルを開きます。
- [Soundscape Palette Playback Conditions (サウンドスケープ パレット再生条件)] の横にある [Edit… (編集…) をクリックします。新しい [Tag Editor (タグ エディタ)] ウィンドウが表示されます。
- [Root Expression (ルート式)] ドロップダウンをクリックし、[All Tags Match (すべてのタグの一致)] を選択します。新しい タグ のエントリが表示されます。
- [Tags (タグ)] ドロップダウンをクリックし、Soundscape.Active を選択します。
-
[Tag Editor (タグ エディタ)] ウィンドウの左上にある [Save and Close (保存して閉じる)] をクリックします。
- [Colors (カラー)] で [Add Element] をクリックします。
- [Index 0] の左にある矢印をクリックして、そのセクションを展開します。
- [Soundscape Color (サウンドスケープ カラー)] ドロップダウンをクリックし、[Index 0] に前に作成したサウンドスケープ パレットを選択します。
-
サウンドスケープ パレットを保存します。
6 - カラーをセットアップする
カラーがパレットに表示されたので、カラーにサウンドと動作を追加します。
- コンテンツ ブラウザ で Soundscape Color をダブルクリックして、その [Details] パネルを開きます。
-
[Soundscape] > [Color (カラー)] > [Sound (サウンド)] のドロップダウンを選択し、再生したい Sound Wave アセットを選択します。
- [Modulation Behavior (モジュレーション動作)] > [Randomize Pitch (ピッチをランダム化)] チェックボックスを有効にします。これにより、再生するたびに音のピッチがランダム化されます。
- [Spawn Behavior (スポーン動作)] > [Continuously Respawn (継続してリスポーン)] チェックボックスを有効にします。これにより、サウンドが継続的にスポーンされます。
- [Spawn Behavior] > [Max Spawn Distance (最大スポーン距離)] に「50.0」を入力します。これにより、よりリスナーに近い位置でサウンドがスポーンされます。
-
サウンドスケープ カラーを保存します。
7 - トリガー ボリュームを配置する
パレットの条件を満たすと、カラー内のサウンドが再生されます。GameplayTag の Soundscape.Active が設定されている場合、その条件は満たされます。ブループリントまたは C++ を使用することで、思いどおりにステートを設定できます。ただし、このガイドでは レベル ブループリント と トリガー ボリューム を使用して、サウンドスケープを再生するレベルの領域を定義します。
-
[Place Actors (アクタの配置)] パネルを使用するか、レベル エディタのツールバー で [Quick Add (クイック追加)] をクリックし、[Volumes (ボリューム)] > [Trigger Volume (トリガー ボリューム)] を選択して、レベルにトリガー ボリュームを配置します。
-
キャラクターがトリガー ボリュームに入ったり、出たりできるように、レベル内のトリガー ボリュームの位置、サイズ、形状を調整します。
8 - ブループリントをセットアップする
- トリガー ボリュームを選択します。
-
レベル エディタのツールバー で [Blueprint (ブループリント)] ボタンをクリックし、[Open Level Blueprint (レベル ブループリントを開く)] を選択します。
- グラフの空白の領域を右クリックして、トリガー ボリュームの On Actor Begin Overlap ノードを追加します。
- グラフの空白の領域を右クリックして、トリガー ボリュームの On Actor End Overlap ノードを追加します。
- グラフの空白の領域を右クリックして、Get SoundscapeSubsystem ノードを追加します。
- Soundscape Subsystem からピンの接続をグラフ上の空き領域にドラッグし、接続先の Set State ノードを追加します。
- Soundscape Subsystem からピンの接続をグラフ上の空き領域にドラッグし、接続先の Clear State ノードを追加します。
- On Actor End Overlap ノードの実行ピンを Set State ノードに接続します。
- On Actor End Overlap ノードの実行ピンを Clear State ノードに接続します。
-
レベル ブループリントを保存します。
9 - 結果を聴く
- レベル エディタのツールバー で [Play Level (レベルをプレイ)] ボタンをクリックします。
- キャラクターをトリガー ボリュームに移動させ、停止します。
- 新しいサウンドスケープを聴いてみましょう!
次のコンソール コマンドは、サウンドスケープの開発を継続するうえで役立つ可能性があります。
au.debug.sounds 1:レベル内のすべてのアクティブなサウンドのリストと関連情報をビューポートに表示します。au.3dVisualize.Enabled 1:アクティブなサウンドの位置を 3D 空間に表示します。
オーディオ コンソール コマンドの詳細については、「オーディオ コンソール コマンド」を参照してください。
10 - 応用編
基本的なサウンドスケープの作成が完了したので、さらに応用してみましょう。
次の提案事項を自分で実行して試してみることをお勧めします。
- レベル内の追加条件をサポートするために、さらに SoundscapeStates を作成する。
- ブループリントや C++ を使用して、時間帯など他の環境状況のための追加ロジックをスクリプト化する。
- カラーおよびパレットの詳細を操作して、その動作を変更する。
- パレットにカラーを追加して、追加のサウンドをレイヤー化する。
- サウンドスケープにパレットを追加して、単独で使用したり、既存のパレットを使用してレイヤー化する。
- 音波波形の代わりに、カラーに MetaSound ソース を使用します。詳細については、「MetaSound」を参照してください。