ユーザー定義関数の使い方
ユーザー定義関数を使用するための方法には、次の2つがあります。
1.メインスクリプトの任意の位置に貼り付ける方法 †
1つ目の方法は、1スクリプト内で、関数の定義と実行の両方を行う方法です。
以下の手順で行います。
- メインスクリプト*1内の任意の行に、使用したい関数の「function」から「}」(右中括弧)までの部分(以下、関数の定義部分と記載)を貼り付けます。
- その関数を使用したい行に、関数の実行(設定)行を記述します。
- 例:
AviSource("hoge.avi") # ソースクリップ FilterRange(100, 199, "TomsMoComp(1,5,1)") # 関数の実行行 return last # 以下、関数の定義部分(他の位置に貼り付けてもよい) function FilterRange(clip "clip", int "start", int "end", string "filter") { c1 = start < 2 ? clip.trim(0, -1) : clip.trim(0, start - 1) c2 = Eval("clip.trim(start, end)." + filter) c3 = clip.trim(end + 1, 0) c = start == 0 ? c2 : c1 + c2 c = end == 0 ? c : c + c3 return c }
- 註:
関数の実行行は、関数の書式にしたがって記述されなければなりません。関数の書式は、関数の定義部分の「関数名(引数リスト)」から知ることができます。これはフィルタの書式と同様の形式です(フィルタの書式を参照)。
2.外部ファイル化してインポートする方法 †
もう1つの方法は、関数の定義部分を別の外部ファイル(以下、関数定義ファイルと記載)にして、メインのスクリプトにImportする方法です。
上で紹介した1スクリプト内に記述する方法では、複数の関数を利用する場合に、スクリプトが長くなり、見づらくなってしまいます。それに対し、こちらの方法では、関数の定義部分と実行行を分けるため、メインスクリプトが煩雑になるおそれはありません。
以下の手順で行います。
- 関数の定義部分をメモ帳にコピー&ペーストします(複数の関数の貼り付けも可)。
- 関数定義ファイルを、名前を付けて保存します。拡張子は、avsやavsiなどとしてください。
- メインスクリプト内に関数定義ファイルのImport行と関数の実行行を記述します。
- 例:
- メインスクリプト
AviSource("hoge.avi") # ソースクリップ Import("myFunctions.avs") # 関数定義ファイルのインポート FilterRange(100, 199, "TomsMoComp(1,5,1)") # 関数の実行行 return last
- メインスクリプト
- 関数定義ファイル(myFunctions.avs)
function FilterRange(clip "clip", int "start", int "end", string "filter") { c1 = start < 2 ? clip.trim(0, -1) : clip.trim(0, start - 1) c2 = Eval("clip.trim(start, end)." + filter) c3 = clip.trim(end + 1, 0) c = start == 0 ? c2 : c1 + c2 c = end == 0 ? c : c + c3 return c }
最終更新日時: 2014-03-11 (火) 03:51:27 (3927d)