MikuMikuDance for XNA実験
MMD for XNAというミックミックダンスをXNAで動かせるようになるライブラリをとしあきに教わったので興味本位で実験してみる。
ちなみに作者さんの許可を全く取ってない個人実験なので、けっこう危うい。
あと間違った情報もたくさん書いちゃうと思うので、おかしいところはどんどん指摘してね。
・・・つっても俺、MMD触ったことないんだよなぁ。
なのでMMDに入ってるサンプルデータを実験に使ったよ。
MMD for XNAそのものには、著作権の関係上初音ミクの3Dモデルもモーションも入ってない。
なのでミックミックダンス本体から3Dモデルを拝借しつつ、モーションも読み出して使った。
ソリューションファイルを起動してみると、けっこうたくさんプロジェクトがあって迷ったが、
とにかく試作するだけならMikuMikuDanceXNADemoというプロジェクトを使えばいいらしい。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (demo.png)
ちなみにReadMe.txtはこんなとこに入ってたよ。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (readme.png)
で、モデルデータとモーションデータをcontentに追加しておくんだが,
LoadContent関数の中に、こういうロード命令が入ってたんだ。よく見てみると、
モデルのロードは"Miku"というアセット名で、モーションのロードは"TrueMyHeart"というアセット名で
それぞれロードしようとするらしい。なのでモデルデータとモーションデータのアセット名をMiku と True My Heartに変えておいた。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (loadname.png)
ビルドすると、「クラスライブラリの出力を持つプロジェクトを直接起動することはできません」とかエラーが出てしまった。
どうやらライブラリのはずのMikuMikuDanceXNAを本プロジェクトとして起動しようとするのが原因みたいなので、全部ビルドするんでなく
MikuMikuDanceDemoのプロジェクトだけをビルドするか、MikuMikuDanceXNADemoをスタートアッププロジェクトに設定すると
エラーを出さずに動いてくれた。ここらへんはよくわからん。まぁ正常にビルドできたんだから良しとしよっと。
途中デバッグで「デバイス無いよエラー」が出たから、Xbox360用のコピーとかを全部削除した。
今回はWindows上で試験起動するだけなので、多分必要ないだろう。
正常に起動した様子。起動できれば万々歳、とりあえず背景とかは今後調べていけばいいだろう。
エンターキーで踊りだすようになっていた。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (miku.png)
これだけじゃものたりないので、左右キーでカメラを回転とかできないかなぁと思った。
で、MikuMikuDanceXNA内のファイルを見てたら、MMDcameraというクラスを見つけたので、
「多分コレがカメラを操作する命令群のつまったクラスだな?」と想像しつつ、いじくってみたのだ。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (mmdcamera.png)
Game1.csファイルの中のUpdate関数内にこういうのを書き込んでだな。
rotetarという変数にカメラの回転角度を入れといて、LeftキーRightキーで増減できるようにしつつ、
camerapositionというvector3変数を作っといて、cosとかsinとか使ってうまく回転するようにした。
どうもmmd.cameraは常にミクのいる原点を向いてるみたい。変更する方法はまだわからないがまぁ気にしないでおこう。
※追記
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (rotate.png)
んで、cameraposition変数の値を、Draw()内でmmd.Camera.Cameraposに入れてやった。
もしかUpdate内に入れたほうが良かったかもしれないが、まぁ動いてるから良しとしようっと。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (camerapos.png)
結果。左右キーでカメラを回転させて好きな角度から初音ミクの踊る姿を見れるようになったよ。
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (debug.jpg)
一言
んー実験してみたはいいものの、まだよくわからないことがいっぱいだ。
もしもMMD for XNAで新しい発見とか正しい情報とかあったら、是非教えてね。
最終更新:2010年07月16日 10:25