AviUtlでAviSynthフィルタの設定を行う
概要 †
warpsharpパッケージに収録されているavsfilter.dllを使用することによって、AviUtlやVirtualDub(VirtualDubModなどを含む)上で、AviSynthフィルタ(プラグイン)の設定を行えるようになります。
このページでは、avsfilter.dllを利用して、AviUtlでAviSynthフィルタの設定を行う方法を紹介します。
VirtualDubを使用する場合については、VirtualDubでAviSynthフィルタの設定を行うを参考にしてください。
必要なもの †
avsfilter.dllを含めた、次の3つのファイルを用意してください。
- avsfilter.dll
- avsfilter.auf
- avsfilter用定義ファイル(*.auf.avs*1)
avsfilter.dllとavsfilter.auf、およびavsfilter用定義ファイルのサンプルは、warpsharpパッケージに収録されています。warpsharpパッケージを入手してください。
warpsharpパッケージの入手先については、warpsharpパッケージのページを参照。
avsfilter.dll / avsfilter.auf †
warpsharpパッケージをダウンロードし、CABファイル(warpsharp_20xx_xx_xx.cab)を展開すると、avsfilter.dll、avsfilter.auf、avsfilter.vdfの3つのファイルが見つかると思います。
このうち、avsfilter.vdfはVirtualDub用のファイルですので、ここでは使用しません。avsfilter.aufとavsfilter.vdfを間違えないように気をつけてください。
avsfilter用定義ファイル(*.auf.avs) †
avsfilter用定義ファイルのサンプルは、warpsharp_20xx_xx_xxフォルダより2つ下層のサブフォルダ(samples -> avsfilter)の中にあります。
2003年11月3日版のwarpsharpパッケージには、ColorYUY2(YUV用とRGB用)、EraseGhost、WarpSharpの各フィルタ用の定義ファイルが収められています。
これらのサンプルを参考にして、そのほかのフィルタの定義ファイルを作成することも可能です。
なお、*.vdf.avsはVirtualDub用のファイルですので、ここでは使用しません。*.auf.avsと*.vdf.avsを間違えないように気をつけてください。
avsf_pack †
nullinfoで、avsfilter用定義ファイルパックのavsf_packが配布されています。
avsf_packには、DeDot用など十数種類のavsfilter用定義ファイルが含まれています。
avsfilter用定義ファイルを作る †
サンプルや avsf_pack に含まれていないフィルタも、自分で定義ファイルを作成することによって avsfilter で利用することが可能になります。
詳しくは、avsfilter用定義ファイルの作成方法を参照してください。
avsfilterの導入手順 - WarpSharpフィルタ(warpsharp.dll)の場合 †
warpsharpプラグイン(warpsharp.dll)内蔵のWarpSharpフィルタの場合を例に、avsfilter.dllの導入手順を説明します。
1.avsfilter.dllのコピー †
まず、avsfilter.dllをaviutl.exeと同じフォルダにコピーします。
2.avsfilter用定義ファイルの修正 †
avsfilter用定義ファイル(この場合は、WarpSharp.auf.avs)を開いて、一行目を、あなたが使用したいプラグインのパスになるように修正します。
3.aufilter.aufとavsfilter用定義ファイルのコピー †
avsfilter.aufと上記2で修正したavsfilter用定義ファイルを、AviUtlのプラグインディレクトリにコピーします。その際、avsfilter.aufのオリジナルは、そのまま残しておいたほうがいいでしょう*2。
AviUtlのプラグインディレクトリは、AviUtl97f以前ならaviutl.exeのあるフォルダ、AviUtl98以降ならaviutl.exeのあるフォルダ、または、その下層のPluginsフォルダのいずれかです。
そして、avsfilter.aufをavsfilter用定義ファイルのファイル名と同じ名前に変更します。WarpSharp.auf.avsの場合は、avsfilter.aufをWarpSharp.aufにリネームします。
4.AviUtlの起動 †
AviUtlを起動します。
すると[フィルタ]メニューと[設定]メニューの中に、WarpSharpフィルタが追加されています。
このときメニューに表示されるのは、avsfilter用定義ファイル二行目の二重引用符(")に囲まれている部分です。必要があれば、この部分も変更してください。
5.フィルタの設定を行う †
AviUtlの[設定]メニューから、設定したいフィルタ(この場合、WarpSharp)を選択します。すると、設定用のウィンドウが開きます(図はAviSynth用WarpSharpフィルタのもの)。
設定ウィンドウ右上のチェックボックスをONにするとフィルタが有効になります。この状態で、各パラメータのスライドバーを動かして、フィルタの設定を調節します。
6.クリップボードにコピー †
パラメータの調整が済んだら、[書式をクリップボードへコピー]ボタンをクリックします。上記5で行った設定が、WarpSharpフィルタの書式でクリップボードにコピーされます。
7.AVSファイルにペースト †
AVSファイルのWarpSharpフィルタを使用したい行に貼り付けます。
ちゃんと5で設定したとおりのパラメータで、スクリプトを挿入することができました。
備考: AviUtlのフィルタとして使用する †
上で紹介したのは、AviUtl で AviSynth のフィルタを設定し、その設定値を AviSynth で利用するというものでした。しかし、この方法を使えば、AviSynth のフィルタを AviUtl のフィルタとして使用することも可能になります。
ただし、AviUtl <-> AviSynth の色空間変換時のサンプリングの影響で、色がずれて見えるようになります(色差情報の補間が行われないため)。この問題は、AviSynth のフィルタを適用した後に、YUY2アップサンプリング を使用することで回避することができます。
詳しくは、seraphyのとりあえず設置掲示板 [One Message View / Re[1]: warpsharpのavsfilterについて]、および、オリジナルFAQ の「AviUtl で AviSynth のフィルタを使おうとするとピクセルがずれて境界の色が汚くなる」を参照してください。