記事一覧へ戻る

pmxからvrmを生成しついでにVRChat用に変換する


更新日時:20日前 投稿日時:2020-3-9 21:28:41 Author:shikask

概要

  • pmxが好きなのでまずXISMO2でオリジナルpmxモデルを作った。MMDで踊らせたい
  • V Magic Mirrorを用いて配信で使いたい
  • VRChatに持っていきたい
  • pmxで想定した見た目で全て統一したい
我々はその謎を解き明かすべくジャングルの奥地へと向かった


自分のための覚え書きです。


 

1. XISMO2でpmxモデルを作る

  • ボーンの親子関係に注意
    整理整頓のためにと前髪を左右対象でまとめていたりすると地獄を見ることになる。


 

2. PMXEditorでモーフ分割

  • まばたきは必ず左右でわけておく(ウィンク2/ウィンク2右に相当)
Q.何故PMXE?
A.特に理由はなく、一番簡単だと思ったから…


 

3. Blender

  • catsプラグインを用いてpmxからfbxへ変換、VRChat用に最適化
  • Decimetionでモデルのポリゴンを削減すると前髪無くなりがち!
    解決策は…思い付きませんでした!ポリゴンを削減しない!16万ポリゴン万歳!
    髪のポリ割からもう一度考え直すべきかもしれません。
  • 足首・股関節の幅・肘・肩のボーン位置をVRChatを意識し修正
  • インポート・エクスポート共に細かな設定を見落とさないこと

MMDモデルをVRChatに! ポリゴン削減やUnityへの読み込み方法
https://toto0129.blog.fc2.com/blog-entry-2145.html
Blender上でのブレンドシェイプや最適化など非常に参考になりました。
説明や画像が行ったり来たりしないし、「こういう設定もしなきゃだけど今回は書かないよ」と省略せず丁寧に書かれており、とても理解しやすかったです。

MMDモデルのpmxファイルをfbxに変換する方法【Blender】
https://noshilog.com/blender-avatar-mmd-pmx-fbx
インポート・エクスポートについてがわかりやすかったです。
Blenderの基本操作を交えて書かれており、この記事のおかげでやっとシェーダーの表示方法がわかりました。


 

4. Unityにfbxをぶっこみまずはvrmに

Unityパッケージとバージョン
  • Unity 2017.4.28f1
  • UniVRM-0.55.0_ce1c
VRChatを想定しているため、Unityのバージョンは以下全てこれで統一しています。


[1回目]
  • リグ設定ではchestが毎回抜けてるので入れ忘れない
    試しにつま先も入れてみたけれど、あまりよくはなさそうです。
  • ジョー(顎)も外しておく
  • マテリアル適応
    テクスチャを使い回しているせいでマテリアルが正しく生成されない場合は、
    Namingを「From Model's Material」に変更することで解決しました。

[2回目]
  • 表情や揺れものの調整
  • シェーダーの細かい設定
  • とにかくリグ設定を忘れないことと、次のVRChatを意識して設定すると吉。

ここでやっとV Magic Mirrorに持っていく用のvrmモデルが生成できる。
主線ありなしで二種類のモデルを用意しました。


【Unity】FBXアバターをVRMへ変換する方法のご紹介!
https://keiki002.com/vr/unity-vrm/

VRMの揺れ物の設定
https://virtualcast.jp/wiki/doku.php?id=vrm:setting:spring
SpringBoneの設定はこちらを参考にしました。


 

5. vrmモデルをVRChatへ

Unityパッケージとバージョン
  • UniVRM-0.55.0_ce1c
  • VRM Converter for VRChat 19.0.0
  • SDK 2019.09.18.12.05 Public
  • コンバーターで複製時、springboneがdynamicboneへ自動で変換され、動きもかなりよかったが、ボーンがめっちゃ重複した。自分で1から設定するのは割と簡単だった。
  • 髪親ボーンを残しておいて良かったです。髪の毛一本一本ではなく、まとめていい感じに設定できました。
    もしかしたらそれが原因かもしれない…。
    髪親の位置が上過ぎてコライダーの位置がバヤでした(設定値でごまかした)。
  • 変換時の設定画面で、コライダー等々も変換する設定にすると、変換はできたというかそのままスクリプトが引き継がれて、VRChatにお前これvrmだぞって怒られた。すみません。

VRMからVRChatへアップロードする流れ
https://qiita.com/100/items/7315fe3a7eb75732ae43
アップロードに焦点を当てた記事。

アバターの髪や服を揺らす方法 DynamicBoneとSpringBoneの違い
https://noshilog.com/unity-dynamic-bone
DynamicBoneとSpringBoneを簡単に比較した上で細かな数値の設定例まであり助かりました。


 

6. その他留意点

一番最初に変換した時、音声バグが発生し、自分の声が反響して聞こえました。
他のモデルを選択すると症状は出なかったので、Blender上での操作をいくつか忘れたのが原因だと思います。
心当たりとしては、
  • catsプラグインでリップシンク変換し忘れ
  • Unity上で、あいうなどのモーフをそのまま割り当てた
が挙げられます。
 

コメント一覧: