こんにちは。NUI(Natural User Interface)への好奇心が止まらない原です。

ところでこんなゲームを試作してみました


Kinect for Windows SDK GAME Test from BMCL on Vimeo.


止まらない好奇心がゆえに、Kinect for Windows SDKを使ってこのようなゲームの試作品を作ってしまいました。往年の名作「ナイツ」風に並んでるアイテムを飛行しながら拾っていきます。
基本的な操作は、過去に作った「電脳空間システム」を流用しておりますが、何より大きく変わったところはこのポーズがいらなくなったことです。

calibpose.png


映像を見てもらうとお分かりになると思いますが、ユーザが切り替わる時に何のポーズも取っておらず、瞬時にコントロールが取れています。

この体験を実現しているのは、Microsoftの公式SDK、Kinect for Windows SDKです。

Kinect for Windows SDKってなに?

Microsoftが発表した、Kinectを使ったアプリを作るための開発キットです。 電脳空間の時に使っていたOpenNIとの大きな違いは、
・ポーズを取らずに骨格が取れる
・首振りができる
・音声が取れる
ということ。

ダウンロードはこちらから。
http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/download.aspx
リンク先にも書いてありますが、開発するにはWindows7、およびVisual Studioが必要です。
また、仮想環境では動かないのでご注意ください。

こんな環境で作りました

一応大まかな構成を説明いたしますと、
kinectImage.jpg
図のようなかたちで、Kinectの情報はWindowsPCおよびKinect for Windows SDKで、ゲーム本体の方はMacおよびopenFrameworksで作成いたしました。 WindowsとMac間でOSC通信させ、骨格情報をゲーム側に伝えています。

Kinect for Windows SDKを使う時に参考になるサイト

さて、デモを試作するにあたって色々なサイトを参考にしましたので、こちらでご紹介いたします。

Kosaka laboratory Interactive System tips

http://www.kosaka-lab.com/tips/
XNAでkinect for Windows SDKを動かすサンプルコード多数。今回試作したkinectコントロールの部分はKinect SDK XNAで骨格情報の取得 その1の記事を参考にさせていただきました。

かおるんダイアリー

http://d.hatena.ne.jp/kaorun55/
Kinectセンサープログラミングの著者、かおるんさんのブログ。OpenNIの解説も多く書かれており、kinectドライバの現在がよくわかります。

Kinect for Windows SDKとOpenNIの比較

http://d.hatena.ne.jp/kaorun55/20110606/1307331384
かおるんさんのブログより、2つのkinectコントローラの比較。

channel9 coding for fun

http://channel9.msdn.com/coding4fun/kinect
MS公式のデベロッパコミュニティサイト。kinectの事例たくさん

川西 裕幸のブログ

http://blogs.msdn.com/b/hiroyuk/
kinectカテゴリで、Kinect for windows SDKの有用なサンプルが紹介されています。特にCodePlex:Kinect Audio Positioningの記事では、他ではあまり見られない音声による位置検出が紹介されており、必見です。

Kinect for Windows SDK FAQ - Microsoft Research

http://research.microsoft.com/en-us/um/redmond/projects/kinectsdk/faq.aspx
英語ですがkinectを使う際の注意点をまとめており、ライセンス的なNGを知りたい時には こちらのfaqから判断することができます。

Making Things for .NET

http://www.makingthings.com/resources/downloads
kinectとは違いますが、kinectの信号をoFに伝えるために重要だったのがこちらのライブラリ。 OSCをC#で扱うことができます。
これでkinectの座標データをOSCでMacに送り、oFで読み取っていました。

openFrameworks

http://www.openframeworks.cc/
言わずと知れたopenFrameworks。ゲーム本体部分はこちらで作成しています。

ということで

Windows PC必須ですが、kinect for Windows SDK はOpenNIに比べて導入がとても簡単でした。また、キャリブレーションのポーズがない、というのはそれだけで圧倒的な体験の違いをもたらします。
これらのサイトを参考に、みなさんもレッツNUI!

HTML5飯