VDMX Tips – PWM Strobe FXの作成

VDMX Tips – PWM Strobe FXの作成

はじめに

多くのVJソフトに入っているエフェクトの1つであるストロボなんですが、エフェクトとしてはカッコいい反面、使いにくいポイントが一つあります。
ストロボエフェクトは初期設定でOn / OFF が1:1なので、エフェクトがかからない時間と同じ時間だけストロボ(白い画面)がになるということです。つまり、ストロボレートが遅い時に、ストロボエフェクトがかかる時間が長すぎるということです。

ということで、ここを改善したストロボエフェクトを作ります。

PWMとは

PWMとは「Pulse Width Modulation」の略で、名前の通りモジュレーションの一種です。波形としてはSquare波に近い形をしています。
基本的にはONとOFF (1と0)の間を瞬時に切り替えていくのですが、Square波は時間軸に対して、ONとOFFが同じ時間なのに対して、PWMはONとOFFの割合を変えることができます。
全体に対してのONの割合 ( ON / (ON + OFF) )をPWM Rateとかそういった名前が付けられており、Rateが0.5 (50 %)の時はSquare波と一致します。Rateが0 (0%) のときは常にOFF、1.00 (100%)のときは常にON

ストロボエフェクトにおいてもこのPWMを採用することで、ストロボレートが遅い時でも不自然なストロボエフエクトになりにくいというわけです。

Quartz ComposerでPWM Strobe作成

Quartz Composerを開いたら、上部「File」タブの「New Blank」で新規作成します。

今回は入力値として、エフェクトに入力するための動画「InputImage」と、エフェクトの入力値「Strobe Speed (Rate)」「PWM Rate」と、カラーストロボにしたいので「Red」「Green」「Blue」を入れ、合計で6つのInput Splitterを呼び出します。

Patch Inspectorを呼び出しSettingsタブを開けて、それぞれのセッティングは以下の通りにします。

InputImage
 Type「Image」

Strobe Speed
 Type「Number」
 Min「0」
 Max「1」

PWM
 Type「Number」
 Min「0」
 Max「1」

Red
 Type「Number」
 Min「0」
 Max「1」

Green
 Type「Number」
 Min「0」
 Max「1」

Blue
 Type「Number」
 Min「0」
 Max「1」

出力側には 「Billboard」と「Clear」を呼び出します。各々の右上にあるレイヤー番号をBillboard側を「1」、Clear側を「2」にします。
Billboardは2次元平面描写を出力するパッチ、Clearは単色平面描写を出力するパッチです。つまりBillboardにエフェクト前の動画を送り(Layer 1)、その上にカラーストロボを描写させることになります(Layer 2)。

Billboard側の出力サイズを変更するため、Patch InspectorのSettings画面を開き、「Dimentions Mode:」を「Real Size」に変更します。これで入力された動画のサイズと出力される動画のサイズが等しくなります。

InputImageは直接処理をするわけではないので、そのままBillboardのImageにつなぎます。

次にストロボ部分の作成です。Clearは白色の単色レイヤーで、これを表示・非表示を切り替えることでストロボ効果を作ります。

Wave Generator (LFO)を呼び出し、Patch InspectorのSettingsから、Typeを「PWM」にします。そのほかの設定は変えなくて良いですが、AmplitudeとOffsetが「0.5」になっていないと動作しないので、確認しておきましょう。
Offsetを中心に、Amplitideの値だけ上下するので、「0」と「1」の値をとることになります。

Wave Generator (LFO) の入力側のPeriodとPWM ratio は外部受け付けをするためにそれぞれ先ほど用意したInput Splitterに接続します。

Wave Generator (LFO) の出力側のResultはClearのEnableに接続します。
通常、Enableはboolearn型のデータを受け取りますが、Quartz Conposerはデータ型が異なっていても数値が合っていれば問題なく接続することが出来ます。今回Wave Generator (LFO) で出力されている数値はfloat型ですが「0」と「1」だけを数値に持つので問題ないということです。

最後に、ストロボのカラーを変えるためにClearのColor情報を変えれるようにします。
Patch Libraryから「RGB Color」を呼び出し、入力出力側を共に接続します。RGB Colorは名前の通りRGBの情報をcolor情報に変更させるパッチです。

これで接続は完了したので、最後に入力のInput Splitterそれぞれを右クリックして、Publishにさせます。
InputImageに関しては入力の名前を「InputImage」にしろとVDMX公式が言っているので公式の表記に合わせておきます。

これで完了です。プロジェクトを保存してQuartz Conposerを終了します。

VDMXへのQC FX Pluginの取り込みと、各種設定

VDMXを起動させ、上部タブの「Help」から「Open Assets Folder in Finder」をクリックしてFinderを開けます。開いたフォルダ内にある「qcFX」という名前のフォルダがVDMXのFX用のqtcファイルの保管場所です。ここに先ほど作成したファイルを突っ込みます。

VDMXにファイルを読み込ませるために、VDMXを一度終了させて再起動させます。
再起動させたら、ストロボエフェクトを入れたいレイヤーのレイヤーFXに先ほど作成したエフェクトを呼び出します。エフェクトは「Misc.QC」と書かれた階層内に増えていると思います。
呼び出したエフェクトのスライダーを適当に動かしてストロボがキチンと動いていればQuartz Conposer側の設定は正しく動いていると思います。

実際にエフェクトを動かすとわかりますが、PWM rateや、Strobe Speedは「0」や「1」の値を使うと画面が真っ白になって使いにくいです。
Quartz Conposer内の設定で範囲指定しても良いですが、今回はVDMX側で調整します。

Strobe Speedのスライダーをアクティブにして、UI InspectorにあるMin/Maxをそれぞれ「0.01」「1.00」にします。
またPWM rateも同様にUI InspectorからMin/Maxを「0.1」「0.5」にします。

Workspace InspectorのPluginsタブからControl Surfaceを呼び出し、Control SurfaceにSliderを1つ作成します。
Strobe SpeedとPWM rateのReceiveをこのSliderから受け付けるようにします。
この際、Strobe Speedはスピードとフェーダーの数値を逆転させた方が使いやすいので、「Invert」にチェックを入れます。
これで1つのフェーダーでPWMとStrobe Speedを同時に操作できるようになりました。

まとめ

ということでPWM Strobeを作りました。

ストロボエフェクトは使いどころで使うとハマりにハマるエフェクトなので、こういった細かいところを調整できるようになると使い勝手がとても良くなりますね。

VDMXカテゴリの最新記事