見出し画像

VRMをPMXに変換する

フルスクラッチでVRChat用のアバターを作って遊んでいます。
VRで自分で動かすのは楽しいものの、基本的には鏡の中の姿しか楽しむことができないのが歯がゆいところ。

というわけでPMX化して手軽にMMDで踊らせて遊ぼう!という記事です。

過去にこちらのツイートツリーを作成しました。

本記事ではもうちょっと丁寧に手順を紹介していきます。
ざっくりとこんな感じになっています。

  1. FBXをVRMにする

  2. VRMからPMXに変換する

  3. 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とテクスチャをインポート。
細かい設定は調べていただくとして、下記画像の項目を注意して設定してください。

FBXのインスペクターから「Blend Shape Normals」を「None」に。
ヒューマノイドRigに設定。Toesもきちんとマッピングすること。
マテリアルはVRM/Mtoonに。

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

Export to VRMをクリック!
Title、Version、Authorを入力。
サムネイルはメインカメラで撮影して用意しました。

ここまでやってExportを押すと保存先が指定されます。
さっき作ったフォルダの中に保存しましょう。

保存されるとVRMのPrefabができます。

VRMのPrefabをヒエラルキーにドラッグアンドドロップして表示させます。さっきまで設定用に表示していたFBXはヒエラルキーから削除するか表示をオフにするなどして作業のジャマにならないようにしてください。

VRMの設定項目は色々ありますが、最低限これらを設定すればある程度VRMとしてちゃんと使えて、PMX化しても大丈夫になる部分を設定していきます。

VRM Look At Head

TargetをMain Cameraに、HeadをHeadボーンに設定。
これでカメラに向かって目線が動くようになります。

VRM Blend Shape Proxy

Blend Shape(BlendShapeAvatar)をダブルクリック。
インスペクターで各項目を設定していきます。
今回はLook系は設定しなくても大丈夫。

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

ヒエラルキーからsecondaryを選択するとインスペクターで設定できるようになります。
コライダーを入れます。
コライダーを入れたいボーンを選択して、Add ComponentからCollider Groupを選択。
縦長のコライダーは無いので、Sizeを適当に増やしてElementから各コライダーを調整します。
今回は髪と裾で揺れを変えたかったのでVRM Spring Boneのコンポーネントを増やしました。

以上で最低限の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ファイルをインポートしてください。

VRMのPrefabをヒエラルキーにドラッグアンドドロップするとこんな感じになります。
Prefabを選択したら、インスペクターの一番下のAdd ComponentからPMX Exporterを追加。

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

PMX Exporterの右上にある歯車マークからメニューを開き、Exportを押しましょう!
Unityのプロジェクト内ではなく、別のわかりやすい場所に保存してね。
コンソールにエラーが出ず、pmx is exported.が表示されれば出力完了です。

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