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