Audio Modulation の概要

Unreal Engine での柔軟な音響調節方法の概要

Windows
MacOS
Linux

Unreal Engine (UE4) の Audio Modulation システムは、ブループリントとコンポーネント システムから一般的なオーディオ パラメータにしてデザイナーがより制御しやすいように改善されたオーディオ ミックス ツールです。

システムの概要です。

  • Unreal Audio Engine 用の汎用性と柔軟性を備えた分離ミックス システムを作成します。

  • ゲームのオーディオ ミックスを試聴およびデバッグするための堅牢なツール セットを確立します。

  • オーディオ プラグインに幅広い調節を適用するために簡単に拡張および使用できる API を提供します。

上記機能を使用するには、Audio Modulation プラグインを有効にする必要があります。[Edit (編集)] > [Plugins (プラグイン)] > [Audio (オーディオ)] から [Audio Modulation] をクリックして有効にします。

The Root Class:Sound Modulator Base

すべてのモジュレーション タイプは USoundModulatorBase から派生します。このクラスは、すべてのモジュレーション タイプに使用される基本的なライフタイム メカニズムを提供します (control busescontrol bus mixesbus modulators など)。

モジュレータのライフタイムは、参照するサウンド インスタンスがモジュレーターを利用しようとするかどうかによって、ユーザーまたは自動アクティベーションによって明示的に管理されます。

(ブループリントでサポートされているアクティベーションおよび非アクティベーションによる) 明示的な管理 には、使用 / 不使用に関係なくユーザーはモジュレータに値を指定することができるという利点があります。ただし、これにはサウンド デザイナの部分により注意が必要となります。

使用すると便利な場合の例として、サウンドがバス値を制御タイプ (ボリューム、LPF、HPF、ピッチなど) に積極的に適用しているか否かに関わらず、キャラクターのアビリティ パワーをオーディオ エンジンにバスする場合などがあります。

手動アクティベートではない場合、ユーザーはオブジェクトのライフタイム管理を心配する必要に対する関心が減り、最初に希望した条件を指定することができません。モジュレータを継続して計算する必要がない場合などに使用すると便利です。LFO などのモジュレータは、サウンドの再生中のみアクティブにすればよい場合があります (結果として出るサウンドが再生しない場合、LFO の出力は大きな変更として現れません)。

すべてのモジュレーション タイプはデフォルトで自動アクティベートです。ステート維持のためにバス モジュレータ、バス、バス ミックスの非アクティベートを強制するには、ブループリントから明示的に DeactivateBusDeactivateBusMixDeactivateModulator を呼び出します。これらのいずれかが呼び出される場合、または UObject は破壊されてもモジュレータはサウンドによってまだ使用される場合、プロキシ オブジェクトのステートは事実上凍結し、参照されなくなる、またはオブジェクトが再びアクティベートされるまで残ります。

アセット クラス

クリックしてフルサイズで表示。

バスはサウンド オブジェクト パラメータの参照のための計算に適用する値を格納します。基本的な制御の場合、USoundControlBusBase から派生したバス タイプは標準の AudioModulation プラグインによって指定されます。

  • USoundVolumeControlBus

  • USoundPitchControlBus

  • USoundLPFControlBus

  • USoundHPFControlBus

各タイプは、USoundBase (USoundWavesUSoundCues など) から派生した別のタイプがサブスクライブするバス動作を指定します。

スレッドの更新レートでオーディオ スレッド上の数値を変更するための最も基本的な動作セットを指定します。バスのデフォルト値、バス値が設定される最小および最大バウンズを指定します。モジュレータの配列は、自動化されたバリアント動作を指定するためにバスにも適用されます。

USoundControlMix

クリックしてフルサイズで表示。

コントロール ミックス は、各バスに適用し、実行時に動的に適用されるチャンネルの配列を含みます。最大値 は、指定された [Attack time] 中に線形に適用され、指定された [Release time] 中に除去されます。

現在、4 つすべてのバス タイプはコントロール ミックスを使って調節することができます (今後はさらに多くのタイプが対象になる可能性があります)。

