AVISynthプラグインを活用しよう

追加編 製作編1 製作編2

追加編:

マンガミーヤは、オフィシャルからダウンロードしたままだとMangaMeeya.dllしかAVISynthプラグインは入っていません。
これだけでもひと通りのことは出来ますが、あらかじめセットされているプロファイルには用意されている定義ファイル(拡張子defのファイル)に合ったプラグインが無いと動かないものがあります。
ということで定義ファイルがあるものだけでも集めてみましょう。やり方は簡単です。
Ver1.7以前のマンガミーヤには今配布していないdllも同梱されています。
著作権やGPLなどへの配慮から現在は同梱されていませんが、同梱されている過去のバージョンは現在もダウンロードできますので、それを利用します。


まずオフィシャルから過去のバージョン(1.7でいいです)をダウンロードしてきます。


解凍し、直下のAvisynthPluginフォルダに入っているmangameeya.dllとconvTo.dll以外のdllファイルをコピーすれば作業完了です。

msvcp70.dll、msvcr70.dllがありませんといったエラーが出たら、mangameeya.exeと同じフォルダに、ver1.7から抜き出したファイルを置いてください。

ただし、上記のdllファイルは古くてバグの残っている可能性もありますので、問題が出た場合はそれぞれの配布先からダウンロードできる最新版を使うことをお勧めします。
これらはそれぞれのファイル名で検索するか、2ch該当スレ・にーやんのAviSynthのぺーじなどから探せます。
一つ一つ調べるのは大変だと思いますので、リンクを載せておきます。

Kiraru2002の部屋:_2DCleanYUY2.dll、ColorYUY2.dll
WereHouse:Lanczos3.dll(Lanczos3Resize)
trbarry.com:SimpleResize.dll
warpsharp:warpsharp.dll
Avisynth filters by Mr.Ty:waveletReducer.dll


製作編1:

こんどは定義ファイルが無いプラグインを追加するときの作業をAddWatermarkを例にして説明します。
これは画像に透かし(ウォーターマーク)を入れるためのプラグインです。
まず用意するファイルはAddWatermark1.dll。これはnullinfoからダウンロードできます。
ダウンロードできたら解凍してAvisynthPluginフォルダに入れておいてください。


AddWatermarkの説明書(AddWatermark.txt)を見ると、AVISynthではこのプラグインはAddWatermark(clip, filename, x, y, intensity)という形式で利用することがわかります。

これをマンガミーヤ用に変換して定義ファイルを作ります。

メモ帳(テキストエディタ)を開いて、一行目にフィルタの名前を書きます。
AddWatermark(clip, filename, x, y, intensity)の"AddWatermark"を[]で囲って[AddWatermark]とします。

二行目以降は括弧の中を変換していきます。

filename = Edit(Default="",Width=120,Line=1,Hint="使用するbmpファイルの場所を指定")
↑=の左側がパラメータの名前、右側がパラメータの種類や入力方法を定めています。
この場合だと文字を入力するので"Edit"というコントロールを使います。
初期値は無いので、Default=""
Width=120、文字入力するボックスの広さ。適当に。
Line=1、段落の数。パスだけなので一行で。
Hint=〜、マンガミーヤ上での設定のガイドとなる文章です。

x = Track(Default=0,Min=0,Max=@width)
y = Track(Default=0,Min=0,Max=@height)
x、yそれぞれ表示する位置の横と縦の場所を表します。
数字を入力するのでコントロールは"Track"を使います。
初期値はとりあえず0なのでDefault=0
最小値はもちろん0なのでMin=0
最大値は画像の端っこなのでMax=@width(@height)
※@〜の説明は、マンガミーヤの定義ファイル説明.txtに詳しく載ってるのでそちらを参照してください。

intensity = Track(Default=50,Min=0,Max=100)
重ね合わせる強さです。
数字を入力するのでコントローラは"Track"を使います。
初期値はとりあえず50でDefault=50
最小値は0なのでMin=0
最大値は100でMax=100

まとめると下のようになります。
[AddWatermark]
filename = Edit(Default="",Width=120,Line=1,Hint="")
x = Track(Default=0,Min=0,Max=@width)
y = Track(Default=0,Min=0,Max=@height)
intensity = Track(Default=50,Min=0,Max=100)
これをAddWatermark1.defという名前でAvisynthPluginフォルダに保存します。

マンガミーヤを起動してメニュー>ツール>Avisynthフィルタ設定を開きます。


左上の「読み込まれたフィルタ」欄にAddWatermarkと出ていれば成功です。


製作編2:

うまく機能しているか実際に使ってみます。

まず、すかしに使うBMPファイルを用意します。
形式は背景が黒で8ビット(256色)グレースケールビットマップファイルでなければいけません。

ここではc:\testに保存してあるabc.bmpとして話を進めます。


AddWatermarkを選択して先頭に登録します。


設定ボタンを押してbmpファイルの場所や他のパラメータを設定します。
今回はc:\test\abc.bmpとします。bmpファイルの場所に応じて変えてください。
他のパラメータはそのままでいいです。


マンガミーヤにファイルを読み込ませます。(今回はわかりやすくするために青一色の画像を読み込んでいます)


しかしエラー: AddWatermark : YUY2, YV12 onlyというエラーが出て画像が表示されないとおもいます。
これはAddWatermarkはYUY2、YV12という形式のデータしか受け取れないということを示していますので、


YUY2へ変換をAddWatermarkの前に追加します。
と、またエラー: 出力画像のピクセルフォーマットはRGB24,RGB32,GRAYSCALEでなくてはいけませんというエラーが出ます。
Avisynthプラグインを通してからマンガミーヤに渡す時のデータの形式はRGB形式でなければいけないので、


RGB32に変換をAddWatermarkの後ろに追加します。
環境によってはRGB24に変換を使わないといけないかもしれません


うまくいくと、画面左下にabc.bmpの形に透かし(ウォーターマーク)が出てきます。
ひっくり返って表示されるのはアレだけど…(−−;)

x、y、intensityをいじることで変化するので試してみてください。

以上で終わりです。ちゃんと動いたでしょうか。

1