2/5 MayaとKINECTのリンク手順更新
-------------------------
私がKINECTを使ってMayaでモーションキャプチャをやってみようとしたときに遭遇した問題と解決策を記しておきます。Web上では誤った情報も多く、うまく動くまでにかなり苦労したので、これから導入しようとしている方の参考になれば幸いです。
遭遇した問題1
OpenNIのサンプル実行時に「プロシージャエントリポイント xnProductionNodeReleaseがダイナミックリンクライブラリOpenNI.dllからみつかりませんでした」というエラーダイアログが表示される
原因
unsutableなバージョンのPrimeSensorとsutableなバージョンのOpenNIの混在
解決策
PrimeSensorやOpenNIのバージョンをsutableかunsutableなもので統一する
サンプルを実行すると"Couldn't initialize from file: Can't create any node of the requested type!"というエラーメッセージが表示される
原因
PrimeSensorのドライバがうまくインストールされていない
解決策
デバイスマネージャを開いてKinectのドライバが次のようになっているのはNG。
libusb-win32 devices
|-Kinect Camera
|-Kinect Motor
うまくいくと次のようになっているはずです。
PrimeSensor
|-Kinect Camera
|-Kinect Motor
■KINECTを使ったモーションキャプチャ導入までの手順
私が実際にどのような手順を踏んでうまくいったかを記しておきます。
■環境
OS: Windows XP 64bit
■ダウンロードしたもの
OpenNI Alpha Build for Windows v1.0.0.23
http://www.openni.org/downloadfiles/openni-binaries/21-stable
PrimeSense NITE Beta Build for Windows v1.3.0.17
http://www.openni.org/downloadfiles/openni-compliant-middleware-binaries/34-stable
avin2-SensorKinect-b7cd39d
https://github.com/avin2/SensorKinect
MayaOpenNIServer
http://d.hatena.ne.jp/Mirage/20110104
■手順
1.KINECTのドライバインストール
普通にフォルダ指定で検索させてインストールをしてもうまく行かず、ここで苦労しました。他サイト様を見る限りはうまくいっているのですが、もし同様にうまくドライバがインストールできない方は以下の方法を試してみて下さい。
2.ハードウェアのインストールウィンドウ(Kinect Motor)が出るがキャンセル
3.avin2-SensorKinect-b7cd39d\Platform\Win32\Driver\dpinst-amd64,exeを実行し、Kinect Motorをインストール。成功するとデバイスマネージャにPrimeSensor->Kinect Motorが現れる。
4.再びハードウェアのインストールウィンドウ(Xbox NUI Audio)が出るがキャンセル
5.再びハードウェアのインストールウィンドウ(Kinect Camera)が出るがキャンセル
6.avin2-SensorKinect-b7cd39d\Platform\Win32\Driver\dpinst-amd64,exeを実行し、Kinect Cameraをインストール。成功するとデバイスマネージャにPrimeSensor->Kinect Cameraが現れ、ドライバのインストール完了。
2.OpenNI、NITE、PrimeSensorのインストール
2.NITE-Win32-1.3.0.17.exeを実行し、NITEをインストール。インストール時に入力するキーは以下のものを使用。
0KOIk2JeIBYClPWVnMoRKn5cdY4=
3.avin2-SensorKinect-b7cd39d\Bin\SensorKinect-Win32-5.0.0.exeを実行し、Sensorをインストール
ここでOpenNIのサンプルコードを実行すると動くはずです。いろいろなサイト様を参考にしましたが何やら設定ファイルの編集や環境変数の設定、パスの書き換えなどが必要などと書いてありましたが、私の場合は何もせずに動きました。
3.MayaOpenNIServerを使ってMayaとKINECTをリンク
Mayaのモーションキャプチャサーバーを提供してくださっているMirage様には感謝です。http://d.hatena.ne.jp/Mirage/
おかげで簡単にMayaとKINECTをリンクできました。手順を以下に記しておきます。
2.mayaKinectCaptureTest()を実行し(スクリプトエディタでmayaKinectCaptureTest()と入力しctrl+Eneterを押すなどし)、ウインドウを出す
3.ウィンドウ内のMake Nullボタンをクリックし、KINECTと関連付けするための仮のコントローラを作る
4.bin/MayaOpenNIServer.exeを実行
5.MayaOpenNIServerのウィンドウにポーズ(筋肉もりもりポーズが認識されやすい?)をとって骨を出す
6.MayaOpenNIServerのstart serverをクリック
7.Mayaに戻ってmayaKinectCaptureTestウインドウのconnectをクリック。成功するとパーツごとのロケータとKINECTでキャッチした動きが同期。
参考URL
まとめ?ブログ
http://kgxpx834.blog58.fc2.com/blog-entry-22.html
Chick Lab
http://chicklab.blog84.fc2.com/blog-entry-26.html
M-Tea
http://www.m-tea.info/2010/12/kinectpc1.html
水おいしいです^o^
http://vad.seesaa.net/article/174312345.html
2ch 【Kinectで】キネクト接続初心者スレ【ミクを動かせ!】
http://jbbs.livedoor.jp/bbs/read.cgi/music/23040/1292878004/l50
窓の社
http://www.forest.impress.co.jp/docs/review/20110118_420945.html