ミックスはバスのタイプに基づいて計算されます。乗法ボリューム バスとピッチ バスは各ゲイン ステージの成果です (掛け算)。HPF バスは適用されるすべてのミックスの中で最低の指定値を受け取り、LPF バスは最高値を受け取ります。

USoundModulationSettings

クリックしてフルサイズで表示。

モジュレーション設定 はハードウェア モジュレーションにおける一般的なピッチ ベイが何かを定義します。モジュレーション システムの中で最も複雑でパワフルなタイプです。

設定は USoundBase タイプ、UAudioComponent タイプ、USoundClass タイプによって参照することができます。それぞれのサウンド インスタンスに対して、使用する Settings Object を決定するためにフォールバック構造体が使用されます。指定すると、USoundBase バージョンが使用されます。指定されないと、UAudioComponent が使用されます。UAudioComponent が指定された設定を持たない場合、実行時に USoundClass 値が適用されます。

各バス タイプは独自の設定セクションがあり、同じ基本フローに従います。サブスクライブされるバスがないと Default Input Value (デフォルト入力値) が使用されます。設定されると、サウンドが初期化されサウンドの継続時間中に維持されるとすぐに Sample-And-Hold がバス値をサンプリングします。

サブスクライブおよびアクティブにされた各バスに対して (アクティブでないバスは無視されます)、入力 Transform フィールドが提供され、受信するバス値を Input Min/Max (ドメイン) から Output Min/Max (範囲) に線形にトランスフォームすることが可能になります。

これらのサブスクライブされたバスに対して出力されたトランスフォーム値を混ぜて、最終的なカスタム Output 値が適用される出力セクションへ渡されます。カスタム カーブまたは与えられた表現式のいずれかを適用することができます。スカラー値の例とともに、以下のカーブが与えられます。

USoundModulationSettings

緑:Exponential—inverse、紫:Exponential—scalar、オレンジ:Sin—S-curve、青:Sin; 赤:Log

ミックス セクションは、この設定を参照するサウンドがアクティブの間、ミックスを参照する他の設定と一緒に指定された ControlBusMixes を適用します。

ミックスは、ミックス自体で指定された設定に従って、アタックとリリースを行います。サウンドが完了するとリリースが開始します。

USoundBusModulatorBase/USoundBusModulatorLFO

USoundBusModulatorBase はコントロール バスに対して有効にされたすべてのモジュレータの基本クラスです。

LFO モジュレータはベータ版で使用できるバス モジュレータの最初の例です。

クリックしてフルサイズで表示。

LFO バス モジュレータは以下の基本形のいずれかになります。

クリックしてフルサイズで表示。

それぞれの LFO の形状は指定された AmplitudeFrequencyOffset を順守します。周期関数は、Looping 設定の有効 / 無効によってループの実施が決まります。

Blueprint API

(De)ActivateBus/BusMix/Modulator

これらの呼び出しによって Control BusesBus MixesModulators を手動でアクティブ / 非アクティブにすることができます。

UpdateModulator

アクティブな USoundModulatorBase (USoundControlBusUSoundControlBusMixUSoundBusModulatorLFO など) の継承タイプのオブジェクトを変更すると、すぐに更新を聞くために UpdateModulator が呼び出されます。この呼び出しによって、アクティブなモジュレータのプロキシを更新するために Object の変更がオーディオ スレッドにサブミットされます。USoundModulatorBase インスタンスへの適用可能なすべての変更はそれぞれのランタイム インスタンスで反映されます

たとえば、ボリューム コントロール バスが USoundBase タイプに参照されてアクティブな場合 (ミックスの適用はなし)、デフォルト値を更新すると、そのバスによって与えられたゲイン ステージはすぐに USoundBase に更新されます。

CreateLPFBus/HPFBus/PitchBus/VolumeBus/BusMix/LFO

これらはそれぞれのタイプの作成、デフォルト値の設定、すぐにアクティベートするオプションの提供のための便利な関数です。

Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信