昨年,とあるイベントで,
インタラクティブなプロジェクションマッピングをやったのですが,
その流れでARも組み合わせたら更に広がるんじゃないか,
という話題がメンバー間で出ていました.
インタラクティブ性を持たせるのには,LeapMotionを使っていて,
もう盛りすぎ・・・という気がしないでもないのですが.
テストしてみました.
Leap Motionで投影画像をインタラクティブに動かして,
その画像が投影された3Dモデル自体をARのマーカーとしています.
今回はARの端末上で,
Unityちゃんが右向いたり正面向いたりしているだけですが,
例えばステージをプロジェクションマッピングで投影して,
ステージの変化に合わせて,
Unityちゃんを踊らせたり走らせたりもできそう.
ただ今回のテストで散々手こずったのが,
プロジェクターで投影した画像を
ARのマーカーとして使う場合の精度の出し方について.
プロジェクターで投影する画像は,周辺環境,つまり,
・真っ暗なのか多少は光のある場所なのか
・投影対象とプロジェクターの距離はどの程度離れているのか
などなどによってコントラストがかなり変わってきます.
つまり,投影される映像の色がかなり変わってきます.
また,3次元物体へのプロジェクションマッピングなので,
当然,形が歪んできます.
3次元物体自体をマーカーとしているので,
投影映像の歪みは補正してくれているはずだと思うのですが,
これがどの程度まで補正して読み取ってくれるのかがイマイチ不明.
また,コントラストも上げればよいというわけではなく,
対象画像によっては,
真っ暗な部屋の中での高コントラストの方が読み取りやすかったり,
逆に少し明るい部屋でコントラストが低めの方が
認識精度がよい画像もありました.
色々試したのですが,
やはり色は変化がマーカーとして厳しいため,
今回はモノクロの画像をターゲットとしています.
ARへの組み込みは,
Vuforiaのサービスでマーカーを生成,
Unityを使ってXcode用に書き出し,
Xcodeからiphoneアプリとして書き込んでいます.
これがですね・・・ターゲット画像が変わると,
全部やり直しになって,非常に時間かかりました・・・
通しで10回以上はやり直してます・・・
しかし,マーカーの精度もLeapMotionの精度もイマイチ.
まだまだ改良の余地ありです.