UnityでMMDをMMD4MachanimでFBX化しさらにそのFBXをVRMに変更して使うメモ
定期的にやる作業で、各々のマニュアルを見れば済む話なのですが、細かいやり方やパラメータすぐ忘れちゃうのでメモ
※MMDは製作者の許諾範囲に従ってご使用ください。
■MMD4Mecanimを使用してMMDからFBXを制作する
1.MMD4Mecanim
こちらからMMD4Machanimをダウンロード
http://stereoarts.jp/
解凍して、フォルダ内のMMD4Mecanim.unitypackageをUnityにインポート。
MMDファイルをダウンロードしてフォルダ内にある状態にする。
フォルダごとUnityのProjectにドラッグアンドドロップ。
※今回はホロライブの公式MMDを使用。
MMDをインポートすると、自動的にMMD4MecanimがMMDフォルダ内に
<MMDのファイル名>.MMD4Mecanim
というファイルを作っているので、それを選択して表示するインスペクタで利用規約を読み、チェックして「同意する」を押す。
同意するとインスペクタが下記になるので、そのまま右下の「Process」を押す
するとDOS窓が開いて処理が始まるので暫く待つ(ちょっとかかる)
処理が終わるとMMDと同じフォルダ内に、MMDと同じファイル名の「*.fbx」ができているのでそれをクリック→インスペクタ
RigタブでHumanoidを選択してApplyボタンを押して「Configur」を押す
インスペクタで全身が緑(ボーンが正しく認識されている)になっているのを確認して、左下あたりの「Pose」をクリックして「Enforce T-Pose」にする。(湊あくあモデルは元々Tポーズだったが、逆Yのこともあるため)
その後「Apply」を押して「Done」を押す。
この時点で普通のFBXとして変換されているので、適当な手持ちのモーションをAnimatorにのせ動作確認をする。またモーフが正しく動作するか手動でチェックする(この記事ではそのへんの解説はしません)
ちなみにVRMにしてFBXで完結する場合、Hierarchy上のFBXを選択→インスエペクタ内の一番下「Physics Engine」がデフォルトでNoneになっていますが、「Bullet Physics」にすると、一切パラメータ調整はできませんがスカートや紙など最低限の揺れモノが動作します。
シェーダーを変更します。現状のMMD4Mecanimが用意したシェーダー(MMDLitなど)はVRMには持っていけません。下記の手順でUniVRMを導入してから、シェーダーを手作業でMToonに変更しましょう。MMDLitの影の色などは引き継がれないので、変更時に手動で色コードをコピーします。個人的にはVtuberモデルの場合、顔のシェーダーでは影は反映させないほうが良いと思います。トゥーン表現に重要なエッジカラー(枠線)もMToonシェーダー内で設定できます。
MMDは基本ポーズがAポーズ(腕を水平から40度くらい下に傾けた姿勢)になっていますが、UnityのHumanoidモデルはTポーズが基本となります。このまま変換するとUnityのHumanoidを前提としたアニメーションを適用した時におかしくなるので、Tポーズに変更します。Hierarchrからモデルの関節部分のオブジェクトを選択して、Transformで直接角度を指定します。関節の名前はモデルによって異なりますが「15.joint_RightArm」「36.joint_LeftArm」みたいな感じです。今回はRotationのZ軸を40度、-40度にしました。
■FBXからVRMへ
このFBXをVRMにします。下記よりUniVRMのunitypackageを
ダウンロードします。unitypackageをそのままUnityにドラッグしてインポートします。なお、UniVRMのバージョンですが、V1.x系とV0.X系があります。新しい方がいいようにも感じますが、VRMというのは3Dモデルを共通の仕様で色々なソフトですぐ使えるところに利点があります。V0.X系で最適化されたソフトも多く、互換性を考えるとV0.X系の方を僕はおすすめします。
具体的なバージョンですが、僕はv0.61.1を使っています。このバージョンはCluster.さんが推奨バージョンとしており、まあCluster.が推奨してるからには安定していて使ってる人一番多いんじゃないかなくらいの理由です。
上記からUnityPackageをダウンロードし、Unityにインポートします。
先ほどヒエラルキーに置いたFBXモデルを選択(ProjectのFBXではなく、hierarchyに置いたほうを選択)して、メニューの「VRM」→UniMRM-****→Export humanoidを選択します。
下の画面の「VRM EXporter」が出てくるので、ExportSettingsをクリックして開き、モデルのTitle、Author、Version情報を入力し、「Force T Pose」にチェックして右下の「Export」を押します。(この画面が小さくて上のコマンドラインしか見えないことがあるので、その時はマウスでウインドウを大きくしてください。)
保存タイアログが出るので、「Assets」以下の好きな場所においてください。
出力が成功すると、保存フォルダの中にVRMファイルが保存されます。
なお、先程FBXの段階でシェーダーをMToonに変えなかった場合、MMDで設定したシェーダーがリセットされ、Standardになってしまっています。その場合はここでこのStandard Shaderをすべて「VRM」→「Mtoon」に変更します。
Mtoonにしただけでもこのくらいきれいになりました。
正しく動いていますが、揺れモノはまったく動いていません。これを揺らすには、Springboneなどの設定が別途必要になります。
VRMには標準でVRMSpringboneという揺れモノコンポーネントが付属しています。ただこれはモデルの揺らしたいところにボーンがモデル製作時点で埋め込まれていることが前提です。また、足を90°に曲げたときなどにスカートなどは貫通してしまうことが多いです。
UnityのClothを使用するか、有料アセットの「Magic Cloth」などを使用すると貫通せずに処理することができますが、これはVRM本体とは別の処理となります。他のソフトウェアで読み込ませたいなど、純粋にVRMだけで完結させたいときはVRMSpringboneを使用することになります。
詳しくは、「VRMSpringBoneの設定メモ」の記事を参照
この記事が気に入ったらサポートをしてみませんか?