主にMMDやBlenderの個人的なメモ用です。一部に成人向けの内容を含みます!未成年の方はご覧にならないでください!

モデルの規約(ライセンス)によっては改造や他形式への変換、他ソフトウェアでの利用、表現方法(性的コンテンツなど)が禁止または制限されている物もあります。ご注意ください!!

主にVRChatのアバター向けとして配布されている、”Vroid製ではない” FBX/VRMモデルをPMXへ変換、設定等を行い、MMDで使えるようにします。

Vroid製VRMモデルをMMDで使えるようにする場合は【VRM→MMD】Vroid製VRMモデルをPMXへ変換してMMDで使えるようにするのページをご覧ください。

流れとしては、(FBXの場合はいったんBlenderでVRM化して)VRMモデルをUnityでPMXへ変換しPmxEditorで調整、という流れです。

このページではVR向けアバターモデル「RadDollV2」@三丁目の魔界を利用させてもらい、PMX化してみます。

更新内容:
20231009:リンク先や誤字等修正、Unityの推奨Verを修正、その他の項目にMMDに読み込ませた際にMMDが落ちる場合の対処を追加
20221107:fbxの変換方法を追加、ページ改定
20220817:VRMtoPMXExporterではなく、VrmToPmxExporterSetupを利用するように改定など


必要なソフトウェアやプラグインなど

Blenderとアドオン

今回はVer 3.3 LTSを利用します。FBXをいったんVRM化するのに使います。 BlenderでVRMモデルをインポート/エクスポートできるようにするアドオンです。
アドオンのBlenderへのインストールなどはBlender 3.3 LTSのインストールと個人的な初期設定などをご覧ください。

Unityとプロジェクトファイル

下記のプロジェクトファイルを開くのに必要です。
もともとはFuria氏が公開されていたVRMtoPMXExporterというVRMモデルをPMX化するUnityのAssetをneon-izm氏が修正を加えたうえでUnityのプロジェクトファイルとして公開配布されているものです。

このページではUnityのインストール方法等は解説しません。
”Unity インストール”等で各自検索してください。このページではすでにUnityをインストールしたものとして進めます。

PmxEditorとプラグイン

プラグインのインストール方法についてはこちらのページをご覧ください。
標準ボーンチェッカーという名前ですが標準(必須)ボーンの有無をチェックするだけではなく、ボーンの設定を修正したりMMD上で正常に動作しないモデルのチェック/修正機能を持つプラグインです。
VRMモデルをPMXへエクスポートしても例えば、左/右腕ボーンのローカル軸などは設定されないので上記プラグインで修正します。

プラグイン名の通り、モデルへ準標準ボーンを追加するプラグインです。
上記リンク先動画の概要欄に記載されたURLからは現在ダウンロードできないので、動画のコメント欄のURLからダウンロードする必要があります。
(あにまさ式初音ミクVer2を基準とした)標準モーフの有無と表示枠への登録状態がひと目で分かるプラグインです。

(FBXモデルの場合のみ)Blenderでの作業

FBXのモデルの場合、いったんBlenderでVRMへ変換してからUnityで変換したVRMモデルをPMXへ変換します。
VRM Add-on for BlenderをBlenderへインストールしたものとして進めます。


まずは最初からあるcubeやカメラなどのオブジェクトを削除します。
3Dビュー内へマウスカーソルを持っていき、[A]→[X]と続けて入力してオブジェクトを削除します。


トップバーのファイルインポートFBX(.fbx)からFBXファイルをインポートします。
インポート時のファイル選択ウインドウの右側に色々とオプションが表示されていますが、デフォルトのままで大丈夫です。


FBXモデルをBlenderへインポートしたら、3Dビュー内へマウスカーソルを持っていき、[Z]キーからマテリアルビューに切り替えてテクスチャが正常に読み込まれているか確認します。
モデルが真っ白だったり(一部)ピンク色の場合、Blenderがテクスチャを見つけられていません。

テクスチャが正常に読み込まれていない場合の修正

今回のケースでは正常に読み込まれていないのでこれを修正しますが、一部工程でBlenderへ標準でバンドルされているNode Wranglerアドオンを利用します。(なくてもできるが面倒)
Node Wranglerアドオンの有効化に関しては【Blender 3.3 LTS】 addonのインストールと個人的によく使うアドオンをご覧ください。


まずはBlenderの機能で欠けているテクスチャを探してみます。
トップバーのファイル外部データ欠けているファイルを探すからダウンロードしたモデルのtexフォルダなどを指定し、モデルに正常にテクスチャが読み込まれるか試してみます。

今回のケースではこれだけでは駄目でしたので、手動で修正します。


トップバーからShadingタブを開き、中央下部のシェーダーエディター上で[HOME]キーを押してノードを表示させます。


モデルの服などをクリックし、シェーダーエディターのプリンシプルBSDFノードをクリックします。
[Ctrl]+[T]キーを押して画像ノードなどを接続させます。


