強火で進め

このブログではプログラム関連の記事を中心に書いてます。

UnityとKinectの連携


この前参加した「さいたまiPhone開発勉強会」の影響も有り、遂にKinectを購入しました。

Xbox 360 Kinect センサー

Xbox 360 Kinect センサー

合わせてこちらの2冊のKinectプログラミング本も購入。
キネクト ハッカーズマニュアル

キネクト ハッカーズマニュアル

KINECTセンサープログラミング

KINECTセンサープログラミング

以前、ハッカソンで海外のサイトにてUnityとKinectの連携について書かれているブログを見つけ試してみたのですが上手く行きませんでした。

今回はこちらの比較的最近書かれた記事を参考に試してみました。

Unity3d + kinect - sc3onlinuxの日記
http://d.hatena.ne.jp/sc3onlinux/20110531/1306845679

こちらの方法で試してみた所、ほぼすんなりと動作しました。

一箇所、CubeのInspectorの設定でハマりました。具体的には以下の様なエラーが発生し、動作しませんでした。

UnassignedReferenceException: The variable torso of 'Nite' has not been assigned.
You probably need to assign the torso variable of the Nite script in the inspector.
UnityEngine.Transform.get_rotation ()
Nite.InitializeCharacter () (at Assets/Nite.cs:131)
Nite.Start () (at Assets/Nite.cs:193)

これはボーンの対応の設定の中のうち「torso」の項目について設定していなかったのが原因の様でした。

Torsoについては対応するそれっぽいデータが見つからなかった為、未設定にしていたのですがそれだとダメな様です。

しょうが無いのでTorso(胴)と同じくらいの位置に存在する Root を設定した所、正しく動作する様になりました。

これにより動作させる事には成功したのですが以下の様なイマイチ不安定な部分も有ります。

  • 何回かチャレンジ(実行し直し)しないと正しく動作させる事に成功出来ない
  • 実行→停止→実行としたタイミングでUnityがクラッシュする

でも取り敢えず動作したので大満足。これからソースコードの理解などを進めて安定性を上げれたら良いなぁ。と思っています。

関連情報

Integrate Kinect & Unity3D on Mac : Matt Sonic's Blog
http://planetmatt.com/integrate-kinect-unity3d-on-mac/