
VRMをPMXに変換する
フルスクラッチでVRChat用のアバターを作って遊んでいます。
VRで自分で動かすのは楽しいものの、基本的には鏡の中の姿しか楽しむことができないのが歯がゆいところ。
というわけでPMX化して手軽にMMDで踊らせて遊ぼう!という記事です。
過去にこちらのツイートツリーを作成しました。
VRMをPMXに変換する作業について簡単にツイットツリーにまとめていきます
— 竹流@もぐもぐ (@airgreennet) July 3, 2020
よく記事にまとめられているVroidのPMX化ではなく、一般的にVRChatで自作アバターとして使われるヒューマノイド形式のアバターを変換することが前提です。
本記事ではもうちょっと丁寧に手順を紹介していきます。
ざっくりとこんな感じになっています。
FBXをVRMにする
VRMからPMXに変換する
PmxEditorで調整する
FBXをVRMにする
用意するもの(2020/6/10現在)
◆Unity-2019.4(自分は2019.4.31f1を使っています)
https://unity3d.com/jp/unity/qa/lts-releases?version=2019.4
◆UniVRM-0.99
https://github.com/vrm-c/UniVRM/releases/tag/v0.99.0
上記の2点を準備できたら早速Unityを開いて、UniVRMをUnityにインポートしましょう。

適当なフォルダを作り、VRM化したいFBXとテクスチャをインポート。
細かい設定は調べていただくとして、下記画像の項目を注意して設定してください。



モデルの設定ができたら早速VRM化しましょう。


サムネイルはメインカメラで撮影して用意しました。
ここまでやってExportを押すと保存先が指定されます。
さっき作ったフォルダの中に保存しましょう。

VRMのPrefabをヒエラルキーにドラッグアンドドロップして表示させます。さっきまで設定用に表示していたFBXはヒエラルキーから削除するか表示をオフにするなどして作業のジャマにならないようにしてください。
VRMの設定項目は色々ありますが、最低限これらを設定すればある程度VRMとしてちゃんと使えて、PMX化しても大丈夫になる部分を設定していきます。
VRM Look At Head

これでカメラに向かって目線が動くようになります。
VRM Blend Shape Proxy


今回はLook系は設定しなくても大丈夫。
secondary
いわゆる揺れものの設定です。VRMとしてもちゃんと使うよという方は丁寧に設定してください。


コライダーを入れたいボーンを選択して、Add ComponentからCollider Groupを選択。


以上で最低限のVRMの設定が完了です。
念のためここまで設定したPrefabを保存し、VRM ExporterからExportしてください。このとき、保存場所はデスクトップやドキュメントの中などわかり易い場所にしておきましょう。
VRMをPMXにする
用意するもの
◆Unity-2018.4(自分はUnity2018.4.20f1にしました)
https://unity3d.com/jp/unity/qa/lts-releases?version=2018.4
◆UniVRM-0.57
https://github.com/vrm-c/UniVRM/releases/tag/v0.57.0
◆VRMtoPMXExporter
https://twitter.com/flammpfeil/status/1032266829597573121
UnityとVRMのバージョン変えないとだめなの?とお思いでしょうが、VRMtoPMXExporterを作られた際のバージョンを持ってこないと正常に動作しませんので、面倒ですがちゃんと用意しましょう。
必ず先にUniVRM-0.57をインポートしてください。正常にインポートできたら、VRMtoPMXExporterをインポートします。
準備できたらさっき作って別場所に保存したVRMファイルをインポートしてください。


ここでおまじないをします。PMX ExporterをPrefabに追加できたら、一旦シーンを保存してUnityを閉じてください。
ちゃんと閉じれたら、また同じUnityを開き、さっき保存したシーンを呼び出します。
一旦Unityを再起動させる理由としては、PMX Exporterを安定動作させるためです。再起動前にエクスポートしても、何故か9割位失敗するので。

Unityのプロジェクト内ではなく、別のわかりやすい場所に保存してね。

これでとりあえずアバターをPMX化出来ました。
思ったより長くなってしまったので、次の記事で出力したPMXを調整する方法を説明していきます。