2018年Windows10Pro64bit環境でKinect(XBOX360単体版)を使ってMMDでモーションキャプチャーをする方法

モーションキャプチャーを手軽に行え、姿勢推定アルゴリズムを持ったKinect は、現在でも学術研究やアプリ開発など多方面で活用されています。ここでは、Windows10Proの64bit版環境でKinectV1(XBOX360単体版)を使って、MMDでモーションキャプチャーを行うために必要な設定や導入方法、導入時に発生するエラーとその解決策についてまとめています。

おすすめ記事

ヤフーニュースと窓の杜で無料VTuberアプリ『メイアライブ』が紹介されました。


【ヤフーニュースや窓の杜で紹介された】無料VTuberアプリ『メイアライブ 雛乃木まやエディション』のダウンロード

 

 

KinectとMMDを動かす環境

プラットフォームOSについて

  1. OS: Windows10
  2. エディション: Home or Pro
  3. OSビット数: 32bit or 64bit

Windows10にはエディションやビット数によって複数の組み合わせがありますが、Windows32bitアプリが動けば問題なさそうです。OSはどのエディションやビット数でも動作するはずです。

Kinect本体について

  1. Kinectドライババージョン: 1.8

KinectV1系であるKinect XBOX360単体版か、Kinect for Windows で動作するようです。SDKバージョンは、1系最新の1.8推奨です。

MikuMikuDanceについて

  1. OpenNI関連のバージョン:
  2. MikuMikudanceのバージョン:MikuMikuDance DirectX9 Version(MikuMikuDance_v931.zip)
  3. MikuMikudanceのビット数: 32bit版(※64bit版はKinect利用不可)

MikuMikudance には32bit版アプリと64bit版アプリがありますが、Kinectを使うには32bit版アプリである必要があります。64bit版でKinectモーションキャプチャーを使おうとするとエラーが発生し、正常に動作しません。

 

導入手順の概要

  1. Kinect for Windows SDK Ver1.8 をインストールする。
  2. Kinect が Windows10 で正常に認識されているかデバイスマネージャーで確認する。
  3. MikuMikuDance32bit版をインストールする。
  4. MikuMikuDance32bit版に必要なVC++のランタイムパッケージとDirectXをインストールする。
  5. OpenNIをインストールする。
  6. 利用したいMMDモデルを読み込む。
  7. MikuMikuDanceの32bit版で Kinect を有効化する。

1.Kinect for Windows SDK のインストール

マイクロソフト公式が提供しているKinectドライバが同梱されているSDKには、いくつかのバージョンがあります。Kinect for Windows SDK にはKinectバージョン2系をサポートしたKinect for Windows SDK v2.0 もありますが、これはKinectV2専用なのでV1では利用できません。バージョン1.8のSDKをインストールして下さい。

このSDKに、Kinectのドライバが含まれています。

インストール完了後、コントロールパネル内にあるプログラムの追加と削除を見ると、Driver や SDK がインストールされているのがわかります。

 

参考:Kinect for Windows Developer Toolkitとは?

Kinect for Windows SDK に似たようなものとして、Kinect for Windows Developer Toolkitというものがあります。MMDでKinectを使うにあたっては必須ではありませんが、Kinect を使った開発に役立つコンテンツが入っているようです。

2.デバイスマネージャーで正常認識を確認する

Kinect for Windows SDK をインストールしたら、Kinect本体とパソコンをUSBケーブルでつなぎ、Kinect本体から出ている電源ケーブルをコンセントにつなぎます。ハードウェア故障などがなければ、このとき、Kinect本体前面についているランプがグリーンに点滅します。

次に、Windowsのデバイスマネージャーを開き、Kinect がWindows10上で正しく認識されているか確認します。

Microsoft Kinect 配下に、

  1. Microsoft Kinect Audio Array Control
  2. Microsoft Kinect Camera
  3. Microsoft Kinect Device
  4. Microsoft Kinect Security Control

の4つが認識されていればOKです。

3.MikuMikuDance32bit版をインストールする

MikuMikuDanceには3種類のパッケージがありますが、64bit版はKinectモーションキャプチャーが動作しません。MMDでモーションキャプチャーを使うには、MikuMikuDance32bit版を使う必要があります。

