MetaSound は、高性能オーディオ システムで、サウンド ソースのデジタル信号処理 (DSP) グラフの生成を完全にコントロールできるオーディオ デザイナーを提供します。
このガイドでは、ゲームプレイを制御する 2 つの MetaSound ソース、爆発音エフェクトとアンビエント ウィンドを作成する方法について説明します。
前提条件
このガイドで初めて MetaSound を作成する前に、[with Starter Content (スターター コンテンツ有り)] で新しい First Person テンプレート プロジェクトを作成する必要があります。
1 - Bomb (爆発) MetaSound を作成する
ライフルは発射するとサウンドが再生されますが、発射物は無音です。MetaSound を使用して、発射物が使用する爆発音エフェクトを作成します。
1A - MetaSound ソースを作成する
これは 3D 空間内の音源となるため、まず MetaSound ソースを作成して、Sound Attenuation アセット をアタッチします。
-
MetaSound ソースを作成します。
-
コンテンツ ブラウザ で [Add (追加)] ボタンをクリックします。
-
[Audio (オーディオ)] > [MetaSound Source (MetaSound ソース)] を選択します。
-
新しく作成したアセットに名前 (MSS_Bomb など) を付けます。
-
-
MetaSound をダブルクリックして、MetaSound エディタ を開きます。
-
リスナーとの相対的な位置に基づいて MetaSound を空間化し、減衰させるために [Attenuation Settings (減衰設定)] を設定します。
-
MetaSound エディタのツールバー の [Source (ソース)] ボタンをクリックします。
-
[Details (詳細)] パネルで、[Attenuation (減衰)] > [Attenuation Settings] の横にあるドロップダウンをクリックします。
-
[Create New Asset (新規アセットを作成)] という見出しの下にある [Sound Attenuation (サウンドの減衰)] を選択します。
-
新しく作成したアセットに名前 (SA_Bomb など) を付けて、保存します。
-
1B - MetaSound グラフを作成する
画像をクリックすると、拡大表示されます。
MetaSound ソースのサウンドを制御する MetaSound グラフ を作成します。次の手順を実行して、上記のグラフを作成します。
-
On Play Input ノードを見つけて、ピンを空白の領域にドラッグします。ノード検索で「Wave Player (Mono)」と入力し、接続先のノードを作成します。ノードをドラッグすると、グラフ内でノードを移動できます。
-
Wave Player (Mono) ノードで、次の手順を実行します。
-
Wave Asset ドロップダウンをクリックして、Fire_Sparks01 音波波形を選択します。
-
Loop を有効にします。
-
Out Mono ピンからドラッグして、Mono Mixer (2) を作成します。
-
Stop ピンからドラッグして、別の Wave Player (Mono) を作成します。
-
-
新規に作成された Wave Player (Mono) ノードで、次の手順を実行します。
-
On Finished ピンを On Finished Output ノードに接続します。
-
Out Mono ピンを Mono Mixer (2) の In 1 ピンに接続します。
-
Play ピンからドラッグして、Random Get (WaveAsset:Array) ノードを作成します。
-
Wave Asset ピンを Random Get (WaveAsset:Array) ノードの Value ピンに接続します。
-
-
Random Get (WaveAsset:Array) ノードで次の操作を実行します。
-
Next ピンからドラッグして、Promote to Graph Input を選択します。この操作により、Next という名前の Trigger Input ノードが作成されます。
-
In Array ピンからドラッグして、Promote to Graph Variable を選択します。これにより、In Array という名前の WaveAsset:Array Variable ノードが作成されます。
-
-
Mono Mixer (2) で次の操作を実行します。
-
Gain 1 (Lin) に「2.0」を入力します。
-
Out ピンを Out Mono Output ノードに接続します。
-
1C - Explosion Wave Player の入力を調整する
Next Trigger および In Array Variable を調整します。
-
Next Trigger Input ノードを選択します。
-
[Details] パネルで、[General (全般)] > [Input (インプット)] で「Explode」と入力し、名前を変更します。これは、ブループリントから実行するように設定するトリガーの名前になります。
-
In Array WaveAsset:Array Variable ノードを選択します。
-
[Details] パネルで、[General (全般)] > [Variable (変数)] で「ExplosionArray」と入力し、名前を変更します。
-
[Default Value (デフォルト値)] > [Default (デフォルト)] の [Add (追加) (+)] ボタンを 2 回クリックします。これらのインデックスは、ランダムに選択される音波波形の参照を保持します。
-
[Index[0]] ドロップダウンをクリックして、Explosion01 音波波形を選択します。
-
[Index[1]] ドロップダウンをクリックして、Explosion02 音波波形を選択します。
1D - MetaSound を再生する
これで MetaSound を再生する準備が整いました。
-
MetaSound エディタのツールバー の [Play (プレイ)] ボタンをクリックし、MetaSound を再生します。Explode Trigger が実行されるまでスパーク音がループ再生されます。その時点で ExplosionArray 内のランダムな爆発音が、MetaSound が終了する前に再生されます。MetaSound の再生中に Trigger Input ノードの右上にある Execute (Down Arrow) ボタンをクリックすると、Explode Trigger の実行をシミュレートできます。
-
MetaSound ソースを保存して、MetaSound エディタを閉じます。
2 - ブループリントに爆発ロジックを追加する
爆発音をデザインした後は、発射物のブループリントを使用してランタイム ロジックを設定します。
2A - 発射物のブループリントを開く
ビルド済みの発射物のブループリントを開きます。
-
コンテンツ ブラウザ で、「
All/Content/FirstPerson/Blueprints」に移動します。 -
BP_FirstPersonProjectile をダブルクリックして、ブループリント エディタ で開きます。
2B - ブループリント グラフを作成する
既存の ブループリント グラフ を追加して、発射物のライフサイクルに基づいて爆発 MetaSound を制御します。
-
空白の領域を右クリックして、Event BeginPlay ノードを作成します。
-
Event BeginPlay ノードからドラッグして、Spawn Sound Attached ノードを作成します。
-
Spawn Sound Attached ノードで、次の手順を実行します。
-
Sound ドロップダウンをクリックして、Bomb MetaSound を選択します。
-
Attach to Component ピンからドラッグして、Get Sphere ノードを作成します。
-
Return Value ピンからドラッグして、Execute Trigger Parameter ノードを作成します。
-
Alt キーを押しながら Exec Output (>) ピンをクリックして、Spawn Sound Attached ノードと Execute Trigger Parameter ノード間の接続を除去します。
-
-
Execute Trigger Parameter ノードで、次の手順を実行します。
-
In Name に「Explode」と入力します。
-
Exec Input (>) ピンからドラッグして、Event Destroyed ノードを作成します。
-
-
ブループリントに行った変更を保存し、ブループリント エディタを閉じます。
2C - レベルをテストする
これでブループリントをテストする準備が整いました。
レベル エディタのツールバー で [Play (プレイ)] ボタンをクリックし、ライフルを手に取って (ライフルに移動して)、(左クリックで) 撃ち、自分の作業を確認します。
発射物により、空間化されたダイナミックなサウンドが生成されます。スパーク サウンドは、発射物が青い箱に接触するか、少し時間が経過して爆発するまでループ再生されます。
3 - Wind (風) MetaSound を作成する
シーンに雰囲気を加えるために、アンビエント ウィンドの MetaSound を作成します。
3A- MetaSound ソースを作成する
MetaSound Source アセットをもう 1 つ作成します。このサウンドは 3D 空間内で空間化されないため、Sound Attenuation アセットをアタッチする必要はありません。
-
MetaSound ソースを作成します。
-
コンテンツ ブラウザ で [Add (追加)] ボタンをクリックします。
-
[Audio (オーディオ)] > [MetaSound Source (MetaSound ソース)] を選択します。
-
名前 (MSS_Wind など) を付けます。
-
-
MetaSound をダブルクリックして、MetaSound エディタを開きます。
3B - MetaSound の詳細を調整する
グラフを作成する前に、MetaSound のデフォルト プロパティを調整して、永続的なステレオ オーディオをサポートします。
-
[Interfaces (インターフェース)] パネルで、UE.Source.OneShot インターフェース エントリの横にある [除去 (ゴミ箱)] ボタンをクリックします。これにより、アンビエンスやミュージックなどの永続的なサウンドでは使用されない On Finished Output ノードが除去されます。
-
MetaSound エディタのツールバー の [MetaSound] ボタンをクリックします。
-
[Details (詳細)] パネルで、[MetaSound] > [Output Format (出力形式)] ドロップダウンをクリックし、[Stereo (ステレオ)] を選択します。これにより、Out Mono Output ノードが、Out Left ノードと Out Right Output ノードに置き換えられます。
3C - MetaSound グラフを作成する
画像をクリックすると、拡大表示されます。
MetaSound ソースのサウンドを制御する MetaSound グラフ を作成します。次の手順を実行して、上記のグラフを作成します。
-
On Play Input ノードを選択して、Delete キーで削除します。このグラフにこのノードは必要ありません。
-
Out Left ピンからドラッグして、Stereo Mixer (2) を作成します。
-
Out Right ピンを Stereo Mixer (2) ノードの Out R ピンに接続します。
-
空白の領域を右クリックして、Noise ノードを作成します。
-
Noise ノードで、Audio ピンからドラッグし、One-Pole Low Pass Filter ノードを作成します。
-
選択ボックスをドラッグして、Noise ノードと One-Pole Low Pass Filter ノードを選択します。
-
選択されているどちらかのノードを右クリックして、[Duplicate (複製)] を選択します。
-
新しい Noise ノードで、Seed に「1」を入力します。これは、ノイズの生成にばらつきを持たせるためです。
-
One-Pole Low Pass Filter ノードの 1 つで、Out ピンを Stereo Mixer (2) ノードの In 0 L ピンに接続します。
-
もう 1 つの One-Pole Low Pass Filter ノードで、Out ピンを Stereo Mixer (2) ノードの In 0 R ピンに接続します。
-
空白の領域を右クリックして、LFO ノードを作成します。
-
LFO ノードで、次の操作を実行します。
-
Frequency に「0.1」を入力します。
-
Min Value に「20.0」を入力します。
-
Max Value に「80.0」を入力します。
-
Out ピンを One-Pole Low Pass Filter ノードの両方の Cutoff Frequency ピンに接続します。
-
-
Stereo Mixer (2) ノードで、Gain 0 (Lin) ピンからドラッグして、InterpTo ノードを作成します。
-
InterpTo ノードで次の操作を実行します。
-
Interp Time に「0.3」を入力します。
-
Target ピンからドラッグして、Add (Float) ノードを作成します。
-
-
Add (Float) ノードで、次の手順を実行します。
-
Bottom Addend に「2.0」を入力します。
-
Top Addend ピンからドラッグして、Multiply (Float) ノードを作成します。
-
-
Multiply (Float) ノードで、次の手順を実行します。
-
Bottom Multiplicand に「3.0」を入力します。
-
Top Multiplicand ピンからドラッグして、Promote to Graph Input を選択します。この操作により、PrimaryOperand という名前の Float Input ノードが作成されます。
-
-
PrimaryOperand Float Input ノードを選択します。
-
[Details] パネルで、[General] > [Input] で「PawnSpeed」と入力し、名前を変更します。
3D - MetaSound を再生する
これで MetaSound を再生する準備が整いました。
-
MetaSound エディタのツールバー の [Play (プレイ)] ボタンをクリックし、MetaSound を再生します。[Stop (停止)] ボタンをクリックするまで、風のようなダイナミックなサウンドがステレオで再生されます。信号のゲインは、PawnSpeed Float Input ノードの影響を受けます。ノードの Input Widget (Dial) をクリックして上下にドラッグすることで、PawnSpeed の値をシミュレートすることができます。
-
MetaSound ソースを保存して、MetaSound エディタを閉じます。
4 - ブループリントに風ロジックを追加する
風のサウンドをデザインしたら、レベル ブループリント を使用してランタイム ロジックを設定します。
4A - レベル ブループリントを開く
レベル エディタを開くには、レベル エディタのツールバー で [Blueprint (ブループリント)] ボタンをクリックし、[Open Level Blueprint (レベル ブループリントを開く)] を選択します。
4B - ブループリント グラフを作成する
画像をクリックすると、拡大表示されます。
プレイヤーの動きに基づいてWind (風) MetaSound をコントロールするブループリントのグラフを作成します。
-
空白の領域を右クリックして、Event BeginPlay ノードを作成します。
-
Event BeginPlay ノードからドラッグして、Spawn Sound 2D ノードを作成します。
-
Spawn Sound 2D ノードで、次の手順を実行します。
-
Sound ドロップダウンをクリックして、Wind MetaSound を選択します。
-
Return Value ピンからドラッグして、Set Float Parameter ノードを作成します。
-
Alt キーを押しながら Exec Output (>) ピンをクリックして、Spawn Sound 2D ノードと Set Float Parameter ノード間の接続を除去します。
-
-
Set Float Parameter ノードで次の手順を実行します。
-
In Name に「PawnSpeed」と入力します。
-
Exec Input (>) ピンからドラッグして、Event Tick ノードを作成します。
-
-
空白の領域を右クリックして、Get Player Pawn ノードを作成します。
-
Get Player Pawn ノードの Return Value ピンからドラッグして、Get Velocity ノードを作成します。
-
Get Velocity ノードの Return Value ピンからドラッグして、Vector Length ノードを作成します。
-
Vector Length ノードの Return Value ピンからドラッグして、Map Range Clamped ノードを作成します。
-
Map Range Clamped ノードで、以下の手順を実行します。
-
In Range A に「200.0」を入力します。
-
In Range B に「1000.0」を入力します。
-
Out Range B に「1.0」を入力します。
-
Return Value ピンを Set Float Parameter ノードの In Float ピンに接続します。
-
-
ブループリントに行った変更を保存し、ブループリント エディタを閉じます。
4C - レベルをテストする
ブループリントをテストする準備が整いました。
レベル エディタのツールバー で [Play (プレイ)] ボタンをクリックし、全体的な作業内容を確認します。
風の音は、アイドル時は小さな音量で再生され、ベロシティが上がるにつれて大きくなります。
5 - 応用編
2 つの基本的な MetaSound を作成できたので、次にこのプロジェクトをさらに発展させることを検討してみましょう。次の提案事項を自分で実行して試してみることをお勧めします。
-
追加ノードを使用して MetaSound に変化をつける。ノード ライブラリやその他の MetaSound の機能については、「MetaSound リファレンス ガイド」を参照してください。
-
デフォルトのライフルの発砲音を MetaSound で置き換える。発砲速度や発砲角度などの変数に基づいて、サウンドを動的に変化させることを検討しましょう。
-
歩行、ジャンプ、アイテムのピックアップなど、プレイヤーの動作に合った MetaSound を追加する。
-
このガイドで作成したシンプルな風の実装を改良する。パニングや環境応答などの追加機能をサポートする高度な実装の例として、「Lyra サンプル ゲーム」プロジェクトを参照してください。