AddRange

説明

AddRange関数は、VirtualDub(VirtualDubMod含む)の編集設定ファイル(vcfファイル*1)を利用して、選択範囲を指定するための関数です。2ちゃんねるDTV板「DivX & Avisynth を絶賛しよう 3」スレッドの236さんが作成されました。

同名のAddRangeプラグインと同様の機能を持つ関数ですが、使用方法は異なります。詳しくは、下記の使用例をご覧下さい。

関数

オリジナル版

function AddRange(clip clip, int "startframe", int "offset")
{
return clip.Trim( default(startframe,0), ((default(offset,0)==0) ? 0 : startframe+offset-1) )
}

簡略化版

function AddRange(clip clip, int "startframe", int "offset")
{
return clip.Trim( startframe, -offset)
}

こちらを使用する場合は、AviSynth 2.0.7以降を使用してください。*2

書式

AddRange(clip clip, int "startframe", int "offset")
  • 引数
    • startframe: 開始フレーム
    • offset: オフセット

使用例

1.vcfファイルの作成

まず、VirtualDub上で編集作業を行い、vcfファイルを出力します。

vcfファイルの作成方法については、AddRangeプラグインの使用手順の(1)〜(3)を参考にしてください。

2.AddRange()の抽出

dd_vcf.png

1で作成したvcfファイルを、メモ帳で開きます。メモ帳のウィンドウ上に、vcfファイルのアイコンをドラッグ&ドロップするなどして開いてください。

vcfファイルには

VirtualDub.subset.AddRange ( *** , *** )

のように記された部分が含まれていると思います。もし含まれていない場合は、オリジナルFAQの「AddRangeプラグインが使えません」を参照。

vdubmod_vcf.png

このうち、AddRange()の部分(図の赤丸で囲んでいる部分)*3をコピーして、AVSファイル内の選択範囲を指定したい行に貼り付けてください。

選択範囲が複数ある場合は、次のように + または ++で連結する形で記述します。+ と ++ の違いについては、オリジナルFAQの「+と++の違いは何ですか?」を参照。

AddRange(0,6) + AddRange(13,3) + AddRange(20,4)

3.スクリプトの更新

AddRange関数をスクリプト内の任意の位置に貼り付けるか、別途、関数定義ファイルにしてImportします。

  • 使用例1: 1スクリプト内に記述する場合
    AddRange(0,6) + AddRange(13,3) + AddRange(20,4)
    
    function AddRange(clip clip, int "startframe", int "offset")
    {
    return clip.Trim( default(startframe,0), ((default(offset,0)==0) ? 0 : startframe+offset-1) )
    }
    
  • 使用例2: 外部ファイル化してインポートする場合
    Import("AddRange.avs")
    AddRange(0,6) + AddRange(13,3) + AddRange(20,4)
    

あとは、AVSファイルを上書き保存して、VirtualDubで開きなおしてください。VirtualDubModを使用している場合は、スクリプトエディタ上で[F5]キー(または[F7]キー)を押すことで、選択範囲が適用されます*4


*1 VirtualDub Configuration File
*2 AviSynth 2.0.7よりも古いバージョンには、Trimの2つ目の引数が負の値の場合に、正しい値が適用されないバグがあるため。
*3 最後の;(セミコロン)は必要ありません。
*4 [F5]キーで正常に選択範囲が反映されない場合は、AVSファイルを開き直してみてください。

最終更新日時: 2014-03-11 (火) 03:43:01 (2021d)