MikuMikuDanceは、下記のサイトからダウンロードできます。

32bit版はMikuMikuDance(DirectX9 Ver)と書かれたもので、MikuMikuDance_v931.zip です。

 

4.VC++のランタイムパッケージとDirectXをインストールする

下記3つのランタイムパッケージをインストールします。

ここまでやったら、一旦MikuMikuDanceが正常に起動するか確認しておきましょう。

5.MoggDxOpenNIをインストールする

下記のサイトから、MoggDxOpenNI version 0.5.6 をダウンロードします。

zipファイルを展開し、

の3つを、MikuMikuDance内にあるDataフォルダにコピーします。

6.利用したいMMDモデルを読み込む

モーションキャプチャーで動かしたいMMDモデルを読み込みます。ニコニ立体で様々ななMMDモデルがダウンロードできるので、好きなMMDモデルをダウンロードしてください。

MMDのzipファイルを解凍後、デスクトップなど適当な場所に解凍しておきます。その後、MikuMikuDanceを起動し、画面下部にある「モデル操作」欄にある「読込」ボタンをクリックし、MMDモデルを読み込みます。MMDモデルのファイル拡張子は、.pmx形式です。

正常にPMXファイルが読み込まれると、MikuMikuDanceの画面にMMDキャラクターモデルが表示されます。

7.MikuMikuDance で Kinect を有効化する

ここまで完了したら、MikuMikuDance で Kinect を有効化します。

MikuMikuDanceを起動し、画面上部のメニューバーから「モーションキャプチャー」を選び、Kinectにチェックを入れます。画面上は何も表示されませんが、正常にKinectとMMDのセットアップが終わっていれば、Kinect前面の一番左に赤いランプが点灯します。

カメラと被写体の位置が適切であり、被写体の全身が認識されていれば、画面右上にシルエット動画が表示され、カメラの動きに合わせてMMDモデルキャラクターがリアルタイムで動くようになります。

 

MMDでKinectが使えないときのエラー状況について

このアプリケーションのサイドバイサイド構成が正しくない〜

このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションのイベントログを参照するか、コマンドラインツール sxstrace.exe を使用して下さい。

DxOpenNi.dllがDataフォルダ内にありません。

DxOpenNI.dllがDataフォルダ内にありません。

GetProcAddress: 193:%1 は 有効な Win32 アプリケーションではありません。OpenNIが動作しません。おそらくOpenNIのインストールに失敗しています。

 タイトル:error
メッセージ:GetProcAddress: 193:%1 は 有効な Win32 アプリケーションではありません。
操作ボタン:「OK」のみ

というダイアログが表示される。「OK」を押すと、

 タイトル:Kinect
メッセージ:OpenNIが動作しません。おそらくOpenNIのインストールに失敗しています。
OpenNIのサンプル、NiUserTrackerが正しく動作するようにOpenNIをインストールし直して下さい。
操作ボタン:「OK」のみ

というダイアログが表示され、KinectがMMD上で起動しない状態になります。このエラーは、MikuMikuDance64bit版を使っている場合に発生します。この問題を解決するには、MikuMikuDanceの32bit版インストールし使って下さい

 

Kinect起動後もMMDの画面右上に人型のカメラ画像が表示されない

下記の点を改善してみて下さい。

被写体とKinectの距離が近すぎると認識されません。Kinectと被写体の距離を1〜2m程とり、人型全体が認識されれば自動的に画面の右上にシルエット画像が表示されます。

Kinectによるモーションキャプチャーの注意点について

KinectXBOX360単体版でMMDの全身モーションキャプチャーをする場合、全身を映す必要があることから、カメラと被写体との距離は2〜3m程度必要になります。身長が高いほどカメラとの距離空間が必要です。下記の記事にもモーションキャプチャー実行時の詳しい注意点が書かれています。

まとめ

今回は MikuMikuDance + Kinect でモーションキャプチャー環境を構築しましたが、MMDでモーションキャプチャーをするなら、 MikuMikuCapture + Kinect を使った方が楽です。