2010-12-21
■ [作業履歴]Kinectとヘッドマウントディスプレイでバーチャルリアリティ

再生が重い方はYoutube版をどうぞ。
結局我慢できずにヘッドマウントディスプレイを買ってしまったので、先日作ったモーションキャプチャーと組み合わせて、家庭で楽しめるバーチャルリアリティ環境を作ってみた。
やっていることはHMDの角度情報を元にカメラを回転させて、OpenNIから入力された関節の頭の部分にリンクしているだけ。それだけで特別な機材なしに体の動きまで反映できるバーチャルリアリティ環境を構築することができた。
今回のデモは12月18日に行われた第2回 名古屋CV・PRML勉強会で発表させていただいたものに、ちょっと手を加えたものを動画にしてみた。
少し下を向くと自分の手足が動いている様子が見える。自分の動作が自分の体でないものに反映されている光景は、とても不思議な感覚で面白い。
また、Bulletの物理計算で動いているものには干渉できるので、直接自分の体でボールを蹴ったり、頭で弾き返したりすることもできる。
ただ、HMDの画角が人間の視野に比べて狭いので、動画のようなカメラの描画範囲だと実際の手足の位置や、首を振ったときの動きなどが現実と完全には連動していないため、細かい動きが必要な場面ではどうしても違和感は残る。
ボールを蹴る動作などは、見えている足の位置でなく、実際の空間を狙って蹴らないといけないのだけど、特に足先はモーションの認識誤差もあってなかなか思ったような場所を蹴るのが難しかった。
手で跳ね返すのは目の前に見えている分、足よりもやりやすいけど、距離感がつかみにくいので慣れないとなかなか自由自在、というわけにはいかなそう。頭で跳ね返すときに顔面ブロック風になってしまってるのは主に中の人の仕様のせいなので、こちらはちゃんと動けるスペースで上手い人がやれば違和感なく楽しめそうな雰囲気。うまくいったときには額に何かが当たった錯覚があるくらいに気持ちいい。
VR環境内で大きな物体を見上げたり、高い場所から見下したりするとどんな感覚になるのかも一度やってみたかったので試してみた。おおむね予想通りで、臨場感がとてもすごかった。とくに高いところから見下ろすのは、CGだとわかっていてもちょっとした恐怖が感じられるくらい。コメントにもあったけれど、高所恐怖症を克服するために慣れるのにはいいかもしれない。
巨大なものを見上げるシーンの撮影は、動いてるのも自分、見上げてるのも自分、というちょっとした幽体離脱的のようなな体験で面白かった。TPSのような、自分の動きが見えるように背後に固定したカメラで走り回るのも楽しそう。
映画やゲームのメイキング映像で人間が動物やモンスターなどのキャプチャーをしている光景をみたことがあるけど、画面の反応を見ながら自分と体格の違うモデルにモーションをつけるのも、姿勢を工夫する必要があるのでやってみるとなかなか面白い。
動画のいちばん最後の落ちの部分に関しては、流れてる歌詞のとおりバーチャルと現実の狭間で見た夢だった、ということでご了承願いたいです。
自宅のPCの前が狭くて動ける範囲が1m四方くらいしかないので、いろいろと動作が制限されてしまっているのがちょっと残念。油断すると机の足に小指をぶつけたりしそうで怖い。
kinect自体は離れていればそれなりに遠くでも認識するみたいなので、もっと広い部屋で使えばより大きなアクションにも対応できるはず。
また、VR920自体は両眼立体視に対応しているので、ちゃんと計算して左右の目に別々の映像を送れば、もっと距離感もつかみやすくなりそう。あとは手足にWiiリモコンを括りつけて接触時に振動でフィードバックを返すなどすれば、さらに現実感が増すんじゃないかと思う。
それにしても、モーションまで反映できるようなVR環境が、普通の家庭内で特殊な機材なしに市販品の組み合わせだけで実現できてしまうとは、ほんとにすごい時代になったものだなぁ、とあらためて思う。
http://www.youtube.com/watch?v=WDlvn3voblQ
ニコニコ動画は重くて、一般会員だとまったく再生できませんね……。
ネット上にある各種ソフトだけでも実現可能ですか?
これにランニングマシンとの連携が追加されたらとんでもないことになりますね!
http://www.nicovideo.jp/watch/sm13098406
こちらにMMEを使って頭ボーンの位置にカメラを移動させている動画がありました。HMDの角度は取得できませんが、これをうまく調整すれば同じような体験ができるかもしれないです。
>mersさん
自宅が狭くて、一歩下がればベッドに足をぶつけ、2歩進むと認識範囲から外れてしまうような有様でしたので、もう少し広い場所で遊ぶだけでも、さらに可能性が広がりそうです。
>uranuxjpさん
翻訳ありがとうございます。自分の書いたものが英語になるとこうなるんだな、というのが見られてちょっと嬉しかったです。
>koujunさん
マイストから抜けてしまってました。追加しておきましたので確認をお願いします。ご指摘ありがとうございました。
今回の動画は本当に凄いと思いました。
ヴァーチャルリアリティは今回の物に限らず、歩いて移動できる範囲が極めて限定されてしまうのが難点ですよね。
そこで、「歩けるヴァーチャルリアリティ」のアイディアを考えてみました。参考にしていただけたら幸いです。
用意する物
・地面に固定された腰の高さより気持ち高めのポール。
人間の体重程度では折れたり倒れたりしない程度の強度。
先端はウレタンなど、危なくないよう工夫した方が良い。
・マウス×2
・ガムテープ
・小学生がはくような上履きや体育館履き
・いらない布、タオルなど
・必要ならマウス保護用のショック吸収材
手順1、ガムテープで上履きとマウスをくっつけます(位置に関しては試行錯誤が必要かと思います)
手順2、マウスと干渉しないよう気をつけながら、ガムテープで上履きの底に布を貼り付けます。
手順3、上履きを履いてポールを身体に密着させた状態を全力で保ちます。
手順4、手順3の状態で歩く動作や走る動作をすると、ポールに阻まれて前進ができず、マウスが足の動きを検知します。
手順5、マウスが検知した動きをモデル……というかステージの位置に反映させます。
これで、ゲキド街をどこまでも歩いていく事が出来ると思うのですが、素人の空論でしょうかね?
まずポールの調達が大変そうですけどね……
そのポールですが、もし調達できたら先端をU字型にして回転できるようにすれば夢が広がると思います。
例えば歩く時の設定の他に、キー操作で
「腰から見て上」
「腰からみて斜め45度上」
「腰の向いている方向」「腰の向いている方向の逆」
「腰から見て斜め45度下」
「腰から見て下」
のうちどの方向に進むか切り替えられる設定を作り、片手で必要なキー操作ができるよう工夫すれば(まーゲーム用コントローラー辺りが適切でしょうけど)、U字の窪みに身体を入れて色々なポーズを取りながらキー操作を行う事で自由自在にゲキド街上空を飛び回ることが出来るようになると思うのですが……
大掛かりな設備になりますが、http://www.youtube.com/watch?v=DzZeeWk0S7M みたいなのがひとつの現実的な選択肢になるでしょうか。一般家庭に置くのは難しそうですが。