画像ノードの開くから該当しそうなテクスチャを選択、割り当てます。


今回利用させてもらうVR向けアバターモデル「RadDollV2」@三丁目の魔界モデルの場合、ボディと目などのメッシュの分離も必要でした。

まずは顔部分を選択し、[TAB]キーで頂点編集モードへ入ります。
[Alt]+[A]キーで頂点の選択状態を解除し、[P]キーを押してマテリアルからを選択してマテリアルで分離します。
分離したらもう一度[TAB]キーを押してオブジェクトモードへ戻ります。

ゴーグル部分(レンズ)も同様の手法で修正します。


テクスチャの割り当て修正が完成したら上記の画像のようになるはずです。

VRMモデルとしてエクスポートするためにボーンの割り当て


トップバーからLayoutタブに戻ります。
サイドバーのVRMタブを開き、VRMモデルのチェックをクリックしてVRMモデルとして必要なボーンが割り当てされているか確認します。
モデルによっては自動的に割り当てられるのですが、今回のケースでは割り当てられなかったので手動で割り当てます。


サイドバーのVRMタブからVRM 0.x Humanoidの項目を開き、VRM必須ボーンやオプションボーンを選択、割り当てます。

再度、VRMモデルのチェックを行い、エラーがなければVRMとしてエクスポートできる状態です。

VRMモデルとしてエクスポート


トップバーのファイルエクスポートVRM(.vrm)からVRMモデルとしてエクスポートします。
エクスポート時の非表示のオブジェクトも含めるオプションを有効にしてエクスポートした方が良いかもしれません。

Unity上での作業など(VRMモデルの場合はこの項目から)

FBXではなく、VRMモデルの場合はこの項目からご覧ください。

VrmToPmxExporterSetupのダウンロードと解凍


VrmToPmxExporterSetupのGitHubページを開き、ページ上部のCodeからDownload ZIPをクリックしてzipファイルをダウンロードし、任意のフォルダへ解凍します。

UnityでVrmToPmxExporterSetupをプロジェクトファイルとして開く


UnityEditorまたはUnityHub(上記画像はUnityHub)から解凍したVrmToPmxExporterSetupフォルダをプロジェクトファイルとして開きます。
※UnityのVerとしてUnity2020.3.9f1かそれ以降が推奨されています。
→2020.3.9f1が推奨です。最新版ではエラーがでる場合があるようです。

VRMモデルのUnityへの読み込み


VRMモデルをAssetsウインドウへD&DしてUnityにインポートします。


インポートしたVRMモデルを画面左上部のHierarchyウインドウへD&Dします。

VrmToPmxExporterSetupでPMXとしてエクスポート


トップバーのFancyConverterをクリックします。


表示されるウインドウにHierarchyウインドウへ追加したモデルをD&Dして変換ボタンをクリックして数分待つと.pmxとして出力されます。

一度、変換ボタンをクリックすると下記のオプションが操作できるようになり、PMX化する際のオプションを設定できます。
PMXとして出力する際のオプション

HierarchyウインドウのVRMモデルを選択して画面右側のInspectorウインドウをスクロールするとPMX Exporter (Script)という項目が増えるのでここでPMX化するオプションを指定します。
基本的にデフォルトのままで大丈夫ですが、Auto Copy Texture(default on)Merge Material (default on)のチェックは外してOFFにした方が良い場合もあるでしょう。
Auto Copy Texture(default on)をOFFにした場合はテクスチャを元のモデルから手動で持ってくる必要があります。

下記のオプション詳細は付属Readmeからの転載です。
  • Replace Bone Name(Default on)
一部基幹ヒューマノイドボーンをMMD標準ボーン名に置換します。
  • Convert Armatuar Need Replace Bone Name(Default on)
Aスタンス化、左右足IK、両目ボーン、全ての親ボーン、センターボーン及び親子構造、捩じりボーン、向き反転
を行います。
  • Replace Morph Name(Default on)
VRMBlendShapeProxyプリセットの一部(グループ化対応、マテリアルブレンド非対応)
及び、VRoid標準のモーフについて、MMD準拠名へ置換します。
  • Use Reverse Joint(Default off)
物理演算において逆Jointを追加します。
基本の根本から先端へ伝わる動きに加え
先端の動きが根本へ戻ってくる振動が伝わりやすくなります。
  • Emulate Spring Bone Leaf Colider(Default off)
Unity上でのVRMSpringBone(揺れモノ)の先端の当たり判定を正確にPMXに変換します。
通常(Off)は先端が離れすぎると重力に負けて垂れ下がりやすくなるため、先端の配置を再計算しています。
  • Use Anti Gravity(非推奨 Default off)
全ての物理剛体を無重力状態(VRMSpringBoneでは重力反映しない設定ができる)にするためのボーンを追加します。
Secondaryボーンを数値入力で10上にずらすと効果を発揮する設計です。
非推奨です。
  • Bone Dir Modify(Default on)
