return last

return lastとは何か?

return文

「return *」(*はクリップ)は、return文です。

AviSynthでは、クリップ*1をアプリケーションに戻すための命令文として使われます。言い換えると、あるアプリケーションでAVSファイルを開いたとき、return文で指定したクリップが表示されます。

特別な変数last

AviSynthでは、

変数名 = クリップ

という形で、クリップに変数を割り当てることができます*2。ただし、変数の指定は、かならずしも必要というわけではありません。

そして、lastは、変数を指定しなかった場合にクリップに割り当てられる、特別に予約された変数です。

return last

つまり、return lastは「最後に処理したクリップ(=last)を戻す」ことを表し、その直近の(変数指定されていない)クリップをアプリケーションに渡します。

AviSource("foo.avi")
return last

上の例では、lastは「AviSource("hoge.avi")」です。このスクリプトは、次のように書き換えることも可能です。

last = AviSource("foo.avi")
return last

よって、このスクリプトをアプリケーションで開くと、return文の直近のクリップ(last)である「AviSource("hoge.avi")」をプレビューすることができます*3

return lastは省略可能

return lastは省略することが可能です。

AviSource("foo.avi")

もし、さきほどのスクリプトが正常に動作するなら、このように変更しても問題ありません。

return lastが必要なケース

ただし、以下のようなケースでは、return文がないとエラーが出ます*4

# 例1: 最後の1行が変数
AviSource("foo.avi")
video = AviSource("bar.avi")
# 例2: 最後の1行がビデオフィルタ以外のフィルタ
AviSource("foo.avi")
LoadPlugin("baz.dll")

このように、AVSファイルの最後の1行がreturn文とクリップのいずれでもない場合には、「return last」(上の例の場合は「return video」でも可)が必要となります。

AviSource("foo.avi")
video = AviSource("bar.avi")
return last # return videoでも可

*1 おもにビデオクリップ。
*2 同様に、変数に数値や文字列を入れることもできます。
*3 AVIファイルのプレビューには、コーデックが必要となる場合があります。
*4 エラーのタイプを参照。

最終更新日時: 2014-03-11 (火) 03:50:47 (3693d)