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でも可