FinalCut Pro 7編 オリジナルのフィルタを作る(4)

FinalCut Proでオリジナルフィルタを作成するシリーズの最終回です。今回は、映像の上に中心線を描画するスクリプトです。これまでは四角形を描画しましたが、今度は線を描画します。実際に中心線を描画するスクリプトが以下になります。


scriptid "GreenLine"
filter "十字線";
group "自分のフィルタ";

input borderWidth, "線幅", slider, 1 , 0, 100;
input borderColor, "線の色", color, 0 , 0, 255, 0;

code
point pt1,pt2;
float x,y;

Dimensionsof(dest, x, y);
// 縦線
pt1.x = 0;
pt1.y = -y/2;
pt2.x = 0;
pt2.y = y/2;
Line(pt1, pt2, src1, borderColor, borderWidth);
// 横線
pt1.x = -x/2;
pt1.y = 0;
pt2.x = x/2;
pt2.y = 0;
Line(pt1, pt2, src1, borderColor, borderWidth);
blend(src1, src1, dest, 50);



線はあらかじめ座標点を示すpoint型の変数を用意しておきます。線は2つの座標点が必要ですから、ここではpt1, pt2としています。このpt1のx, yプロパティに座標値を設定します。

今回は映像の端から端まで線を描画するのですが、肝心の映像の幅が分かりません。ちなみに、-9999とか9999など完全にはみだす数値を指定し線を描画させてしまう方法もあります。

とは言っても、映像のサイズが分からないと不便なことは多々あります。FXScriptでは、映像の幅をDimensionsof()で取得することができます。最初のパラメータには取得したい映像ソースを、2番目には横幅を入れる変数、3番目には縦幅を入れる変数を指定します。あとは、変数を参照して線の座標を設定すればできあがりです。

なお、FinalCut ProのFXScriptで作成されたプラグインは以下のサイトにたくさんあります。

http://audience.studio-web.net/
[サンプルをダウンロード]