Kinect+XNA による簡易バーチャルスタジオ
id:logion:20120907 で書いたKinectのネタですが、実は簡易バーチャルスタジオのシステムを作っていました。
しょぼい事務所で撮影しても人物だけ切り抜いてCGセットに合成すれば、あら不思議!豪華なセットで撮影したように見える!(かも?)
正確にはカメラの角度や位置にCGも完璧に追従しないといわゆるバーチャルスタジオにはなりませんが、そこはどうしようもないので目をつぶっております。
また3DフレームワークであるXNAを使う以上、スタジオのモデルも当初は3Dポリゴンで表示していまいたが、諸般の事情によりレンダリング済の画像を2Dで合成する方法に変更しており、バーチャルというよりはただのハメコミ合成システムと化しております。orz
このシステムを使って今晩から4週間ほど、毎週土曜日19:00〜20:00にニコニコ生放送とYouTube Liveで番組が生放送されます。
ニコニコ生放送 | 「フミコの告白」「ロボと少女(仮)」作者らと観る、 CGアニメコンテスト・CGアニカップ 予習的鑑賞会 | |
YouTube Live | CGアニメコンテスト・CGアニカップ事前告知番組「予習的鑑賞会」 |
お時間がありましたらよろしければご覧下さい。なお、普通のビデオカメラ映像になっていたら何かしらのトラブルで中の人が慌てふためいていると思われますので、生暖かい眼差しを投げ掛けて頂けると嬉しいです。
PCI-Eのスロットの種類にも要注意
こうしてUSBコントローラの種類にも気をつけて別メーカーのコントローラを搭載したUSBカードを入手したのですが、2枚のUSBカードをいずれもPCI-Ex1のスロットに挿していると、2台目のKinectを認識しませんでした。
PCI-Ex1とPCI-Ex16、あるいはPCI-Ex1とPCI-Ex4の組み合わせなら無事認識しました。
USBコントローラの種類に注意
上記リリースノートには、
最大 4 台の Kinect センサーのサポート: 同一 PC に最大 4 台までの Kinect センサーを接続することができます。ただし、各センサーがそれぞれ独立した USB コントローラーに接続できるだけの性能を持つ PC であることが前提。(これまで通り、骨格追跡は1 プロセスにつき 1 台の Kinect でしか使用することができませんが、開発者は使用する Kinect センサーを選択することができます。)
と書かれており、Kinectを追加するには PCIまたはPCI-E接続のUSBカードが必要になります。
ところが、USBコントローラチップの種類によってはKinectを全く認識しないものがありました。
メーカー 製品名 PCI/PCI-E USB種別 USBコントローラ Kinectの認識 AREA SD-PEU3E-2E(Due・Sport) PCI-Ex1 USB3.0 Etron × AREA SD-PEU3V-2E2IL(OF2) PCI-Ex1 USB3.0 VLI × 玄人志向 USB2.0N6P-PCI PCI USB2.0 Renesas μPD720101 × 玄人志向 USB3.0R-P2-PCI2 PCI-Ex1 USB3.0 Renesas uPD020202 ○ SilverStone SST-EC04 PCI-Ex1 USB3.0 TI TUSB7340 ○
Kinect 3台接続までの道
どういうわけか今Microsoft Kinectを使ったイベント向けのシステムを作っています。3DCGの扱いが簡単なXNA Game Studio4.0上で、Microsoft公式のKinect SDKを使いC#で書いています。
リリースノートによると1台のPC4台まで接続できるようですが、実際にやってみるとハードウェアの相性と思われる問題に多数ぶち当ってしまいました。とりあえず3台までは同時に接続し色・深さ画像が取得できるようになりましたので、ここに記録しておきたいと思います。
CPU intel Core i7-2600(無印) マザーボード MSI Z68A-G43(B3) メモリ Geil EVO CORSA DDR3-1333 8GBx2
上記マザーボードには、USB3.0コントローラとしてRenesas μPD720200 を内蔵しておりKinect1台だけならUSBカードはいりません。
2台以上接続する場合にPCI(2本)またはPCI-E(x16,x4が1本ずつ、x1が2本)にUSBカードを接続することになります。(※伏線)