チュートリアル8

シンプルなミキシング


2つのビデオソースのミキシング

ビデオを扱う場合の最も一般的で役に立つことの1つに、2つの映像のミキシングがあります。

最も単純な形のビデオミキシングは、単に2つのイメージ各々の強さを好みの割合に調節して加算するだけでできます。1つのイメージの強さを弱めながら、もう1つのイメージを強くしていくと、1つのイメージから他のイメージへのスムーズなクロスフェードを行うことができます。

Jitterには、ミキシングとクロスフェードを行うことができるjit.xfadeというオブジェクトが用意されています。

技術的な詳細:このタイプのミキシングは、一方のマトリクスの個々の値と、もう一方のマトリクスの対応する値を、セルごと、プレーンごとにすべて加算し、その全ての結果によるマトリクスを出力することを意味します。しかし、これを単にそのまま行った場合、全ての値は入力されるどちらのイメージよりも大きくなってしまうため、結果として、出力されるイメージはオリジナルより明るいものになります(さらに、マトリクスがcharデータによるものである場合、いくつかの値が255でクリップされてしまうかも知れません)。従って、普通は加算を行う前に一方、あるいは両方のイメージの強さをあらかじめ縮小します。例えば、2つのイメージを等しくミックスしようとする場合、加算を行う前に双方を同じだけ(係数0.5を掛けるなどして)縮小しておきます。

 

jit.xfadeオブジェクト

jit.xfadeオブジェクトは2つのインレットそれぞれにマトリクスを受け取り、各々のマトリクスの値を特定の量だけ縮小(スケール)し、2つのマトリクスを加算してミックスされた結果をマトリクスとして出力します。入力される2つのマトリクスそれぞれに対する縮小率は、オブジェクトのxfadeアトリビュートによって決定されます。xfadeの値は、0〜1の間の1つの(floatによる)数値をとります。この値は右インレットに入力されるマトリクスに対する縮小率を決定します。左インレットに入力されるマトリクスに対する縮小率は1 - xfade になります。そのため、xfadeの値を0から1へだんだんと増加させていくと、出力されるマトリクスは、左の入力イメージから右の入力イメージへのクロスフェードになります。

・Jitter Tutorialフォルダの08SimpleMixingというチュートリアルパッチを開いて下さい。2つのソースとなるビデオはloadbangオブジェクトによって自動的に読込まれます。metroオブジェクトをスタートさせて下さい。最初は左のビデオだけが見えると思います。hsliderをドラッグしてxfadeの値を変化させて下さい。これによって、左と右のマトリクスをミックスさせたものを見ることができます。


値が0.5の場合、左と右のマトリクスが等しくミックスされたものになります


クロスフェードの自動化

クロスフェードは1つのイメージから他のイメージにトランジション(転換)を行うもっとも一般的な方法の1つです。クロスフェードは数秒をかけて非常に緩やかに行われる場合も、また、ジャンプカット(画面を飛ばすこと)より若干スムーズな突然の転換を行うためにコンマ何秒というような短い時間で非常に素早く行われる場合もあります。

パッチの左上の部分では、ビデオAからビデオBへ(またはその逆)への自動的なクロスフェードを用意してあります。クロスフェードにかかる時間はどのようにでも設定できます。これは、ナンバーボックスでTransition time を指定することによって行うことができます。


連続的に変化するxfadeの値を送信するための自動処理

・クロスフェーダーの効果を見ることができるように、ナンバーボックスで緩やかなトランジションタイム(5000ミリ秒など)を設定して下さい。Go to スイッチの右側をクリックして、ビデオBへフェードさせて下さい。

Go To スイッチは、実際にはrange(値の範囲)が2で、multiplier(値に掛けられる係数)が100の小さなHsliderです。このため、0と100という2つの値だけを送信することができます。スイッチの右側をクリックすると値100を送信し、packオブジェクトは100 5000 というメッセージを送信します。そしてline オブジェクトは0から100までの連続した値(50ミリ秒ごとに1つの新しい値)を5秒間かけて送信します。これらの値には0.01が掛けられ、0から1までのスムーズな変化を作り出します。


まとめ

2つのマトリクスの加算は、ビデオイメージのA-Bミキシングを行う簡単な方法です。2つのイメージを望むようなバランスにするためには、最初に各々のマトリクスにある係数を掛け合わせておく必要があります。一方のイメージに対する係数(縮小率)を1から0へ減少させた分だけ、もう一方のイメージに対する係数を0から1へ増加させることによって、あるイメージから他のイメージへのクロスフェードを行うことができます。

jit.xfadeオブジェクトを使うと、は2つのマトリクスのミックス、そしてクロスフェードを簡単に行うことができます。このオブジェクトのxfadeアトリビュートは2つのマトリクスのバランスを決定します。xfadeの値を連続的に0から1へ変化させるとスムーズなA-Bクロスフェードを行うことができます。lineオブジェクト、あるいは他の、Max内の時間を調節するオブジェクトを利用して、クロスフェードを自動化することができます。