背景
最近VRとか流行りですよね。
viveだとトラッカーが使えるのでモーションキャプチャーとして利用できたりします。
でもやっぱり高いです。でもそれっぽい事したい!
そんな感じの足掛けになればと思い記事にします。
概要
ちょっと前にARマーカーって流行ったと思います。
ARマーカーの基本的な使い方はカメラ側を動かして実際の映像上に映ったマーカーに3Dオブジェクトを合成するといったものですが、これを逆手にとって利用します。カメラ側を固定し、ARマーカーを動かして、viveの例で挙げたトラッカーの代用にする考え方です。
(C) Unity Technologies JapanUCLARマーカーによるなんちゃってモーションキャプチャーです。 pic.twitter.com/4O84FXugvg
— 琴葉 葵(偽) (@Hv2RMjHzDyqXVIr) 2017年9月17日
環境
Unity
vuforia
FinalIK
ウェブカメラ
※これらは一例ですので、他のもので代用できると思います。
Unity
Unityについては書きません。
vuforia
vuforiaについてもわかりやすくまとめてくださっている方がいらっしゃいますのでそちらをご覧ください。
https://qiita.com/hey_cube/items/d12fa91abd6f7826dd78
https://qiita.com/ayumegu/items/91c1811acab95da817f4
今回の使い方で特筆するのは、カメラの設定です。
基本的に通常のカメラは削除し、vuforiaのprefabカメラを使うのですが、概要の動画のような使い方には向きません。また、prefabのカメラは初期設定だとARマーカーを基準にカメラの向きを変えてオブジェクトの見え方を変えています。
なのでまずprefabのカメラを固定にしてオブジェクト側が動くように設定します。
そしてUnityの普通のカメラを配置します。(削除せず残しておきます。)
※Target Displayの設定に注意
FinalIK
FinalIKであればVRIK、または動かしたい箇所だけにCCDIKが設定しやすいかと思います。
この点についてもARマーカーに設定したオブジェクトをターゲットに割り当てる以外は特筆することはありません。
ウェブカメラ
ウェブカメラについてですが、できるだけ視野角が広い物が良いです。
1000円程度の物でも動かす事は可能ですが、動かせる範囲が狭く厳しいです。
かといって極端に視野角が広いと端が歪むため意図せず角度が変化したりと難しい選択です。
個人的には安く済ませたいのならLogiのC270、とにかく広く動かしたいのならBuffaloのBSW20KM11BKだと思います。どちらも両極端なので、Logiの1万前後の物が一番ベターかもしれません。
露光時間やセンサー感度の問題でモーションブラーが強く出る物は早く動かした場合に弱いので、そのあたりも加味しつつ、各種設定が保持できる制御ツールがある物(メーカー/機種)だとなお良しです。
展開
VR環境下では実世界の物体の位置が把握できないのが難点です。
かといって全ての物体にviveトラッカーを始めとしたセンサーを付けるのも考え物です。
そこで「だいたいでいいから位置を把握したい」程度の要求であれば、今回のような形で対応できるのでは?
と考えています。
注意
感度や精度といった面では昨今のVR環境に遠く及びません。
この体験で「こんなものか」と思わず「より良く!」と先へ進んでくれる事を願います。
また、残念ながらvuforiaがwindosビルドに対応していないため、win環境下では実行ファイルにできません。