参考:Microsoft Kinect - Microsoft SDK - Unity3D
UnityでKINECTを使う。方法はいくつかあるが、正攻法でMicrosoftのSDKを使ってみる。
注)以下はすべてWindows7以降の環境で行うこと。Macは非対応。
1.KINECT SDKをインストールする
Develop for Kinect | Microsoft Kinect for Windowsの”Download SDK"をクリック。
下のページから”DOWNLOAD LATEST SDK"と”DOWNLOAD TOOLKIT"をクリックして各々のセットアップ実行ファイルをダウンロード。
ダウンロードしたセットアップファイルを実行して、KINECTドライバーや開発キットをインストールする。(詳細省略)
2.KINECTのUnity用ラッパーを準備する
KINECTラッパーのUnityパッケージは、からダウンロードする。
これは、Microsoft Kinect - Microsoft SDK - Unity3Dの、"Kinect Wrapper Package for Unity3D"からでもアクセスできる。
Unityエディターからインポートする。
KINECTラッパーPackageをインポートした状態は次。
ここで、Kinect/KinectInterop.csを修正する必要あり!
上記サイトのラッパーは、KINECTのベータリリース用のもの。正式版のSDKではDLLの場所が異なるため、このままではエラーになってしまう。
解決するには、Kinect/KinectInterop.cs ソースファイルの305~338行(コメント等のため多少前後するかも)にあるのDLLのパスをすべて、
C:\Program Files (x86)\Microsoft Research KinectSDK\MSRKINECTNUI.DLL
から
C:\Windows\System32\Kinect10.dll
に変更する。全9箇所ある。修正後のKinectInterrop.csの該当部分。
(参考:Microsoft Kinect SDK Wrapper For Unity Crash Bug Fix)
3.KINECT用のシーンを作成する。
上述のラッパーには、Unityのサンプルシーン"KinectExample"がある。これを実行すれば、即Kinectのデモが可能。
マニュアルで行う手順は次の通り。(パッケージのモデルデータを利用する)
プロジェクトウィンドウ、Models/rainbowMan_v6(ボーンモデル)と、Prefabs/Kinect_Prefab(Kinectエンジン)を、ヒエラルキーウィンドウにドラッグ&ドロップ
ヒエラルキーウィンドウのrainbowMan_v6を選択。。インスペクター上で、変数SWに"Kinect Prefab"をアサイン。
その他のモデルパーツは、次のようにアサインする。
以上で、KINECTを通してモデルデータが動くデモができる。
ラッパーには別のモデルデータ、"KinectPointMan"が入っている。こちらは各関節ノードを取り出したモデル。
プロジェクトビューから"KinectPointMan"をヒエラルキービューにドラッグ&ドロップ。
注)"KinectPointMan"は"rainbowMan_v6"より小さい。約10倍すると同等の大きさになるので、必要に応じてXYZ各スケールを変更する。
ヒエラルキービューで"KinectPointMan"を選択。
インスペクタービューで、変数SWに"Kinect Prefab"をアサイン。
これで、関節を球体であらわしたモデルも動く。