凹みTips

C++、JavaScript、Unity、ガジェット等の Tips について雑多に書いています。

Kinect でお手軽に頭の位置とカメラ位置を連動させて Oculus Rift をもっと楽しむ

はじめに

Oculus Rift はジャイロによって角度は取れるのですが位置が取れません。そこで Razer Hydra などのデバイスを利用したり、Kinect を利用したポジショントラッキングなどが行われています。

Razer Hydra は前回使ったので、今回は、Mikulus Kinect でも行われていた Kinect を用いたポジショントラッキングの方を試してみました。手順をメモしておきます。

Unity で Kinect を使う

Unity で Kinect を使う方法は幾つかあるようです。Mikulus Kinect では ZDK (Zigfu Development Kit) というライブラリを使用されていました:

こちらは Unity WebPlayer にも対応し、HTML + JS な環境でも動くもののようです(どうやっているんだろう)。
私はまずは本家の Microsoft Kinect SDK を利用してみました。詳細は以下のサイトを参考にさせて頂きました:

ダウンロードは以下から可能です:

Oculus のカメラと組み合わせる

図のような入れ子構造にします。

KinectPointMan は小さいので、Scale を大きめに設定して丁度良い大きさにして下さい。動作させてみると以下のようになります。

かなりスムーズに動きます。

(おまけ)Kinect for Windows の環境

以下の Wiki を参考に、Kinect for Windows SDK と OpenNI の共存環境を作りました。

ブリッジしてくれる kinect-mssdk-openni-bridge は以下からダウンロードします。

タイトルのように、Kinect for Windows SDK v1.6.0.0 と OpneNI 1.5.2.23 をブリッジするものなので既存の環境は一旦アンインストールしてこれらをインストールします。

同じ URL より NITE を入れれば OpenNI が必要な MMDモーションキャプチャも使えるようになります。

おわりに

今回もコード量0で動くのが凄いですね。。