フィルタの書式

フィルタの書式

フィルタの書式は、

フィルタ名(引数リスト)

という形で表されます。

MessageClip(string message, int width, int height, bool shrink, int text_color, int halo_color, int bg_color)

これはMessageClipフィルタの書式です。

この場合、MessageClipがフィルタ名、括弧の中に書かれているのが引数リストということになります。

引数リストについて

引数型 引数名

引数リストは、引数型と引数名が、対の形で記述されます。*1引数型は、その引数がどのようなタイプのものであるかを示すものであり、引数名はその引数の名前を表します(引数型については「引数型」のページを参照)。

string message

MessageClipの1つ目の引数の場合、stringが引数の型で、messageが引数の名前です。言い換えると、1つ目の引数は、messageという名前で、その引数型はstring型である、ということになります。

フィルタ名(引数型1 引数名1, 引数型2 引数名2, 引数型3 引数名3, ...)

引数が複数ある場合は、コンマ区切りで、右へつづけて書きます。引数の数は、フィルタによって異なります。

つまり、MessageClipフィルタの場合、message、width、height、shrink、text_color、halo_color、bg_colorという7つの引数があり、引数messageはstring型、引数shrinkはbool型で、それ以外の引数はint型であるというわけです。

フィルタの記述例

実際にフィルタを記述する方法を紹介します。ここでは例として、MessageClipフィルタを使い、「Hello World!」というメッセージつきのビデオクリップを作成します。

すべての引数を指定する

MessageClip("Hello World!", 240, 135, true, $0000ff, $ff0000, $00ff00)

書式通りに、すべての引数を指定した場合の例です。

次の点に注意してください。

  • 1つ目のmessageはstring型であるため、二重引用符で囲んでいます。
  • widthとheightはint型なので、整数で指定しています。
  • 4つ目の引数shrinkはbool型なので、trueまたはfalseのいずれかを指定します。
  • 残りの3つの引数は、widthやheightと同様のint型です。ここでは色指定しやすいように、HTMLのカラーコードなどで使われる16進数で指定しています*2

hello007_bg_color.png
上のスクリプトをプレビューすると、このような画像が表示されます。

引数を省略する

MessageClip("Hello World!")

message以降の引数は省略されています。引数が省略された場合は、デフォルト値が適用されます*3

hello001_hello_world.png
そのため、上のスクリプトをプレビューすると、このような画像が表示されます。

MessageClip("Hello World!", 240, 135)

widthとheightまで指定しました。

hello002_size_specified.png
すると、widthとheightには指定した値が適用され、text_color以降の引数にはデフォルト値が適用されます。

ただし、このように、ある引数以降をすべて省略する場合はいいのですが、単純に引数を省略できない場合もあります(下記参照)。

名前付き引数で指定する

たとえば、あなたが、width、height、shrinkの3つの引数を省略したいと考えたとします。そのとき、次のように記述したとしたら、どうなるでしょうか。

MessageClip("Hello World!", $0000ff, $ff0000, $00ff00)

width、height、shrinkの部分を、そのまま削除して、text_color以降を左にずらしたものです。実は、これをプレビューしようとすると、以下のようなエラーが発生します。

hello008_invalid_argument.png

Script error: Invalid arguments to function "MessageClip"(スクリプトエラー: 関数"MessageClip"に不正な引数)

これは、引数の指定の仕方が誤っている場合に発生するエラーです(「エラーのタイプ」を参照)。この場合、4つ目の引数は、本来、bool型であるべきにもかかわらず、int型の$00ff00が渡されていることが原因です。

このような省略の仕方をしたい場合は、名前付き引数を使います。名前付き引数を使えば、自由な順番で、引数を指定することができるようになります。

名前付き引数は、

引数名 = 値

という形で指定します。

MessageClip("Hello World!", text_color=$0000ff, halo_color=$ff0000, bg_color=$00ff00)

さきほどのスクリプトを名前付き引数を使って書き換えると、このようになります。

hello009_argument_specified.png
プレビューすると、このような画像が表示されます。省略された引数には、デフォルト値が適用されています。


*1 例外的に、clip型の引数clipがある場合に、一方を省略して、単にclipと書かれていることもあります。
*2 参考: ColorPresets
*3 フィルタにデフォルト値が設定されていない場合は、省略することができません。

最終更新日時: 2005-06-07 (火) 23:29:23 (6895d)