デバイスの検出
接続されている Kinect センサーの数を得る
Kinect のカメラやモーションに関連した機能は MSR_NuiApi.h ヘッダファイルで宣言されています。Kinect に関連した型や定数を利用するためにも、このヘッダファイルが必要になるためインクルードしましょう。
アプリケーションから Kinect センサーを利用するには、実行している PC に Kinect が接続されているかどうかを調べる必要があります。Xbox 360 には 1 台の Kinect しか接続できませんが、PC には複数台の Kinect を接続できます。ただし、骨格情報を得られるのは 1 台からのみで、複数台から同時に骨格を取得することはできません。映像は、同時に取得できます。
正確には、複数台の Kinect が同一の USB コントローラに接続されている場合、そのうちの 1 台からのみ骨格を取得できます。複数の Kinect から同時に骨格を取得したい場合は、複数の USB コントローラを持つ PC で、それぞれの USB コントローラのポートに Kinect を接続させれば可能です。
PC に接続されている Kinect センサーの数を取得するには NuiGetSensorCount() 関数を使います。
HRESULT NuiGetSensorCount(int *pCount)
pCount パラメータに、接続されている Kinect センサーの数を取得する整数へのポインタを指定します。関数が成功すれば S_OK が返ります。pCount パラメータに指定されたポインタが有効ではない場合は E_POINTER が返されます。
#include <iostream> #include <Windows.h> #include <NuiApi.h> int main() { int sensorCount; NuiGetSensorCount(&sensorCount); if (sensorCount == 0) std::cout << "Kinectが接続されていません\n"; else std::cout << "Kinectが" << sensorCount << "台検出されました\n"; return 0; }
コード1は PC に接続されている Kinect センサーの数を出力するだけの単純なコンソールアプリケーションです。