HMZ-T1とFreeTrackでヘッドトラッキングしてみる

| コメント(0) | トラックバック(0)
ヘッドマウントディスプレイでやってみたかった事の1つにヘッドトラッキングがありました。
ということでオープンソースソフトウェアのFreeTrack+自作マーカー+HMZ-T1で仮想体験環境を構築してみました。

freetrackLogo.png

最近は家庭用ゲーム機でも、PS3の顔認識によるフェイストラッキングや、XBOX360のKinectによるトラッキングなど、新しい体感デバイスとして実装されることが多くなって来ました、

この分野でも、やはりPCが昔から進んでいて、TrackIRが標準的なデバイスとして用いられています。
TrackIR自体はNaturalPoint社の製品ですが、コンシューマ用途では事実上ディファクトスタンダードとなっています。
PCゲームでヘッドトラッキング対応=TrackIR対応 というのは今も昔も変わりません。

そんなところに、TrackIRインターフェース互換でオープンソースなソフトウェアとしてFreeTrackがありまして。
過去にはNaturalPoint社が自社製品のプロトコルを暗号化して代用されないように対策したり...
それに対してFreeTrack側も暗号化解析して対策したり、FreeTrack専用のプロトコルを設定してゲーム製作会社がTrackIRだけでなくFreeTrackを組み込める環境にしたり...

と、いろいろあって、現在はTrackIR互換として使える状況となっています。

TrackIRは赤外線を人間側に取り付けた反射板で反射させたものをマーカーとするのに対し、FreeTrackはウェブカメラを使って撮影した画像を使用します。
そのため、赤外線を使わなくても、LED等の光源があればマーカーとして使えます。
極限的にはLED懐中電灯1本あればマーカーとして最低限の動作をします。

ただし、マーカーが1点だとピッチ/ロールまたはX軸/Y軸の認識しか出来ないため、首をかしげたりした時の傾きなどを検知することができません。
また人間の頭に取り付けた場合、体の軸を中心に光源が回転することになるので、横を向けば向くほどウェブカメラに対する光源の移動量が少なくなり、PC画面に対して移動量のズレが大きくなってしまい細かい調整が難しいです。

HMZ-T1のフロントに付いているイルミネーション用のLEDを使えば、ウェブカメラだけ用意することでこの1点トラッキングが利用できてしまうので、まず最初に試してみました。
そしてヘッドトラッキングがなかなかよく機能していたので、6DOF(6軸検出)用のマーカーを作ることにしました。

---------------

マーカーは何種類か用意されいて、帽子に取り付ける光源が1点・3点・4点のものと、好きな場所に取り付けられるクリップ型の光源3点のものから選択できます。
具体的な形状はFreeTrackを起動してマーカーを選択する画面で寸法を含め確認することができます。

freetrackMarker.png

今回はHMZ-T1の横に取り付けるため、3点クリップ型のものを作成しました。
材料は車用のLEDルームライトを作った時の部材の余りなどなどから
 ・FLUX LED ... 1個10円 x 3個
 ・100Ω抵抗 ... 1個3円 x 2個
 ・USBケーブル ... 105円
 ・USB充電器 ... 105円 (単3電池2本でUSB出力できるもの)
 ・クリップ ... 20円くらい
を使用。

適当なプラスチック片で土台を作り、そこにハンダ付けした上記部材をホットボンドでネチョ固定。

IMG_1028.JPG

クリップなので必要な時だけHMZ-T1に取り付けられます。

IMG_1030.JPG

誤動作防止のため、HMZ-T1の設定画面でイルミネーションはオフにします。

部屋を暗くし、FreeTrackを起動してトラッキングスタートをしてうまくマーカーを認識できるようにします。
FreeTrack側のしきい値を変更するだけでなく、Webカメラの設定画面で露出その他をいぢってやると綺麗にマーカーを認識できるはずです。

認識できたらTrackIR対応のアプリで動作を試してみます...
としたかったのですが、手持ちには対応ソフトはDiRT2しかなく、しかもなぜかゲーム自体が立ち上がらなくなっていたので...Skyrimにてテストしてみました。

FreeTrackでは、TrackIR互換のインターフェースの他に、マウス入力やキーボード入力に変換することができるので、設定次第ではいろいろなアプリに応用が可能です。
とりあえずヘッドトラッキングということで、マウス入力にして試します。

Outputの設定画面でマウスにチェックを付けるだけでOKですが、おそらく最初は顔を動かしてもちょびっとしかマウスカーソルが動かないと思います。
Webカメラの画像の中で、光源が移動した距離から移動量が入力されるので、
 ・Webカメラを近くに置く or Webカメラのズーム機能等で可能な限り光源が画面端まで動くようにする
 ・Global設定でSensitivity値を大きくする
 ・Cunvas設定で入力値に対する移動量が大きくなるようにグラフを修正する
などの対応をすることで、より大きな移動量を得ることができます。

マウスカーソルの移動量とゲーム内での視点移動量が比例するので、当然ですがある程度大きくしておかないとゲーム内でほとんど視点が動かないので要注意。

以上の設定が終わったら、いざゲーム世界へ。
3DVisionによる自然な大画面立体視 + ヘッドトラッキングによる視点移動は...
まさにバーチャル・リアリティ。
コレばかりは体験してみないと感動がわかりません。

当然ですが、視界が覆われるヘッドマウントディスプレイとヘッドトラッキングは相性ばっちりですね。
普通のディスプレイだと顔を右に向けながら目は画面を追うために左を見る、という微妙な状況となりますが、HMDなら画面が常に正面にあるので違和感なっしん。

ただし、マウスカーソル入力に変換することで無理やりヘッドトラッキングを実現しているため、まっすぐ移動しながら周りを見渡すと向いた方向に移動してしまうので...そこは仕方ないですね。
立ち止まって世界を見渡している分には問題なし。
TrackIR正式対応ゲーム以外であれば、レースゲームやフライトシムなどの視点操作が別途用意されているゲームであれば違和感ないはず。

いろいろと試してみたいところデス。

Add Social Services

トラックバック(0)

トラックバックURL: http://www.kitcat.jp/mt/mt-tb.cgi/433

コメントする

このブログ記事について

このページは、kitcatが2012年3月 3日 01:17に書いたブログ記事です。

ひとつ前のブログ記事は「タッチでMetroなWindows8を試してみた」です。

次のブログ記事は「docomoのサポート割増額(~2012年3月31日)を調べてみた」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。