![]() |
CriWare Unreal Engine
Plug-ins for CriWare solutions.
|
Atom Modulation Generator は、時間の経過とともに値をプロシージャルに生成するアセットです。
このアセットはControl Busなどを使って直接設定できるため、時間経過によるパラメータの変化を一つのアセットで表現することができます。
記事「モジュレーターを使用してピッチを調整する方法」では、「AtomControlBus」に「AtomModulationParameter」アセットを設定し、パラメータを動的に変更していましたが、
「AtomModulationParameter」アセットの代わりに「AtomModulationGeneartor」アセットを設定することで、時間の変化に応じてパラメータを更新できます。
次のアイテムからアセットを作成できます。
アセット作成時に「EnvelopeFollower」または「LFO」を選択できます。
演奏中の音の振幅ピーク値を分析して取得する手法は、エンベロープ フォローイングと呼ばれます。
エンベロープ フォロワーは、入力信号の振幅を追跡し、その変化をレベル値に変換する DSP モジュールです。この値は、エフェクト パラメータ、マテリアル パラメータ、オブジェクト サイズなど、シーン内のさまざまなパラメータを調整するために使用できます...
チェックすると、このパラメータは更新されません。
出力サイズを指定します。
チェックすると、エンベロープは逆位相になります。
LFO は Low Frequency Oscillator の略です。 LFO は、通常 20 Hz 未満の周波数でリズミカルなパルスまたはスイープを生成しますが、これは人間の可聴範囲外です。エンベロープ フォロワーと同様に、LFO は、シーン内のピッチやフィルター カットオフなどの他のパラメーターを変調して、ビブラート、トレモロ、フェージングなどの効果を作成するために使用されます。
周波数を示します。周波数が高くなるほど、波長は短くなります。
信号がシフトされる時間。
チェックすると、このジェネレーターは使用されず、バイパスされます。
LFOの波形選択:。
上記のように既存の用意された機能以外にもカスタマイズすることも可能です。
UAtomModulationGenerator クラスには複数のコード生成テンプレートが用意されており、独自の変調ジェネレーターをすばやく簡単に作成できます。
ジェネレーターの作成と登録に必要なすべての定型文は、コード生成中に作成されます。
以下の手順に従ってカスタム ジェネレーターを実装できます。
[ツール] > [新しい C++ クラス] から、[親クラスの選択] モーダル ダイアログ ボックスで [すべてのクラス] チェック ボックスを選択します。
[ツール] > [新しい C++ クラス] を選択すると、[親クラスの選択] ダイアログ ボックスが開きます。
ウィンドウ上部の[すべてのクラス]を選択し、AtomModulationGeneratorを選択します。
カスタム ジェネレーターを実装する場合は、GetValue 関数と Update 関数を実装する必要があります。
GetValue 関数は、正規化された値 (0.0 ~ 1.0) を返すように実装してください。
次のフレームのキャッシュ値の計算は Update 関数で行われます。
この値は、Update 関数の呼び出しによってフレームごとに更新され、GetValue 関数の呼び出しによって変調先に出力されます。
IsBypassed、GetDebugValues、および GetDebugCategories 関数をオプションで実装することもできます。
IsBypassed は、上記の [Bypass] チェックボックスと同じ仕様です。
GetDebugValues関数はデバッグコマンドで表示した文字列値を取得する関数です。
各モジュレーション ジェネレーター インスタンスは、atom.Debug.SoundModulators コマンドを使用して取得され、表示されます。
GetDebugCategories 関数は、これらのインスタンス値によって提供される各値に対応するフィールド名の静的配列を提供します。