モデルの規約(ライセンス)によっては改造や他形式への変換、他ソフトウェアでの利用、表現方法(性的コンテンツなど)が禁止または制限されている物もあります。ご注意ください!!
主に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を利用するように改定など
HierarchyウインドウのVRMモデルを選択して画面右側のInspectorウインドウをスクロールするとPMX Exporter (Script)という項目が増えるのでここでPMX化するオプションを指定します。
基本的にデフォルトのままで大丈夫ですが、Auto Copy Texture(default on)とMerge Material (default on)のチェックは外してOFFにした方が良い場合もあるでしょう。
※Auto Copy Texture(default on)をOFFにした場合はテクスチャを元のモデルから手動で持ってくる必要があります。
下記のオプション詳細は付属Readmeからの転載です。
を行います。
及び、VRoid標準のモーフについて、MMD準拠名へ置換します。
基本の根本から先端へ伝わる動きに加え
先端の動きが根本へ戻ってくる振動が伝わりやすくなります。
通常(Off)は先端が離れすぎると重力に負けて垂れ下がりやすくなるため、先端の配置を再計算しています。
Secondaryボーンを数値入力で10上にずらすと効果を発揮する設計です。
非推奨です。
PMXにおいて、見かけ上の向きとローカル軸は別概念です。
生成されるテクスチャは下記処理を施した物になります。オリジナルのテクスチャを利用したい場合手動でコピーしてください。
ExportedTexture=BaseTexture*BaseColor+EmissionColor*EmissionTexture
MMDに別途MMEのインストールが必要になります。
専用のテクスチャのために、UVのU成分が1/3化します。そのためループテクスチャは利用できません。
また、生成するシェーダではアウトラインの描画をサポートしません。
MToon以外のマテリアルが含まれる場合CreateExTextureを利用しないでください。
これにより半透明部分の背景抜け等が軽減されます。
同一materialを利用している材質をmergeし、構造をシンプルに描画負荷を軽減します。
改造等のためにメッシュ分割されている方が便利な場合はOffにするのが便利な場合もあります。
上記リンク先モデルをダウンロードして、すべての材質と不要なボーン(胸物理関係と上半身(+2)以外)を削除して保存し、VRM→PMX化したモデルの胸ボーン名を左/右胸にしてPmxEditorで追加(マージ)すると胸が揺れるはず(要剛体の非衝突グループ設定)
※ただし、RGBA式おっぱい剛体はMikuMikuMovingや、Blenderのmmd_toolsでは動かないので注意
(Blenderでレンダリングするなら【MMD×Blender】Blenderの揺れものAddonなどを使ってMMDモデルの胸を揺らすを参考に胸を揺らす)
逆にAH式などの胸揺れ方式とは相性が悪い?(ボーンの位置や構造にもよる?)
表示枠に登録しなければモーフ自体は20000までなら大丈夫
主に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を利用するように改定など
今回はVer 3.3 LTSを利用します。FBXをいったんVRM化するのに使います。
BlenderでVRMモデルをインポート/エクスポートできるようにするアドオンです。
アドオンのBlenderへのインストールなどはBlender 3.3 LTSのインストールと個人的な初期設定などをご覧ください。
アドオンのBlenderへのインストールなどはBlender 3.3 LTSのインストールと個人的な初期設定などをご覧ください。
下記のプロジェクトファイルを開くのに必要です。
もともとはFuria氏が公開されていたVRMtoPMXExporterというVRMモデルをPMX化するUnityのAssetをneon-izm氏が修正を加えたうえでUnityのプロジェクトファイルとして公開配布されているものです。
このページではUnityのインストール方法等は解説しません。
”Unity インストール”等で各自検索してください。このページではすでにUnityをインストールしたものとして進めます。
もともとはFuria氏が公開されていたVRMtoPMXExporterというVRMモデルをPMX化するUnityのAssetをneon-izm氏が修正を加えたうえでUnityのプロジェクトファイルとして公開配布されているものです。
このページではUnityのインストール方法等は解説しません。
”Unity インストール”等で各自検索してください。このページではすでにUnityをインストールしたものとして進めます。
プラグインのインストール方法についてはこちらのページをご覧ください。
標準ボーンチェッカーという名前ですが標準(必須)ボーンの有無をチェックするだけではなく、ボーンの設定を修正したりMMD上で正常に動作しないモデルのチェック/修正機能を持つプラグインです。
VRMモデルをPMXへエクスポートしても例えば、左/右腕ボーンのローカル軸などは設定されないので上記プラグインで修正します。
プラグイン名の通り、モデルへ準標準ボーンを追加するプラグインです。
上記リンク先動画の概要欄に記載されたURLからは現在ダウンロードできないので、動画のコメント欄のURLからダウンロードする必要があります。
(あにまさ式初音ミクVer2を基準とした)標準モーフの有無と表示枠への登録状態がひと目で分かるプラグインです。
標準ボーンチェッカーという名前ですが標準(必須)ボーンの有無をチェックするだけではなく、ボーンの設定を修正したりMMD上で正常に動作しないモデルのチェック/修正機能を持つプラグインです。
VRMモデルをPMXへエクスポートしても例えば、左/右腕ボーンのローカル軸などは設定されないので上記プラグインで修正します。
プラグイン名の通り、モデルへ準標準ボーンを追加するプラグインです。
上記リンク先動画の概要欄に記載されたURLからは現在ダウンロードできないので、動画のコメント欄のURLからダウンロードする必要があります。
(あにまさ式初音ミクVer2を基準とした)標準モーフの有無と表示枠への登録状態がひと目で分かるプラグインです。
FBXのモデルの場合、いったんBlenderでVRMへ変換してからUnityで変換したVRMモデルをPMXへ変換します。
VRM Add-on for BlenderをBlenderへインストールしたものとして進めます。
まずは最初からあるcubeやカメラなどのオブジェクトを削除します。
3Dビュー内へマウスカーソルを持っていき、[A]→[X]と続けて入力してオブジェクトを削除します。
トップバーのファイル→インポート→FBX(.fbx)からFBXファイルをインポートします。
インポート時のファイル選択ウインドウの右側に色々とオプションが表示されていますが、デフォルトのままで大丈夫です。
FBXモデルをBlenderへインポートしたら、3Dビュー内へマウスカーソルを持っていき、[Z]キーからマテリアルビューに切り替えてテクスチャが正常に読み込まれているか確認します。
モデルが真っ白だったり(一部)ピンク色の場合、Blenderがテクスチャを見つけられていません。
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]キーを押してオブジェクトモードへ戻ります。
ゴーグル部分(レンズ)も同様の手法で修正します。
テクスチャの割り当て修正が完成したら上記の画像のようになるはずです。
Node Wranglerアドオンの有効化に関しては【Blender 3.3 LTS】 addonのインストールと個人的によく使うアドオンをご覧ください。
まずはBlenderの機能で欠けているテクスチャを探してみます。
トップバーのファイル→外部データ→欠けているファイルを探すからダウンロードしたモデルのtexフォルダなどを指定し、モデルに正常にテクスチャが読み込まれるか試してみます。
今回のケースではこれだけでは駄目でしたので、手動で修正します。
トップバーからShadingタブを開き、中央下部のシェーダーエディター上で[HOME]キーを押してノードを表示させます。
モデルの服などをクリックし、シェーダーエディターのプリンシプルBSDFノードをクリックします。
[Ctrl]+[T]キーを押して画像ノードなどを接続させます。
画像ノードの開くから該当しそうなテクスチャを選択、割り当てます。
今回利用させてもらうVR向けアバターモデル「RadDollV2」@三丁目の魔界モデルの場合、ボディと目などのメッシュの分離も必要でした。
まずは顔部分を選択し、[TAB]キーで頂点編集モードへ入ります。
[Alt]+[A]キーで頂点の選択状態を解除し、[P]キーを押してマテリアルからを選択してマテリアルで分離します。
分離したらもう一度[TAB]キーを押してオブジェクトモードへ戻ります。
ゴーグル部分(レンズ)も同様の手法で修正します。
テクスチャの割り当て修正が完成したら上記の画像のようになるはずです。
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)
- Convert Armatuar Need Replace Bone Name(Default on)
を行います。
- Replace Morph Name(Default on)
及び、VRoid標準のモーフについて、MMD準拠名へ置換します。
- Use Reverse Joint(Default off)
基本の根本から先端へ伝わる動きに加え
先端の動きが根本へ戻ってくる振動が伝わりやすくなります。
- Emulate Spring Bone Leaf Colider(Default off)
通常(Off)は先端が離れすぎると重力に負けて垂れ下がりやすくなるため、先端の配置を再計算しています。
- Use Anti Gravity(非推奨 Default off)
Secondaryボーンを数値入力で10上にずらすと効果を発揮する設計です。
非推奨です。
- Bone Dir Modify(Default on)
PMXにおいて、見かけ上の向きとローカル軸は別概念です。
- Ca Scaling(Default 14)
- Auto Copy Texture(default on)
生成されるテクスチャは下記処理を施した物になります。オリジナルのテクスチャを利用したい場合手動でコピーしてください。
ExportedTexture=BaseTexture*BaseColor+EmissionColor*EmissionTexture
- Create Ex Texture(default off)
MMDに別途MMEのインストールが必要になります。
専用のテクスチャのために、UVのU成分が1/3化します。そのためループテクスチャは利用できません。
また、生成するシェーダではアウトラインの描画をサポートしません。
MToon以外のマテリアルが含まれる場合CreateExTextureを利用しないでください。
- Physics Alternative Setting(default off)
- Sort Materials (default on)
これにより半透明部分の背景抜け等が軽減されます。
- Merge Material (default on)
同一materialを利用している材質をmergeし、構造をシンプルに描画負荷を軽減します。
改造等のためにメッシュ分割されている方が便利な場合はOffにするのが便利な場合もあります。
VRMtoPMXExporterでエクスポートしただけのモデルでも元のVRMモデルにUnityなどの揺れものボーン用の設定がされていればPMX変換時にPMXの物理に変換され、動くはずです。
(揺れものボーン用の設定がされていてもVRMモデルによっては胸が動かない?)
しかし、単純にエクスポートしただけのPMXモデルだと、MMDで.vmdモーションを読み込ませた際に変な動きになったり、表情(モーフ)が変わらなかったりする場合があります。
これは標準(必須)ボーン以外の準標準ボーンと呼ばれるボーンや、一部のモーフが足りないためです。(※.vmdモーションによって必要なボーンやモーフが異なる)
このため変換したPMXに準標準ボーンを追加したり、モーフのリネーム等を行ってMMDとの互換性を高めます。
PMXモデルをPmxEditorへ読み込ませ、標準ボーンチェッカーを実行します。
ダイアログはすべてはいで進めます。(ボーン関連も)
次に準標準ボーン追加プラグインの準標準ボーン追加(PMX)をデフォルトオプションで実行し、捩ボーン等を追加します。
標準モーフチェッカーを実行し、TransformViewから各モーフを動かしてみて該当するモーフ名へ変更します。(モーフ名の長さに注意)
※参考:アバターのリップシンクの作成/資料(VRChat 日本wiki)
PMXデータの状態検証を行い、Bad!箇所の修正を行います。(材質名の重複を修正したり、不正モーフの削除など)
材質名をわかりやすいものにし、透過などに問題がある場合では材質順の修正を行います。
(オプションで)各材質にエッジやスフィア、Toonテクスチャの設定
(揺れものボーン用の設定がされていてもVRMモデルによっては胸が動かない?)
しかし、単純にエクスポートしただけのPMXモデルだと、MMDで.vmdモーションを読み込ませた際に変な動きになったり、表情(モーフ)が変わらなかったりする場合があります。
これは標準(必須)ボーン以外の準標準ボーンと呼ばれるボーンや、一部のモーフが足りないためです。(※.vmdモーションによって必要なボーンやモーフが異なる)
このため変換したPMXに準標準ボーンを追加したり、モーフのリネーム等を行ってMMDとの互換性を高めます。
PMXモデルをPmxEditorへ読み込ませ、標準ボーンチェッカーを実行します。
ダイアログはすべてはいで進めます。(ボーン関連も)
次に準標準ボーン追加プラグインの準標準ボーン追加(PMX)をデフォルトオプションで実行し、捩ボーン等を追加します。
標準モーフチェッカーを実行し、TransformViewから各モーフを動かしてみて該当するモーフ名へ変更します。(モーフ名の長さに注意)
※参考:アバターのリップシンクの作成/資料(VRChat 日本wiki)
PMXデータの状態検証を行い、Bad!箇所の修正を行います。(材質名の重複を修正したり、不正モーフの削除など)
材質名をわかりやすいものにし、透過などに問題がある場合では材質順の修正を行います。
(オプションで)各材質にエッジやスフィア、Toonテクスチャの設定
- 胸の物理(揺れ)など
上記リンク先モデルをダウンロードして、すべての材質と不要なボーン(胸物理関係と上半身(+2)以外)を削除して保存し、VRM→PMX化したモデルの胸ボーン名を左/右胸にしてPmxEditorで追加(マージ)すると胸が揺れるはず(要剛体の非衝突グループ設定)
(Blenderでレンダリングするなら【MMD×Blender】Blenderの揺れものAddonなどを使ってMMDモデルの胸を揺らすを参考に胸を揺らす)
逆にAH式などの胸揺れ方式とは相性が悪い?(ボーンの位置や構造にもよる?)
- モデルを動かした際に足首などがおかしな動きをする場合
- PmxEditor上では問題ないがMMDに読み込ませるとMMDが落ちる場合
表示枠に登録しなければモーフ自体は20000までなら大丈夫
タグ