Dustプラグイン使用時の注意
前のページでフィールド別にフィルタをかける方法を紹介しました。
この方法では、トップフィールドとボトムフィールドのそれぞれにフィルタをかけるため、フィルタ(プラグイン)を2回呼び出す必要があります。
しかしながら、例外的に1スクリプト内で一度しか呼び出すことのできないフィルタも存在します。Dustプラグインに収録されているフィルタ(FaeryDust、PixieDustなど)がそうです。
これらのフィルタを、前のページで紹介した方法でフィールド別にかけようとすると、不具合が発生してしまいます。
この方法では、トップフィールドとボトムフィールドのそれぞれにフィルタをかけるため、フィルタ(プラグイン)を2回呼び出す必要があります。
しかしながら、例外的に1スクリプト内で一度しか呼び出すことのできないフィルタも存在します。Dustプラグインに収録されているフィルタ(FaeryDust、PixieDustなど)がそうです。
これらのフィルタを、前のページで紹介した方法でフィールド別にかけようとすると、不具合が発生してしまいます。
[スクリプト例]
|
|
試しに左のビデオクリップに、上記のスクリプトを実行してみました。 |
|
すると、エラーこそ出ないものの、左の画像のようになってしまいました。 どうやら、1フレーム目の画像が挿入されてしまったようです。 |
Dustプラグインをフィールド別に使用する方法
フィールド別にDust系のフィルタをかけるためには、それぞれのフィールドごとにDustプラグインを呼び出さなければなりません。
しかし、1つのDustプラグインからDust系のフィルタを2回呼び出すと、不具合が発生してしまいます。
この不具合を回避するためには、1つのDustプラグインを使用するのではなく、各フィールドごとに呼び出すプラグインを分ける必要があります。
つまり、Dustプラグインを2つ使うのです。
具体的には、次のような手順を取ることになります。
しかし、1つのDustプラグインからDust系のフィルタを2回呼び出すと、不具合が発生してしまいます。
この不具合を回避するためには、1つのDustプラグインを使用するのではなく、各フィールドごとに呼び出すプラグインを分ける必要があります。
つまり、Dustプラグインを2つ使うのです。
具体的には、次のような手順を取ることになります。
|
関数については、ユーザー定義関数のページやスクリプト入門で解説していますので、参考にしてください。
ただし、Dust系のフィルタをフィールド別にかける場合に限定するならば、次の[使用例]を自分の環境などに合わせて修正するだけでも構わないでしょう。
ただし、Dust系のフィルタをフィールド別にかける場合に限定するならば、次の[使用例]を自分の環境などに合わせて修正するだけでも構わないでしょう。
[使用例]
|
Dust5が関数の名前、「function Dust5」以下が関数です。
関数には任意の名前を付けられるため、Dust5という名前である必要はありません。変数同様、名前に使用できる文字は半角英数字(アンダースコア含む)です。ただし数字から始まる名前は使えません。
関数には任意の名前を付けられるため、Dust5という名前である必要はありません。変数同様、名前に使用できる文字は半角英数字(アンダースコア含む)です。ただし数字から始まる名前は使えません。
|
関数内でDustプラグインのコピーを読み込んでいます。
パスは環境に合わせて変更する必要があります。
AviSynthデフォルトのプラグインからリネームしたDustプラグインを読み込む場合は、次のように記述します。
パスは環境に合わせて変更する必要があります。
AviSynthデフォルトのプラグインからリネームしたDustプラグインを読み込む場合は、次のように記述します。
|
これで、関数内のDust系フィルタは、関数内で読み込んだプラグインから呼び出されることになります。
最終更新日 2004年4月19日