MetaSound エディタ では MetaSound の作成、修正、プレビューを行います。MetaSound エディタに含まれている MetaSound グラフ は、すべての MetaSound のデザインを構成するさまざまなピンとノードを使って作られています。
MetaSound グラフ の動作は、ブループリントのグラフとはやや異なります。ブループリントではグラフが実行グラフとして機能する一方で、MetaSounds ではフロー グラフとして機能します。
本ドキュメントで説明するピンとノードの型は組み込み型ですが、C++ API を使って独自の型を追加することもできます。
アセット タイプ
MetaSound には MetaSound ソース と MetaSound パッチ という 2 つの主要なアセット タイプが含まれています。これら 2 つのタイプはグラフ操作の面では似ていますが、オーディオを独自に生成できるのは MetaSound ソースのみです。MetaSound パッチは、機能のカプセル化と再利用のために、他の MetaSound によって参照されることを想定しています。
MetaSound アセットを作成するには、コンテンツブラウザ 内の [Add (追加)] ボタンをクリックして、[Audio (オーディオ)] > [MetaSound Source (MetaSound ソース)] または [Audio] > [MetaSounds] > [MetaSound Patch (MetaSound パッチ)] を選択します。MetaSound エディタで MetaSound アセットを編集することもできます。編集するには、目的のアセットを コンテンツブラウザ 内でダブルクリックするか、右クリックしてコンテキスト メニューの [Edit… (編集…)] を選択します。
プリセット
MetaSound プリセット は、親の MetaSound から読み取り専用のグラフを継承し、デフォルトの入力値をオーバーライドする機能を提供する特殊なタイプのアセットです。これによって、異なる入力のセットを持つ同じ MetaSound の複数のバージョンを作成できるようになり、複製されるグラフの軽減に役立ちます。
親の MetaSound アセットに対する変更は、その子のプリセットにすべて反映されます。これにより、影響を受けるアセット間の一貫性が保証されて、複数の MetaSound に変更を適用するためのワークロードが軽減されます。
MetaSound プリセットを作成するには、親にする MetaSound ソースまたはパッチを コンテンツ ブラウザ 内で右クリックし、コンテキスト メニューから [Create MetaSound Preset (MetaSound プリセットの作成)] を選択します。MetaSound エディタでプリセットの入力値を変更するには、[Members (メンバー)] パネルで入力を選択し、[Details (詳細)] パネルで [Default Value (デフォルト値)] > [Override Inherited Default (継承されたデフォルトをオーバーライド)] を有効にして、[Default Value] > [Default (デフォルト)] を変更します。
MetaSound プリセットを標準的な MetaSound アセットに変換する場合は、MetaSound エディタの上部にあるツールバーの [Convert From Preset (プリセットから変換)] ボタンをクリックします。
ノードを追加する
グラフにノードを追加するには、グラフ内の空白部分を右クリックして、コンテキスト メニューから目的のノード タイプを選択します。また、ピン接続を空白部分にドラッグして、ノードを接続された状態で作成することもできます。
コンテキスト メニューには検索ボックスも用意されているため、名前とタグでノード タイプを検索できます。たとえば、「synth」と入力すると、「synth」という単語が名前に含まれるノードと、「合成」に関連するノードが検索されます。
ピン タイプ
MetaSound ノードは、個別 (円形のコネクタ) と配列 (ブロックのコネクタ) 両方のピン接続を介してさまざまなデータ型とやり取りします。
| ピン タイプ | 説明 |
|---|---|
Trigger |
モジュラー合成トリガーに相当し、ブループリントの実行ピンと同様に他のノードを実行するために使用します。同時に他の複数のノードに接続できます。他のノードには接続しないことも可能です。 |
Audio |
MetaSound ノードで操作できる実際のオーディオ バッファを表します。場合により、これらのピンは周波数モジュレーション合成などのオーディオ レートで消費されることを意図したパラメータであることがあります。 |
Time |
時間値を秒単位で表します。 |
String |
ラベリングとデバッグ機能を提供します。これらのピンは再生中に直接使用されることはありませんが、ノード情報をコンソール ログに出力するなど、オーディオ デザイナに情報を伝えるのに役立ちます。 |
UObject |
再生するアセットへの参照を Wave Player ノードに提供する際に一般的に使用される USoundWave など、サポートされる UObject タイプを表します。 |
Bool |
ブール変数を表します。 |
Float |
浮動小数点数の変数を表します。 |
Int32 |
整数 (4 バイト) の変数を表します。 |
Enum |
列挙変数を表します。 |
Trigger ノードがタイミング ノードやゲームプレイ イベントを介してトリガーされると、それがサンプルアキュレートで、オーディオ レンダリング ブロックの正確なサンプル インデックス上で実行されます。ただし、他のノード タイプはオーディオ レートで動作しないため、Trigger 入力が別のノード タイプに接続されている場合は、それによってブロック レート出力が生成されることがあります。
接続
ノード間の接続は再生時に視覚化されるため、各ノードの動作を容易に把握できます。トリガー接続は有効になると強調表示され、オーディオ接続は信号の強度に応じて色の濃さが変わり、浮動小数の接続は値に基づいてカラー シフトします。
浮動小数の接続のビジュアライゼーションはデフォルトで無効になっています。これを有効にするには、MetaSound の再生中にマウス カーソルを接続に乗せ、コンテキスト メニューを表示します。このコンテキスト メニューには、ビジュアライゼーションを有効/無効にするためのトグル、期待値の範囲を定義する 2 つの数値入力、そしてブレンドするための 2 つのカラー入力が含まれています。
追加のビジュアライゼーション設定は [Editor Preferences (エディタの環境設定)] > [MetaSound Editor (MetaSound エディタ)] > [Graph Animation (グラフ アニメーション)] にあります。
Reroute ノードを使うと接続全体を整理できます。MetaSound の Reroute ノードはブループリントのものと同じように機能し、接続をダブルクリックすることで作成できます。作成後は、それを選択した際に表示される境界をドラッグすることで移動できます。このノードから追加の接続を作成するには、このノード自体からドラッグします。
また、アライメントと分散の操作によってグラフを整理することもできます。これを行うには、すべての関連ノードを選択して右クリックし、コンテキスト メニューから目的の操作を選択します。
入力および出力ノード

