スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

web拍手 by FC2   

MikuMikuDance for Unity の使い方。

本題に入る前に。
ブログのcssやらjsやらがよくわからん間にダメージを追っているので見づらい部分などあるかもしれません。
ごめんなさい。今月中にオレオレアドベントカレンダーの一環として修正する気はあります。

オレオレアドベントカレンダー 1日目

な、何を言っているのかわからないと思うが、俺も何が起きたのかわからねえ...!
12/5なのに1日目とは...ッ!
>>だったら"オレオレアドベントカレンダー"をやればいいのでは...?<<
ちょいと長いか?しったこっちゃない、今までの合計分だ...(涙

というわけで、初日(!?)は"MikuMikuDance for Unity"の使い方で行きます。
闇鍋#2でも簡単に、もといざっくりと導入から使い方まで説明してきましたが、今回はちゃんとやってみようかなと。



流れ


注意事項

  • Unity 3.5 を使っています
    Unity4はちょっとおまちを...未だに触れてないです...
  • MFU r118 を使っています
    r118を入れるにはSubversionが必要です。
    リリースされているr114では、この記事の通りで、IK以外は問題なく使用できます(多分)
  • r118ではVMDインポートで問題が残っています。
    使用可能ですが、同一名のモデルがシーン内に無いとだめ、という問題が発生しています。
    この解決は近くコミット予定なので、すこしおまちを...
  • ツール郡の使い方はパスします
    Unityどう使うの!Subversionどう使うの!なんてのはちょっとズレるので
    またの機会に説明するかもしれません。


各種必要なものを用意

これらの導入方法、詳細な使い方に関してはパスします。

Unityに関しては公式からDLしてインストール。
MMD関係に関しては VPVPWikiを見ると載っていると思います。
その他のものは調べるとぼくの説明よりもわかりやすいものが出てくるはずなのでそちらで...

  • Unity
    今だと4がDLされますが、3.5基準ですすめています。
    そのうち4でも試すので、そこで改めて4向けの内容で書きます。
  • MikuMikuDance
    場合によってはモーション作ります。
    モーションやモデルの確認でも使います。
  • PMDEditor(PMXEditor)
    モーション、モデルの確認用で使います。
    IKやボーンの設定とかも見れるのでわりと必須??
  • Subversion
    MFUはSourceforgeで公開しているため、最新版が欲しい場合には必要です。
    Windows環境であれば、 TortoiseSVN とか入れるといいでしょう。
  • モデル
  • モーション
    各々で必要なものを用意しましょう。

    なお、現在最新であるr118のものではPMD形式にしか対応していません。
    加えて、r117より前(~r116)では、IKには対応していません。
    詳しくはおまけにて。


MFUを準備する

UnityでMMDを動かす会(SourceForgeよりダウンロードできます。
   mfu_dl_2.jpg    mfu_dl_3.jpg

最新版が欲しい場合は、 http://sourceforge.jp/projects/mmd-for-unity/scm/svn/ を参照してください。
なおSubversionが必要です。画像のような感じでチェックアウトしてやるとOKです。
mfu_svn_1.jpg    mfu_svn_2.jpg

DLして展開後。
mfu_setup_1.jpg
KiriKiriLikeScriptが入っていた場合、それは今回は使わないので、消すかMFUの中だけ使ってください。

先ほど展開したフォルダをそのまんまUnityに放り投げます。
mfu_setup_2.jpg
このとき、MMDIKBakerは不要なので、削除します。

どこかしらにMMDIKBakerは残しておいた方がいいです。
放り投げた元(DLしたもの)は残っているはずなので、それは適当な場所においておいてください。

特にエラーがなければ、
mfu_setup_3.jpg
のように、メニュー項目が追加され、PMDLoader、VMDLoaderが使えるはずです。
XFileImporterは今回は使用しません。GoogleSketchUpのモデルなど、Xファイルをインポートできるらしいです。


MFUで表示してみる

モデルをUnityに放り投げます。
この時注意するのが、フォルダ分けしないとごちゃって面倒なことになるのと、
ちゃんとテクスチャも一緒にいれることです。
あと、pmdファイルしか扱えないので、そこも気をつけましょう。
(PMXEditorを使うとPMDに変換できます。情報欠落があるかもなので、適当に直してください)

この例では、初音ミクXSを使ってみます。
mfu_setup_4.jpg

メニューより、Plugins -> MMDLoader -> PMDLoader とたどると、ウィンドウが開きます。
このウィンドウにPMDファイルを指定します。
mfu_setup_5.jpg
この時の他の設定はデフォルトでいいでしょう。
(Unity4のときはMechanimが悪さをするかもしれません。あとでちゃんと調べます。)

インポートが終了すると、プレファブが作られ、シーンに設置されます。
ただ、デカイです。隣にUnityにある1x1x1のCubeをおいてありますが、それ比較でこの大きさ。
mfu_setup_6.jpg

適切な大きさに直し、再生すると、
mfu_setup_7.jpg
このようになります。

うーん、ネクタイが貫通してしまっていますね。
mikuXSを選択し、MMDEngineスクリプトのUse RigidBodyのチェックを外すとよくなります、
がこれでも納得行かないところ...
mfu_setup_8.jpg   mfu_setup_9.jpg
(詳しくはおまけにて)


MFUで動かしてみる

VMDファイルをUnityに放り投げます。
IKモーションのままでも多分大丈夫です。比較的すぐに直せるので、まずは試しましょう。

走る、TrueMyHeartのアニメーションをいれました。
なお、どちらもIK有りなので、r114のものでは正しく動きません。
r118でも一部で破綻したりズレが生じています(詳細はおまけにて)
mfu_setup_4.jpg

メニューより、Plugins -> MMDLoader -> VMDLoader とたどると、ウィンドウが開きます。
このウィンドウで、インポートしたモデルのプレファブとVMDファイルを指定します。
mfu_setup_10.jpg
ゲームオブジェクトではなく、プレファブなのがポイント。
また、CreateAssetにチェックを入れておくと、若干の利便性向上が図れるかもしれません。
(どちらでも大丈夫です)

VMDからアニメーションを生成したら、すでにシーンに設定してあるオブジェクトでアニメーションを設定します。
これは走るアニメーションなので、Loop設定にします。
mfu_setup_11.jpg   mfu_setup_12.jpg

再生をすると...
mfu_setup_13.jpg

ではもうひとつ、TrueMyHeartも同様にしてコンバートして再生すると...
mfu_setup_14.jpg

足もそこそこちゃんと動いている感...!
うーん、表情も動くともっとよさそうです。
が表情はちょっとアレな感じでやっているようなので...(詳細はおまけにて)

それとスカートが足抜けたりしてますけど、うーん...(詳細はおまけにて)


まとめ

DL -> セットアップ -> インポート -> コンバート -> Enjoy!

PMXはPMDに事前に変えておきましょう。
IKモーションはそのままでも多分大丈夫です。


おまけ(補足や追加など)

  • MMDEngineのUseRigidBody について
    PMDのインポート時に何かしらの基準で作成した剛体衝突の無視設定の有効有無です。
    チェック有りの場合は、Physics.IgnoreCollisionによって剛体衝突の無視を起動時に設定します。
  • IKアニメーションの破綻
    計算の書き方がすこし違うのか、インポート時の座標がずれているのかわかりませんが、一部のモーションでおかしな曲がりをすることがあります。
    どなたか解決を...
  • 表情の表現方法
    表情を使うには、Expression内の各表情のZ座標を弄ることで使えます。
    複数の表情のZ座標を調整することで、表情の合成もできます。
    ただし、同じ部分を弄る表情("あ"と"う"など)はうまくいきません。MMDでもそうだっけ...?

    MFUでは、表情はUnityオブジェクトのメッシュデータを書き換えて行なっているようです。
    そのため、同一モデルが複数シーン内にある場合、みんな同じメッシュを使っているので、みんな同じ表情になります。
    また、透過画像が必要なもの? 照れ時の頬の染まりとか。は背景が黒化してたりします。

    モデルの直接操作なのでなんとかならないような気もしますね...
    頂点シェーダ使うといいよーみたいな話も聞きますが、シェーダ周りはさっぱり...
  • 足が抜ける問題
    前述したMMDEngineのUseRigidBodyとか、IKスクリプトあたりが問題なんですかねえ。
    AnimationのAnimatePhysicsにチェック入れると、通常アニメーションだと多分ぬけなくなります
    IKが効いているものはスクリプトで動かしているので、それですり抜けるのかなーと

    よくわかってません...これものちのちちゃんと調べてなんとか解消したいですね
  • 付属ツールのMMDIKBakerについて
    ログを見る限り r56 あたりから付属しているようです。

    こいつは、PMDとVMDを与えて、IKアニメーションをFKアニメーションに変換するものです。
    r117で入った、IKスクリプトじゃ上手く動かない、という場合に使用するとよいでしょう。

    ただ、現在はCUI、それもファイル名はハードコーディングなのでとても使いづらい。
    簡単なフォーム化、またはCUIでファイル名はこちらで設定できるようにしたものを追加する予定はあるので、そのコミットまでおまちを...

    こいつを使い、Unityに持って行こうとすると、たまに? VMDLoaderが正常に動かない場合があります。
    その際は、一旦PMDLoaderのVMDViewerでFixアニメーションにすることで動きます。
    それでも駄目なら、出来たVMDをMMDに入れて、再度出力してみてください。
  • 付属ツール? KiriKiriLikeScriptについて
    使ったことがないのでわかりません。
    ADVが簡単に作れる吉里吉里ライクなものを実装するスクリプトでしょう。
  • 近々のコミット予定
    • VMDLoader(というよりMMDConverter.cs)の修正。
    • MMDIKBakerの簡易GUI
    • Unity内でのIKBaker

    3つ目に関しては、今のIKが破綻しなくなってからなのかなーと思ったり。
    やっぱりUnity内でもあったほうが便利なはずだと思うので、どちらにせよ用意はしたほうがいいのかなと。
    (現に、Mayaから?アニメーションを入れるときにIKのものはベイクされるらしいですし。)

ということで、長々とお付き合いありがとうございました。
つい正式に出たUnity4に対応した内容を書けなかったのが残念ですが、近く、試すのでその時に改めて書きます。

あと、MFUを使って何かしらのゲームを作る予定はめちゃめちゃあります。
時間の合間を縫ってすすめていきたいですね。

ではでは、MFUでたのしいUnityライフを送りましょう!(強引

web拍手 by FC2   

コメントの投稿


非公開コメント

コメント

STERS's Development Room

STERSの開発室っぽい何か。


プロフィール

Name:STERS
Unity3D/C#/PHP/js/C++/VB
などを勉強中です

[STERS's Room]
[ファイル置き場]

カテゴリー
最近の記事
最近のコメント
カレンダー
03 ≪│2017/04│≫ 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
RSSリンクの表示
ブログ内Google検索
Google
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。