ボーンの見かけ上の向きを子に向けるようにします。ローカル軸ではありません。
PMXにおいて、見かけ上の向きとローカル軸は別概念です。
  • Ca Scaling(Default 14)
出力サイズ倍率です。デフォルトでは14倍します。Vroid基準身長のモデルで14倍がMMD標準モデルとほぼ同等の身長になります。
  • Auto Copy Texture(default on)
テクスチャファイルを自動で出力するpmxで読める様に、サブフォルダ配下に展開します。
生成されるテクスチャは下記処理を施した物になります。オリジナルのテクスチャを利用したい場合手動でコピーしてください。
ExportedTexture=BaseTexture*BaseColor+EmissionColor*EmissionTexture
  • Create Ex Texture(default off)
MMEを用いて、MToonに近い発色を実現するシェーダ及びテクスチャをセットを生成します。
MMDに別途MMEのインストールが必要になります。
専用のテクスチャのために、UVのU成分が1/3化します。そのためループテクスチャは利用できません。
また、生成するシェーダではアウトラインの描画をサポートしません。

MToon以外のマテリアルが含まれる場合CreateExTextureを利用しないでください。
  • Physics Alternative Setting(default off)
物理演算の設定を、とにかく暴れ難く大人しくする設定にします。
  • Sort Materials (default on)
マテリアルの描画優先度を基に、PMX材質の順序をソートします。
これにより半透明部分の背景抜け等が軽減されます。
  • Merge Material (default on)
SortMaterialsのオプションです。
同一materialを利用している材質をmergeし、構造をシンプルに描画負荷を軽減します。
改造等のためにメッシュ分割されている方が便利な場合はOffにするのが便利な場合もあります。

PmxEditor上での調整

VRMtoPMXExporterでエクスポートしただけのモデルでも元のVRMモデルにUnityなどの揺れものボーン用の設定がされていればPMX変換時にPMXの物理に変換され、動くはずです。
(揺れものボーン用の設定がされていてもVRMモデルによっては胸が動かない?)
しかし、単純にエクスポートしただけのPMXモデルだと、MMDで.vmdモーションを読み込ませた際に変な動きになったり、表情(モーフ)が変わらなかったりする場合があります。
これは標準(必須)ボーン以外の準標準ボーンと呼ばれるボーンや、一部のモーフが足りないためです。(※.vmdモーションによって必要なボーンやモーフが異なる)

このため変換したPMXに準標準ボーンを追加したり、モーフのリネーム等を行ってMMDとの互換性を高めます。


PMXモデルをPmxEditorへ読み込ませ、標準ボーンチェッカーを実行します。
ダイアログはすべてはいで進めます。(ボーン関連も)


次に準標準ボーン追加プラグイン準標準ボーン追加(PMX)をデフォルトオプションで実行し、捩ボーン等を追加します。


標準モーフチェッカーを実行し、TransformViewから各モーフを動かしてみて該当するモーフ名へ変更します。(モーフ名の長さに注意)
※参考:アバターのリップシンクの作成/資料(VRChat 日本wiki)


PMXデータの状態検証を行い、Bad!箇所の修正を行います。(材質名の重複を修正したり、不正モーフの削除など)

材質名をわかりやすいものにし、透過などに問題がある場合では材質順の修正を行います。

(オプションで)各材質にエッジやスフィア、Toonテクスチャの設定

その他

  • 胸の物理(揺れ)など
モデルのボーン構造にもよるが胸の物理(揺れ)などはRGBA式おっぱい剛体と相性が良い
上記リンク先モデルをダウンロードして、すべての材質と不要なボーン(胸物理関係と上半身(+2)以外)を削除して保存し、VRM→PMX化したモデルの胸ボーン名を左/右胸にしてPmxEditorで追加(マージ)すると胸が揺れるはず(要剛体の非衝突グループ設定)
※ただし、RGBA式おっぱい剛体はMikuMikuMovingや、Blenderのmmd_toolsでは動かないので注意
(Blenderでレンダリングするなら【MMD×Blender】Blenderの揺れものAddonなどを使ってMMDモデルの胸を揺らすを参考に胸を揺らす)

逆にAH式などの胸揺れ方式とは相性が悪い?(ボーンの位置や構造にもよる?)

  • モデルを動かした際に足首などがおかしな動きをする場合
モデルにモーションを読み込ませたり、動かした際に足がぐるんぐるんしたりぐにゃったりする場合を参照して修正すれば治る可能性がある

  • PmxEditor上では問題ないがMMDに読み込ませるとMMDが落ちる場合
表示枠に登録されているモーフ数が255以上だとMMDが落ちる
表示枠に登録しなければモーフ自体は20000までなら大丈夫

Menu

モデル/アクセサリ/素材など

Blender 2.9 LTS


※下記のページは古いものです

エンコード

コーデック

エンコード/動画編集ソフトウェアなど

その他

サウンド編集ソフト

AD

AD

管理人/副管理人のみ編集できます