Input と Output ノードでは、通常 MetaSound を通じたデータ フローの開始点または終了点であるピンへのアクセスを提供します。たとえば、すべての MetaSound ソース アセットは、On Play 入力ノードと On Finished 出力ノードを使って開始されます。On Play 入力ノードには Trigger ピン出力があり、MetaSound の再生時に他のノードに開始を合図するために使用されます。On Finished 出力ノードには Trigger ピン入力があり、これは MetaSound の再生が終了したときに信号を受信するために使用されます。
On Finished 出力ノードは、新しい MetaSound ソース上でデフォルトで有効な UE.Source.OneShot インターフェースによってグラフに追加されます。On Finished ノードがトリガーされない場合、MetaSound は無限に再生を続けます。音楽やアンビエンスなど、無限のサウンドを作成するには、[Interfaces (インターフェース)] パネルで UE.Source.OneShot インターフェースを削除します。
Out Left などの一部の出力ノードはオーディオ チャンネル出力に対応しています。それぞれの MetaSound には、モノラル、ステレオ、クワッド (4.0)、5.1、7.1 などの異なるオーディオ チャンネル構成をサポートするための出力形式設定が備わっています。この設定を表示するには、[Play (プレイ)] ボタンの隣にある [MetaSound] ボタンをクリックし、[Details] パネルを確認します。
MetaSound エディタの [Members] パネルでは、追加の入力と出力を作成できます。作成後に、[Details] パネルで [Display Name (表示名)] や [Type (タイプ)] など、目的のプロパティを設定できます。次にグラフの空白部分を右クリックし、コンテキスト メニューから対応する Get Input または Set Output ノード オプションを選択して、新しいノード インスタンスを作成できます。また、[Members] パネルから Input または Output をグラフにドラッグして、新しい Input または Output ノード インスタンスを作成することもできます。
Slider ウィジェットまたは Knob ウィジェットを Float ノードおよび Time Input ノードで使用すると、MetaSound の再生中に値を簡単に変更できるようになり、ワークフローがよりスムーズになります。これは、(目的の入力が選択された状態で) [Details] パネルの [Editor Options (エディタ オプション)] > [Widget (ウィジェット)] で設定できます。このパネルでは、範囲、(スライダの) 向き、値の種類 も変更できます。
出力のウォッチ
ブループリントか C++ で MetaSound ソース出力をウォッチしてゲームプレイ システムを駆動させることができます。
出力をウォッチすると、以下を行うことができます。
- 出力値が変わったときにイベントを発行する。
- 変更された出力値にアクセスする。
出力をウォッチするには、Watch Output Blueprint ノード か Watch Output C++ 関数 を使用します。
出力がウォッチされるようにするには、含まれている MetaSound ソースが再生中でなければなりません。さらに、MetaSound パッチの出力をウォッチすることはできません。
ウォッチされている出力がフレームで複数回更新されると、更新のたびに On Output Value Changed デリゲートが 1 回発行されます。
ウォッチ可能な出力タイプは次のとおりです。
- Float
- Int 32
- Bool
- Time
- FString
- Trigger
Watch Output 関数で次のパラメータを設定することにより、オーディオ出力のエンベロープ フォロワーをウォッチすることもできます。
- 出力名:
UE.OutputFormat.Mono.Audio:0などの MetaSound ソース グラフのオーディオ出力の正確な名前です。これは、Audio Output ノードを選択して [General (全般)] > [Output (出力)] で [Details] パネルを調べることで見つけられます。 - アナライザーの名前:
UE.Audio.EnvelopeFollower - アナライザーの出力の名称:
EnvelopeValue
コンストラクタ ピン
コンストラクタ ピンはダイヤモンドの形をしたアイコンで表示されます。コンストラクタ ピンには読み取り専用の値が含まれており、ランタイム時に動的に更新されないことで、MetaSound のパフォーマンスを高めることができます。この点においては C++ の const 宣言に似ています。
Input および Output ノード上のピンをコンストラクタ ピンに変換するには、[Details] パネルの [Is Constructor Pin (コンストラクタ ピンである)] チェックボックスをオンにします。割り当てのコピーと構築をサポートするすべてのデータ型 (配列型を含む) ではコンストラクタ ピンをサポートできますが、Trigger と Audio タイプをコンストラクタ ピンにすることはできません。
コンストラクタ ピンの値を設定できるのは MetaSound の再生前のみです。この値を設定するには [Details] パネルを使用するか、ブループリントで SetParameter ノードを使用します。
コンストラクタ ピンでの作業時には接続のコンストレイントが適用されます。出力コンストラクタ ピンは、コンストラクタと非コンストラクタの入力ピンのいずれにも接続できますが、入力コンストラクタ ピンはコンストラクタ出力ピンのみに接続できます。
コンストラクタ ピンのステータスを MetaSound プリセットでオーバーライドすることはできません。
変数ノード
変数 ノードを使用すると、MetaSound で関数ノードをサポートする変数にアクセスして操作することができます。アセットの個別の変数ごとに、Get Variable、Get Delayed Variable、および Set Variable の 3 つのノード タイプがあります。Get Variable および Set Variable では関連する変数に対する読み取りアクセスまたは書き込みアクセスが即時に提供され、Get Delayed Variable はブロックごとに読み取りを遅延させ、サイクルの軽減にも使用できます。
MetaSound の再生中には変数への変更は登録されないため、代わりに入力を使って再生中に値を変更できます。
入力および出力ノードと同様に、変数ノードは MetaSound エディタの [Members] パネルで作成し、[Details] パネルでプロパティを設定することができます。変数ノード インスタンスを作成するにはグラフ内で右クリックのコンテキスト メニューを使用できますが、Get Variable ノードについては、[Members] パネルからドラッグして作成する必要があります。
MetaSound 変数はブループリントではアクセスできません。
インターフェース
インターフェース では、特殊な入力と出力へのアクセスを提供することで、MetaSound を Unreal Audio Engine の他のシステムと連動させることができます。MetaSound にインターフェースを追加したり削除したりするには、MetaSound エディタの [Interfaces] パネルを使用します。
使用可能なインターフェースは次のとおりです。
- UE.Source.OneShot - トリガー時に MetaSound を停止する On Finished 出力を提供することで、一度限りのサウンドを作成できます。このインターフェースはデフォルトで追加されており、存続期間が無限の MetaSound からは削除する必要があります。
- UE.Attenuation - MetaSound とリスナーとの間の距離に基づいた値を含む Distance 入力を提供します。
- UE.Spatialization - リスナーを基準とした MetaSound の位置に基づく値を含む Azimuth 入力と Elevation 入力を提供します。
グラフ ノード
グラフ ノードは、プロジェクト内の他の MetaSound のグラフへのアクセス ポイントの提供を通じてコンポジション (合成) の機能を提供します。これらのノードは別の MetaSound の入力と出力に基づいた接続ピンを持つため、それらを使用して、その MetaSound のデザインに影響を与えることができます。
グラフ ノードにより、ワークフローに以下のようなさまざまな改善を施すことができます。
- 機能を複数の小さな MetaSound に分割することで、MetaSound の複雑さとサイズを削減する。
- 機能を既存の MetaSound から再利用して、複製の必要性をなくす。
- 参照グラフを変更することで、同じグラフ ノードを含む複数の MetaSound を同時に変更する。
MetaSound パッチを表すグラフ ノードを使用する場合は、聴こえるようにするために、そのコンポジションで MetaSound ソースを使用する必要があります。
変換ノード
変換 ノードは、ブループリントの変換ノードと同じように、ピン タイプを別のサポートされているピン タイプに変更します。
サポートされる変換
| 変換前 | 変換後 |
|---|---|
| Audio | Float |
| Bool | Float または Int32 |
| Float | Audio、Bool、Int32、または Time |
| Frequency Multiplier | Semitone |
| Int32 | Bool、Float、Time、または Enum |
| Semitone | Frequency Multiplier |
| String | Transmission:Address |
| Time | Float または Int32 |
| Enum | Int32 |
コメント
グラフ内にコメントを加えることで、デザインを適切に整理して文書化することができます。グラフにコメント ボックスを追加するには、空白の部分を右クリックしてコンテキスト メニューから [Add Comment (コメントを追加)] を選択するか、複数のノードを選択して右クリックし、コンテキスト メニューから [Create Comment from Selection (選択項目からコメントを作成)] を選択します。作成後にコメントを変更するには、テキストをダブルクリックして選択し、新しいコメントを入力します。
コメント ボックスのサイズは、その右下隅にあるハンドルをドラッグすることで調整できます。また、コメント ボックスを選択して [Details] パネルの [Comment Color (コメントの色)] プロパティを変更することで、コメント ボックスの色を変更することもできます。
デフォルトでは、グラフ内でコメント ボックスを移動すると、それに含まれるすべてのノードが一緒に移動します。この動作をやめるには、[Details] パネルでコメント ボックスの [Move Mode (移動モード)] を [Comment (コメント)] に変更します。
個別のノードにコメント バブルを追加することも可能です。これを追加するには、目的のノードにカーソルを乗せて、左上隅に表示されるコメント バブル ボタンを選択するか、目的のノードを右クリックして、[Node Comment (ノード コメント)] テキスト ボックスにコメントを入力します。
関数ノード
関数 ノードには多岐にわたるタイプがあり、オーディオ ファイルの再生やサウンドのミックス、フィルタやエフェクトの適用などに必要な機能を提供します。
MetaSound 関数ノードの情報については、「MetaSound 関数ノード リファレンス ガイド」を参照してください。
ビルダー API
MetaSound ビルダー API とブループリントか C++ を組み合わせて使用することにより、Unreal Editor 内で、およびランタイム時に MetaSound ソースと MetaSound パッチを動的に作成したり変更したりできます。これによって MetaSound のプロダクションの時間が短縮され、ランタイムの大きな可能性が切り開かれます。
MetaSound ビルダー API には、その機能を提供する次の 2 つのサブシステムがあります。
- MetaSound ビルダー サブシステム:ランタイム時の MetaSound の動的な生成をサポートします。
- MetaSound エディタ サブシステム:エディタ ユーティリティ ブループリント を使用した MetaSound アセットのビルドをサポートします。
MetaSound ビルダー サブシステムは以下の目的で使用します。
- ランタイム時に MetaSound の作成と監査を行う。
- サポートされているすべてのタイプの入力と出力を作成する。
- ノードと入力/出力へのハンドルを参照することにより、インターフェースを追加、接続、削除する。
- 出力形式の設定と変更を行う。
- MetaSound ノードの接続と切断を行う。
- ランタイム時に MetaSound を動的に変更する (オーディションの後、ライブ更新が有効になっている場合)。
MetaSound エディタ サブシステムは以下の目的で使用します。
- 新しい MetaSound ソース、パッチ、またはプリセット アセットを作成する。
- ソース設定のテンプレートとして他の
USoundWaveアセットを使用する。
C++ API の詳細については、「MetasoundEngine C++ API リファレンス」を参照してください。
ブループリント API の詳細については、「MetaSound ビルダー ブループリント API リファレンス」を参照してください。
サポートされているブループリント関数は、[Audio] > [MetaSound] > [Builder (ビルダー)] で確認できます。
Trigger
Audio
Time
String
UObject
Bool
Float
Int32
Enum