カメラを買わずにARToolkitで遊びたい!

ちょっと長いので、結論だけ知りたい方は次の記事を参照のこと。

  1. ニコニコ動画YoutubeARToolkitやPTAMといった技術を知った
  2. おもしろそう!ぼくもやってみたいよっ
  3. でもお金がないからカメラが変えないや……。
  4. デジカメやケータイでなら動画を撮影できるけど、これを生かす方法はないかな?
  5. 動画ファイルを読み込めたらデバッグにも便利だよね

という発想を経て、仮想ビデオキャプチャバイスを探すことにしました。もちろんフリーソフトを探します。でないと本物のカメラを買った方が早いですから。


検索ワードとしてgoogle:仮想キャプチャデバイス]、[google:仮想WebCamを入力し、フリーソフトを探しました。

Virtual Desktop Camera for Skype

Skypeでデスクトップ画面のキャプチャを配信するツール。作者のホームページ:にゃにゃん.と » softwareからダウンロードできます。

インストールすると、Skypeでカメラが使えるようになる。Skypeを起動し「ツール」→「設定」→「ビデオ設定」と辿ると「Webカメラ:Nyanyan Desktop Filter」が追加されているはず。「Webカメラ設定」で キャプチャするデスクトップの範囲やフレームレートを設定できる。設定画面はSkype経由でしか表示できない?みたい。

特に設定しなくてもSkypeですぐに利用できる。一方でSkype以外には対応してないようです

注意点(1)

私の環境(Win Vista, Skype ver4.0.0.215)では「Movie Clip」を選択するとSkypeが落ちてしまい、以降設定の変更ができなくなった。この場合、次のレジストリ

HKEY_CURRENT_USER\Software\nyanyan.to\
HKEY_CURRENT_USER\Software\nyanay.to\

あたりを削除して設定をリセットすることで、問題は解決された。

注意点(2)

このプログラムをアンインストールした後も、Windows Mediaエンコーダなどのカメラ選択候補として「Nyanyan Desktop Filter」が表示された。置き土産があるってこと。レジストリにゴミが残るのが気になる人は注意した方が良いです。

※もしかしたらVistaのお節介機能による作用かもしれません。vectorのソフト情報には動作:XPとしか書いてないので、そもそもvistaで使うこと自体がリスクです。

追記:レジストリを削除することで解決しました。詳しくは翌日の日記を参照。 と思ったけど、解決できませんでした…。(さらに追記)

NyARToolkitのサンプルプログラムで試した

NyARToolkitは、本家ARToolkitを参考にJavaC#に移植したライブラリ。公式ページはhttp://nyatla.jp/nyartoolkit/wiki/index.php。作者のブログ:nyatla@hatena blogも参考になる。

とりあえず、仮想WebCamが動作するかどうかだけ確認したいので、サンプルプログラムをダウンロードする。ここでは、C#向けサンプルプログラム「Uma2Desktop」を試してみた。

実行結果

カメラの選択候補に「Nyanyan Desktop Filter:」が追加されている。選択してOKをクリックすると、

---------------------------
エラーが発生しました
---------------------------
Uma2Desktopでエラーが発生しました。
オブジェクト参照がオブジェクト インスタンスに設定されていません。
---------------------------
OK   
---------------------------

というエラーが出る。ぬるぽNyARToolkitCSUtils\Capture\CaptureDevice.csSetConfigParms内でぬるり。引数のpStill=nullなのが問題っぽいが、よくわからん。DirectShowの知識も皆無なので、どうしようもないorz
うまくいかなかった。

ManyCamを導入

ManyCamというソフトを導入してみた。ソースとして、デスクトップの任意領域、動画などを選択できます。またそのソースにエフェクトを付けたりという加工ができるようです。

上記のNyARToolkitのサンプルプログラムもManyCamで動作しました!
もうこれがあれば何があっても大丈夫です。

結論:ManyCam最強

ということです。