MMDモデルをFBX形式に変換し、Unreal Engine 5にインポートする方法【前編】
皆さんMMDは好きですか?
私は大好きです!
という事で、今回は表題の通りMMDモデルをUE5へもっていってみよう!という内容です。BlenderでMMDToolsというアドオンを使用しています。
MMD(MikuMikuDance)モデルについてよく分からない方は、こちらの記事が詳しかったです。
準備するもの
・MMDモデル
・MMDモーション
作業環境
Blender 3.6LTS
UnrealEngine 5.3.2
Blender Addon MMDTools
MMDモデルを探す
MMDモデルについては、「MMDモデル」「MMDモデル配布」などで探していただけると、色々見つかると思います。
(利用規約等はしっかりと読んでから利用しましょう。)
今回は原神からモデルをお借りして、UE5へインポートまで行きたいと思います。
【原神】公式MMDモデル配布一覧(4.0から4.6)https://www.hoyolab.com/article/20919156
MMDモーション
こちらもMMDモーション配布で探すとニコニコなどで手に入れることができます。
MMDモーションは、ボーカロイド曲に合わせてダンスさせているものになります。曲とダンスは同じものにしておきましょう。
こちらもモデルと同様、利用規約を守って利用させて頂きましょう。
今回はこちらを使用させて頂きました。
・MMDモーション mobiusP
・モーションアクター&振り付け : 海夏青(@natuse_sea)
・楽曲、MV : Giga - CH4NGE ft.可不
https://www.nicovideo.jp/watch/sm40564982
1. Blender下準備
MMDモデルはBlenderでFBXへエクスポートしてからUE5へ取り込むため、
下準備の為にBlenderでMMDモデルをインポートするアドオンを入れます。
MMD Tools
https://github.com/UuuNyaa/blender_mmd_tools
インストール方法
2.BlenderへMMDモデルをインポートする
原神モデル、キャラ名.pmx(中国語表記の場合有)をBlenderへインポートします。
特に数値を変える必要はないので、基本そのままインポートで大丈夫です。
ただ、MMDモーション(vmd)を後でインポートするのですが、その場合のスケールとpmxのスケールの値は同じにしておいてください。
(物理演算がうまく機能しない原因にもなるため)
普通にインポートすると、テクスチャが適用されたMMDモデルが表示されます。ただし、ピンク色になることがあります。
私の場合、テクスチャが漢字表記だったのでテクスチャ名を英語に変更したところ、Blenderへインポートした際ピンク色になってしまいました。
ピンク色になった場合の直し方
ちなみに、名前を元に戻さないとテクスチャパスが正しく認識されず、ピンク色のままになります。
特に理由がなければ、勝手に名前を変えるようなことは控えましょう。
(UE5へインポートする際にエラーになるかと考え、先にテクスチャ名を英語に変更しましたが逆効果でした…)
3.Blender設定をします
1.カラーマネージメント
まずは画面右側アイコンが並んだところで、"レンダー"タブを押します。
カラーマネージメント → ビュー変換 → 標準に変更します。
2.フレームレート
アイコン下側 "出力"タブ
→フレームレート → 30FPS
→下部 カラーマネージメント → オーバーライド
3.コリジョン
物理演算アイコン
メッシュを選択していると出てきます。
上部コリジョン → ソフトボディとクロス → 外側の厚さ 0.001
4. Blender画面にアドオンを表示する
画面を左クリックし、Nキーを押すと画面右側にメニューが出てきます。
5. 物理演算を押してみよう
物理演算を押して、下部にあるタイムラインの再生を押してみましょう。
6.MMDモーションをインポートしましょう
1.オブジェクトモードで、ボーンを選択します。
クリックしてオレンジ色になったら、MMDモーションをインポートしていきましょう。
MMDモデルも、モーションも0.08になっているので、そのままインポートします。
モーションをミラーは、左右反転する時にチェックを入れます。
MMDモーションをインポートするときの注意点が2点あります。
1. MMDモーションのスケールが、MMDモデルのスケール(0.08)と同じかどうか
2. 余白を30にする
この2点は必ずチェックしておいてください。
理由は後述します。
インポートしたら、アニメーションを再生してみましょう。
2.もう一度、メッシュを左クリックしてもう一度、MMDモーションをインポートします。
メッシュの方にインポートすると、シェイプキーがインポートされます。
慣れてきたら、ボーンとメッシュを両方選択してインポートしたら一回で終わるので、そちらが良いと思います。
7.リジットボディをベイクする
さぁ、物理演算とMMDモーションをMMDモデルにベイクしていきましょう。モーションの終了位置をタイムラインで確認しておきます。
モーションが入っている場合IKの所が緑色になっています。
1.サブステップを1にする。
2.ワールド更新を押す。
3.ベイクを押す。
物理演算がうまくいっていれば、FBXでエクスポートしてUE5へもっていきます。
8.物理演算がうまくいってない場合
以下の4点を確認してみて下さい。
1.物理演算タブ→コリジョン→外側の厚さ 0.001
2.MMDモデルとモーションのスケール0.08、同じ大きさかどうか
3.MMDモーションをインポート時に余白を30にする
4.リジットボディをベイクするときに、サブステップを1にする
MMDToolsのwikiには詳しい説明がありますので、そちらもご覧ください。
なぜ物理が壊れるのですか?
9.FBXでエクスポートする。
1.オブジェクトタイプは全て選択
2.-Zが前方、Yが上
3.スムージング 面にする
4.モディファイアーを適用にチェックを外す
5.アニメーションをベイク
・スムージング 面 → UE5へインポートした時にここが法線になっていると、
No smoothing group information was found in this FBX scene.
と注意が出るので、面にしておいてください。
(エラーが出ていても使えます)
・シェイプキーが含まれている場合、モディファイアーを適用しているとシェイプキーがバグって、フェイスアニメーションがうまくインポートされなくなります。
お疲れさまでした!
ここまででBlenderでの作業が終わりました。
あとはFBXをUE5へインポートして設定をしていきます。
記事が長くなったので、ここで一旦前編終了とさせていただきます。
とても簡単に持って行けたかのように書いてありますが、実際は物理演算が荒ぶって荒ぶって大変でした。何回FBXを消したことか…泣
私がハマっただけかもしれませんが、もし今後同じやり方でされる方が荒ぶる神に撃沈されないように、そっと記事を奉納しておきます。
UE5へのインポートは後編で詳しく書いていきます。
後編もよろしくお願い致します。
#UnrealEngine5 #UE5 #MMD #FBX #Blender