スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)
タグ :

UnityでMMDキャラの表情モーフ操作(2017年版)

 2017-09-24
今回は超ひさしぶりに、UnityでMMDキャラを使う記事!
mk00_20170924184855362.jpg


↓の記事の修正版になります。

【UnityでMMDキャラの表情モーフ操作(2014年版)】
http://unimake2.blog.fc2.com/blog-entry-22.html

いろいろ書き足りないところや、最近わかったこともあるので、
修正版として新たに、UnityでMMDキャラの表情変更の方法を書こうと思います。
なお途中までは、上の記事の内容とほぼ同じですので、
途中まで飛ばしてみてもらってかまいません。

説明で使うモデルのミクさんは、
Tda式初音ミク デフォ服verです。
https://bowlroll.net/file/16344



まず初めに、MMD4Mecanimというツールを使って
MMDモデルをUnityにもってきます。
詳しいやり方は過去のこちらの記事に。
http://unimake2.blog.fc2.com/blog-entry-12.html


mk03_2017092418490081e.jpg
Unityにモデルをもってこれたら、モデルをUnityのシーンに配置して
当たり判定をつけるために、モデルにコライダーを追加して大きさを整えます。
(画像ではBoxColliderをつけています)


mk04_201709241849011c4.jpg

MMD4Mecanimで変換したモデルのインスペクタを見ると、
MMD4 Mecanim Modelというスクリプトがついています。
ここのMorphを見ると、モデルの表情などの名前が一覧で書かれています。
ここが表情変更で重要な部分です。


さて、スクリプトでMMDモデルの表情を変えるために、2つのやりかたがありまして、
まずは1つめから説明します。


こちらのウダサンコウボウ様のサイトからMMD4MFaceをダウンロードします。
ウダサンコウボウ: [Unity]MMD4MFace - MMD4Mecanimの表情制御

ダウンロードしたらUnityにインポートしてください。
Vo1_2.jpg



mk05_20170924184902745.jpg
モデルのインスペクタに、MMD4MFace ControllerとMMD4MFaceのスクリプトをセットして、
MorphNameの箇所に、変えたい表情の名前を入力します。


次に、C#のスクリプトを新たに作りましょう。
名前はとりあえずClickhyouzyouで
キャラをクリックすると表情が変わるようにします。

mk07_201709241849058e2.jpg



mk08_201709241849065b2.jpg

このスクリプトをモデルにセットして、Hoge1の箇所に表情変更したいモデルを設定します。


mk06_201709241849032ae.jpg

テストプレイを開始して、モデルをマウスでクリックすると
なごみモーフに表情が変わってくれました!


ここまでは前回の記事とほぼ同じですが、ここからはもう一つのやりかたです。


まずはこちらのサイトからMMD4MecanimFaciemをダウンロードします。
MEBIUSTOSのブログ
http://mebiustos.hatenablog.com/entry/2015/08/03/192115


MMD4MecanimFaciemを使うと表情制御ができるようになります。


mk09_20170924184907466.jpg
今度はモデルにFaciem Controllerをつけました (Faciem Databaseも自動でついてきます)


mk11_20170924184910c2b.jpg
Unityの上のメニュー欄から MMD4Mecanim→MMD4MecanimFaciem→Faciem Inspectorで
専用ウィンドウが開きます。


mk14.jpg
FaceNameに好きな名前を入力して、ADD FACEのボタンを押すと
新しく、MMD4MecanimFaciemの表情が登録されます。
(入力する名前は、モデルにあるモーフとかぶらないようにしたほうがいいかも)


mk15.jpg
この状態でさっきのMMD4MecanimModelのMorthの欄にある
モーフの数値をいじって、好みの表情に変えていきます。


mk17.jpg
いい感じの表情ができたらSELECT FACEのSAVEを押します。


mk16.jpg

これでMMD4MecanimFaciemで1つの表情ができました。
同じようにして、もうひとつ表情をつくります。


mk20.jpg
今度は、げきおこという名前にしました。
ADD FACEを押して
眉や目や口をそれっぽい表情にしたら、SAVEを押して登録。

mk21.jpg


mk22.jpg

できた表情は、ここの矢印で切り替えられます。
Hide Wireframeを押すとキャラの回りの線が消えて見やすくなります。


スクリプトで切り替える方法
mk36.jpg
さっきのスクリプトからvoid OnMouseDown()の部分を消して、
void Updateを追加しました。
SetFaceの後ろの部分に、自分で作った表情の名前を書きましょう。


mk26.jpg
これでテストプレイを始めると、
デフォルトは笑いの表情でマウスを押している間は
げきおこの表情になるようにしました。


長くなってしまいましたが、いかがでしょうか?
ほかにもUnityでAvaterMaskで表情を変える方法なんかもありますが、
そっちは設定が面倒なのでMMDキャラで表情を変えて遊ぶなら
この2つがベストかなと思います。




(ここからは質問のお答えコーナー)
上の表情変化ですが、MMDモデルによっては
表情変更が機能しないとの質問がありました。(情報提供:はいえろさん)

mk27.jpg
こちらのりりしすぎるモデルは、ジョジョの花京院君で
MMDモデルの『眞白式花京院典明 ver.2.02』ですが、
このモデルでまばたきの表情変化を行っても、なぜか何も起きないとのこと。

mk28.jpg
目を閉じるように設定しても、テストプレイを開始すると元に戻ってしまいます。
眉毛や口や服のモーフは反映されるのですが、目だけがどうしても反映されません。

うーん、なぜ?
別に花京院君の目力がすごいから目を閉じないとかそんな理由ではなく…

別のバージョンのモデルだと大丈夫だったらしいと聞いたので、
今度はver1.22で試してみました。

mk29.jpg
ver1.22ではちゃんと表情が変わりました。

うーん、原因がわからない…ってことで
両方のモデルをPMXエディタで開いてみると原因がわかりました。


mk31.jpg

ここのモーフ種類という所を見るとバージョンでやり方が変わっていました。
ver1.22では頂点モーフ
ver2.02ではグループモーフというやりかたでまばたきの表情がされていました。

mk32.jpg
これがver2.02のまばたきモーフでリンクされている表情です。
片目のウィンクを両方の目でさせて、まばたきに見せる方法に変わったようです。

MMD4Mecanimはグループモーフに対応してないのかもしれません。
なので、どうやってもまばたきをしてくれなかったみたいです。

ということはUnityでも同じことをすれば実現できるのでは?ってことで
mk34.jpg

MMD4 Faceで両方ウィンクで目を閉じるように設定すると…

mk35.jpg
笑った! ちゃんと目が反映されました!

以上です! 


情報提供のはいえろさん、ありがとうございました!

 
タグ :
コメント












管理者にだけ表示を許可する
トラックバック
トラックバックURL:

http://unimake2.blog.fc2.com/tb.php/65-35db3254

≪ トップページへこのページの先頭へ  ≫
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。