「AviUtl with Motion Tracking MK-II and Mosaic」の続き。
Motion Tracking MK-II の吐く「部分フィルタ」のデータは全フレームについて作成される。
後で使うときには補完機能も利用できるので、実際は数フレーム毎の飛び飛びの中間点でも十分使える。
モザイクを入れる場合、途中でモザイクのサイズを変更するなら、フレーム単位の区切りだと設定がかえって面倒だ。
Motion Tracking MK-II の吐くexoファイルを見てみたらテキスト・ファイルだった。
これなら自分で編集できそうだと思った。
考えられる方法は2つ。
1.モザイクのサイズのデータを、もとのexoファイルの各フレームに追加する。
2.フレームを間引いて中間点の数を減らし、モザイクのサイズは手作業で変更し補完機能を利用する。
モザイクのサイズの変更は、画像を見ながら変更するポイントを決めなければならない。
そのため、1の方法だと煩雑になる。
よって、2の方法を検討してみることにした。
下がMK-IIの吐くデータのexoファイルの1中間点分だ。
[数字]で始まる21行分
下は300フレームの動画に60フレーム間隔で中間点を手作業で入れてみたもののexoファイルの1中間点分。
比べると先頭の[###]はフレーム数でなく通し番号だとわかる。
さらに、
start=###が区間の開始のフレーム
end=###が区間の最後のフレーム
をあらわしているらしい。
間引くならこの###の部分も書き直す必要がありそうだ。
以上を参考に、錆びついたVB6の知識に鞭打ってデータを間引くプログラムを作った。
上が間引く前。
下が間引いた後だ。
これならモザイクの大きさを手作業で変更してもさほど苦にならないだろう。
そもそも、矩形の位置やサイズを手で変更していたのを思えば雲泥の差だ。
それより、Win10環境でもVB6の開発環境がまともに動くことに驚いた。
PICとかArduinoとかばかりでVB6はだいぶやってなかったが、こういうちょっとした作業には十分だなと思う。