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

今回はFinalCut Proでオリジナルのフィルタを作成してみます。と言っても書いている本人も勉強しながらなので、おかしな部分もあるかもしれません(理解しきれていない部分は多々ありますので・・・)。おまけに、すでにFinalCut Pro Xがでているという状況なので、原稿を出すタイミングを間違えたかも、と思ったりもしてます。が、FinalCut Pro Xは以前のバージョンとは全く別もので、簡単に乗り換えることができない人も多いかと思います。それは、ともかくFinalCut Pro 7やそれ以前のバージョンを使っている人も多いでしょうから、このネタも何らかの役に立つかもしれません。

という事で本題に入ります。まず、FinalCut Proでフィルタ処理を行う場合にはツールメニューからFXBuilderの項目を選択します。すると、FXBuilderテキストエントリというウィンドウ(タブ)が表示されます。ここにスクリプトを入力します。ここで入力するのはFXScriptと呼ばれています。FinalCut ProのフィルタでもFXScriptで作成されているものが多くあり、FXBuilderで開いて中身を見ることができます。
それでは、簡単なところから作ってみましょう。とりあえず緑の四角を描くスクリプトを作成します。実際のスクリプトは以下のようになります。


scriptid "GreenRect"
filter "緑の四角";
group "自分のフィルタ";

code
point rectPoint[4];
MakeRect(rectPoint, -50, -50, 100, 100 );
FramePoly(rectPoint,dest, kGreen ,10 );


FXScriptは3つの部分に分かれています。1つがフィルタのカテゴリや名前を指定するヘッダー部分、2つ目が入力値を指定するスライダーなどUI部分、3つ目が実際のコードになります。上記の場合はUI部分がないのでヘッダーとコード部分の2つになります。
まず、ヘッダー部分ですがscriptidにはフィルタの固有の名前を割り当てます。次のfilterにはエフェクトウィンドウ上に表示されるフィルタ名を指定します。groupにはフォルダ名(カテゴリ名)を指定します。既存のカテゴリを指定することもできますし、新しいカテゴリ名を指定することもできます。
ヘッダー部分が終わったら以後が実際のプログラムコードだ、という事を示すcodeという1行を書きます。これで以後に続く内容がプログラムだと解釈されます。
さて、緑の四角を描くには(x1,y1)-(x2,y2)と4つの座標点が必要になります。この点を入れておく入れ物を用意します。座標点はpointの後に変数名を必要な座標点の数を指定します。
用意した点に座標を入れるにはMakeRect()を使います。これはまとめて四角形の座標を設定できる命令です。最初のパラメータに変数名、以後は(x1,y1)-(x2,y2)の順番で座標点を指定します。なお、原点は映像の中心になっており、右下にいくに従って座標値は大きくなります。
最後にFramePoly()を使って四角形を描きます。最初のパラメータに座標点がある変数を、2番目が四角形を描画する先、3番目が描画する色、最後が線の幅になります。ここで、いきなりdestとkGreenという変数名がでてきます。これらはあらかじめFinalCut Pro側で用意(定義)されているものです。destは表示されている映像を示しています。つまり映像上に描画する場合にはdestを指定すればよいことになります。
kGreenのように小文字のkで始まる変数名は、多くの予約語があります。kの後に色の名前を指定することができます。kRedなら赤、kWhiteなら白色を示すことになります。

無事に入力が終わったらコマンドキーとKキーを押してください。小さいウィンドウが表示され緑色の四角形が表示されるはずです。スクリプト中の数値や色名などを変えてみると、よいでしょう。

[サンプルをダウンロード]