パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。時々更新!

AVIUTL 用フィルタプラグイン 開発 Equirectangularize

休日を利用して、AVIUTL 用のフィルタプラグインを作ってみた。現在テスト中であるが、一応想定通りうごいているっぽい。

普通のカメラ(スマホとかアクションカメラとか)で撮影した動画を VR 用の動画に変換するためのフィルタ。昨今は、VR 用の動画プレーヤーで同じことがリアルタイムでできるのだが、PSVR で、任意の大きさのスクリーンで再生しようとした際に使えるかな、という、かなりニッチな代物。

一応、3Dステレオと、YouTube 向けに、360度でトップアンドボトムな出力にも対応してみた。AVIUTL に搭載のマルチスレッド機能にも対応しているので、マルチコアやマルチスレッドな環境では、それなりに効率的に働くはず。まぁ、コード自体の最適化は全然できていないので、スキルの有る人ならもっと高速化できそうではある。ピクセルごとに sin, cos を計算しているのは、テーブルにすべきかな。

GUI は、angle でカメラの水平画角を指定。90 とか 120 とか。縦の画角は、入力動画のピクセルが正方形前提で自動計算される。outptYSz は、出力する動画の縦ピクセル数。360 度でステレオの時は、トップボトム形式なのでその倍のピクセル数で出力されるので注意。bg は、スクリーンの範囲外のグレーの明るさ。0 だと真っ黒。4096 だと真っ白。

チェックボックスは、Stereo で、両眼か単眼かの切り替え。入力動画のステレオは、サイドバイサイド前提。左右半分ずつを両眼として扱う。360 の方は、出力を、180x180度ベースか 360x180度ベースかの切り替え。Littlstar では、_360 にするか _180 にするか、の違い。Stereo で 360 も対応してみた。

なぜかわからないが、AVIUTL on WINE on Ubuntu on GCE でも、特に問題なく動くようだ。VisualC++ 2017 のランタイムとか入れたっけ?

使ってみようと思う方は、ここからダウンロードしてください。バグ等で不利益を受けられても無保証ですが。たった 10KB 程度なので、マルウェアの心配も無いはず? オリジナルの MD5 は 0D5BA64C27961417A635EC3BE775CB0E。