GScript

GScript とは

  • AviSynth スクリプト言語を拡張するプラグイン。
  • 複数行の if 〜 else ブロック、while ループ、for ループを利用可能にする。
  • Gavino 氏作。

GScript で利用可能な構文

実際の利用方法については、下記の「利用方法」を参照。

if 文

条件文。

# 例(GScript.htm より(日本語訳は引用者による。))
if ( 条件 ) {
  文
}
else {
  文
}

else 文は省略可。

# 例(GScript.htm より)
if ( 条件 ) {
  文
}
else if {
  文
}
else {
  文
}

このようにすれば、else if も使える。

while 文

ループ

# 例(GScript.htm より)
while (条件) {
  文
}

for 文

ループ。

for ( 変数 = init , limit , step ) {
  文
}
  • init (初期値)、limit (上限/下限)、step (増減値)はすべて整数(step は非ゼロ)。
  • limit を超えるか、下回るまで繰り返し。
  • step はオプションで、デフォルトは 1。

収録関数

  • GScript
    • GScript 拡張を引数に取る。
  • GImport
    • 標準の Import() に似ているが、GScript 拡張をサポートしている。
  • GEval
    • 標準の Eval() に似ているが、GScript 拡張をサポートしている。

利用方法

以下の方法のいずれかを使って、if 〜 else 文、while 文、for 文が利用できる。

1, GScript() 関数の中に記述する方法

# 例(GScript.htm より)
GScript("""
if (i > 10) {
  x = 1
  y = 2
  z = 3
}
else {
  x = 4
  y = 5
  z = 6
}
""")

MT() で複数のフィルタを指定するときのように。

2. GImport() 関数を使ってインポートする方法

# 例(GScript.htm より)
GImport("MyGScript.avs")

GImport() は、標準の Import() に似ているが、インポート対象のファイル内での GScript 拡張の使用をサポートしている。1 の方法と違い、MyGScript.avs の中では if 〜 else 文など GScript で追加された構文を直接記述できる。

メモ

  • GScript 呼び出しの中で、通常の AviSynth スクリプトを記述することも可能。
  • GScript 環境の中で宣言された関数は外部から呼び出せる。逆もまた然り。
  • すべて式ではなく(try 〜 catch のように)複合文なので、代入の右辺には使えない。
  • ループは「コンパイル時」構文。ランタイムフィルタグラフにループはなく、グラフの構築においてのみ存在(再帰関数のように)。
  • v1.1 から、波括弧({)前のコメントが可能になりました。

関連リンク

最終更新日時: 2014-03-11 (火) 03:48:03 (3862d)