(随時更新中)
ここではトラブルに対応する最適化ツールの機能や、
それではカバーしきれない作業、MMD/MMEで完結する対処などを書いていきます。
以前は手動での直し方も書いていましたが、
二度手間なので原則的に最適化ツールの利用前提の記事となります。
使ってない人でも、何かのヒントくらいにはなるかもしれません。
以下のVRM(Vroid)→PMX変換ツールを利用して変換した話になります。
基本的なトラブル対処は以下の拙作最適化プラグインを利用することになります。
PMXエディタに追加して利用するプラグインです。 (PMXエディタについては割愛)
最適化はVRM2PMXConverterでPMXに変換した直後に行うことを想定しており、
何か変更を加えた場合は上手く動かない場合があります。
VRM2PMXConverterの配布動画で紹介されている、
変換後の追加作業も行わないでください。
(以下gooブログはアンカーリンクしにくいので、気合か検索でたどってください)
製作前に知っておくといいかもしれないトラブル
- VRoidStudioとMMDで色を一致させやすいモデルの作り方
よくあるかもしれないトラブル一覧
- pmx変換直後に見た目(テクスチャ)がおかしい
- MMDでモーションを読み込んでも表情がつかない
- 服やまつ毛などのフチが白く・透明になる
- 髪全体や一部が黒くなる・変色する
- 髪がバタバタ暴れる
- 髪・スカートの物理を入れ直したい
- 最適化後に体に線がはいっていたりする
- ひじ・手首がねじ切れる
- 腰ボーンの動きが他のモデルと違う
- 振り返りポーズで、腰あたりがねじ切れる・スカートが歪む
- 手ポーズやモーションで親指が妙に開いた状態になる
- モーションで手の位置がズレる
- モーションで両足の間隔が狭い・重なる
- エッジ(輪郭線)が表示されない
- 衣服等のテクスチャを透明にした部分の影が表示される
- 曲げて作った髪が垂れ落ちる
- 視線を下げると瞳上部が上まぶたを突き抜ける
- テクスチャを透明にしたところにゴミが残る
その他参考情報
- VRoidStudio → 変換PMXモデルの対応パラメータ
- 変換されたテクスチャについk
VRoidStudioとMMDで色を一致させやすいモデルの作り方
変換時に同時出力される専用シェーダーエフェクトを利用しない人向け。
VRoidはMMD変換すると色の違いに悩みがちですが
お約束を守って製作すると色を再現しやすいです。
実際、意識しなくても割と再現する場面も多いのですが、
割り当てるシェーダーや、光源の色・明るさによって大きく色が
変わるのを防ぐ変わるのを防ぎやすくはなると思います。
基本的に、加工で足される表現は使わず
テクスチャの色をそのまま使う方法となります。
- [(各種編集)]→[テクスチャ]→[基本色]を白(#FFFFF)
- [(各種編集)]→[テクスチャ]→[かげ色]を灰色(#050505)
ただし灰色は陰影部分の肌色がくすむので、
肌に関してのみデフォルトのピンク等を利用するのも選択肢ですが
MMDだと肌用のシェーダーエフェクトを割当てて赤みを出すことが多いのです。 - [髪型編集]→[テクスチャ]→[ヘアー]→[ハイライト]を黒(#00000)
髪のハイライトがなくなります。
専用シェーダーを使わない場合は、ハイライトは再現されないので
切ってしまいましょう。 - [共通設定]→[リムライト]→[強さ]を0
再現はされますが、他のMMDモデルに対して浮くため切ったほうが無難です。
(あくまで好み次第です)
pmx変換直後に見た目(テクスチャ)がおかしい

VRM2PMXConverterで変換するとき、変換先フォルダがすでに
存在していると発生します。
VroidModel.vrmというモデルを変換する場合、
モデルファイルと同じフォルダに[PmxExport]フォルダがあり、
その中にある[VroidModel]というフォルダを削除した後に
変換を行うことで問題が回避できます。
この作業は変換の度に必要になります。
MMDでモーションを読み込んでも表情がつかない
最適化プラグインでの修正
[変換失敗モーフ名の名称を修正]機能で修正されます。 (初期状態で機能オン)
(男性キャラだと若干モーフ名と実際の表情の解釈に違和感を感じるかも?)
原因と他の修正方法
VRM2PMXConverterより後にバージョンアップした
VRoidStudioの仕様変更の影響です。
手動でなおすには、PMXエディタで、表情モーフの名前を変えてください。
MMD表情モーフ名参考: MMD表情モーフ一覧:一護牛乳(銀時愛P)のブロマガ
服やまつ毛などのフチが白く・透明になる

最適化プラグインでの修正
[材質順を調整]機能で自動調整します。 (初期状態で機能オン)
服表地フチから裏地を見ると透明になってしまう問題は
[衣類の記事を別材質化]機能も使うと解決します。 (初期状態で機能オフ)
原因と他の修正方法
テクスチャを透明にして切り取った部分のフチや
まつ毛やアイラインのフチの肌が消えて見えたり、
ベースヘアーのフチが妙に浮き上がったり見えたりする問題は
透過テクスチャを持つ材質の描画順の問題で発生します。
(専用シェーダーでは半透明を防ぐので発生しない?)
半透明を使わずにフチを処理したつもりでも、
何らかの伸縮で半透明部分ができるのか大概発生する問題…な気がします。
綺麗に処理しているはずなのに発生する場合は
いまのVRoidStudioでテクスチャインポートし直せば直っているかも?(未確認)
ミップマップを無効にすれば直る?(未確認)
透明テクスチャを持つ材質、とくにカメラ寄りになる材質ほど
PMXエディタの材質タブで下にくるように調整することで修正が可能です。
服表地フチから裏地を見ると透明になってしまう問題は
さらに裏地を別材質化して、材質順を表地より上にすることで解決します。
(正面からみたスカート側面フチのように、半透明が複雑に重なる部分は原理的に解消不可能です)
なお、背景ステージが透けるはずの部分がおかしいときは、
MMDの背景メニューの中にある、[アクセサリ編集][モデル描画順]で
モデルの描画順を背景ステージより後にすることで解決します。
髪全体や一部が黒くなる・変色する

最適化プラグインでの修正
[テクスチャを最適化]機能を利用します。 (初期状態で機能オフ)
ただし、VRM2PMXConverterが出力するエフェクト(モデルと同名のfxファイル)は
利用できなくなります。
この制限を回避するには、次の項を参考にVRoidStudio
髪パラメータの調整を行ってください。
これでも変わらない場合、下記項目の下の方を確認してください。
原因と他の修正方法
Vroidの髪テクスチャは、髪のパラメータ次第でテクスチャループを利用しています。
(テクスチャ範囲外を利用すると、テクスチャがループして適用される)
VRM2PMXConverterは、専用のfxファイル利用前提で
テクスチャの右に二種類のマップを繋げるので正常なループが行われずこうなります。
おそらくVRoidStudioの髪のパラメータのうち
[幅]が小さいほど、[オフセット]が大きいほど発生しやすくなりますので
その辺を調整してテクスチャがループしないようにすれば問題を回避できます。
これでもなおらない場合、髪のテクスチャがVRM2PMXConverterによって
加工変色している可能性もあります。(テクスチャを覗いてみることで確認できます)
おそらく髪の基本色を白以外に設定した影響を受けているものと思われますが不明です。
この場合、テクスチャを入れ替える、PMXエディタで色設定を変えてみる等で
回避できるかもしれません。
(最適化プラグインの[テクスチャを最適化]を使うと、テクスチャの入れ替え・再編集がしやすくなります)
最適化プラグイン利用後に体に線がはいっていたりする

最適化プラグインの[テクスチャを最適化]機能をオンにして最適化をすると
VRM2PMXConverterが出力するエフェクト(モデルと同名のfxファイル)は
利用できないテクスチャ・UV構造に改変します。(というか元に戻します。)
にも関わらず、同エフェクトを適用されるとこんな現象が発生します。
(初期状態で機能オフ)
この現象が出た場合、fxファイルの削除やリネーム、
MME設定でfx解除したり別のシェーダーを割り当てるか、
モデルを別名保存して開き直す、
[テクスチャを最適化]機能を利用しないなどで回避できます。
髪がバタバタ暴れる
最適化プラグインでの修正
[髪の物理簡易調整]機能(初期状態でオフ)を利用することで
ある程度は見られるものになる…かもしれません。
原因と他の修正方法
VRoid(vrm)とPMXの髪の物理は互換性がまったくないため、
仮置的な設定がされているのが原因です。
最適化プラグインの簡易調整以上を求めるには
自分でPMXモデルの物理設定を行うことになります。
下記項目を参考にしてみてください。
髪・スカートの物理を入れ直したい
髪の物理調整
みーちゃんさんのブログ記事を参考に調整してみてください。
最適化プラグインの[髪の物理簡易調整]機能(初期状態でオフ)を使うと
上記記事の、頭剛体の位置サイズ調整と回転制限を
行う前の状態までを自動で済ませられます。
行う前の状態までを自動で済ませられます。
スカートの物理調整
すい花さんのブログ記事を参考に調整してみてください。
最適化プラグインの[仮剛体を作成]機能(スカート類のボーン~…の中)を
使用することで、上記記事の8から作業を始められます。
ひじ・手首がねじきれる

最適化プラグインでの修正
服のデザインが半袖やノースリーブの場合、
[腕捩りボーンを作り直す]や[手捩りボーンを作り直す]機能で
改善することができます。
捩り周りとその先に服の袖があると、腕が突き抜けるので
この機能は利用できません。
原因と他の修正方法
捩りボーンはあっても、実際にはウェイトで回転成分が分散されていないのが
原因で発生します。
自力で捩りボーンを解除してから
「捩りボーン自動分散構造追加プラグイン」を利用することで
解決できるかもしれません。
自分がやったときはむしろ悪化しましたが、腕周りのローカル軸を
ちゃんと設定しなおせばちゃんと動くかも?(未確認)
腰ボーンの動きが他のモデルと違う
最適化プラグインでの修正
[腰ボーンの挙動を修正]機能で修正することができます。(初期状態でオン)
振り返りポーズで、腰あたりがねじ切れる・スカートが歪む
最適化プラグインの[腰ボーンの挙動を修正]機能で
ボーン置換式を選択することで修正できます。(初期状態で選択状態)
この設定で腰回りのモデルの変形の仕方に違和感があるときは
[腰ボーンの挙動を修正]機能で[ウェイト変更式]を選択すると
変形の仕方が変化します。
(ただし、振り返りポーズ等でねじ切れやすくなります。)
手ポーズやモーションで親指が妙に開いた状態になる
最適化プラグインでの修正
[指の基本ポーズを修正] 機能で修正することができます。(初期状態でオン)

モーションで手の位置がズレる

MMDは詳細な体型や初期ポーズが規定されているわけではないため
複数の要因が考えられますが、一般的なMMDモデルに対して
VRoid変換モデルは若干腕が上がり気味なのも一つの原因です。
最適化プラグインでの修正
[腕の基本ポーズを修正] 機能で修正することができます。(初期状態でオン)
モーションで両足の間隔が狭い・重なる

Vroid変換モデルは初期ポーズで足が閉じ気味なのが原因です。
現状、PMXEで初期ポーズを変更する以外はモーションを弄る必要があります。
最適化プラグインでの修正
[足IK親の追加] 機能で足IK親を追加し、
他のモデルの開き具合を参考に MMD上で足IK親ボーンで
X方向に足を開いて調整し、
0フレーム目にキーフレームを打っておくことで補正できます。
場合によっては回転で足首の調整をしたり、
足が浮く場合 すべての親を下げたりも必要かもしれません。
エッジ(輪郭線)が表示されない
モデル自体の材質設定でエッジの表示設定に不足がある場合がありますが
基本的に透過テクスチャで再現した裾などのエッジはMMDでは表示されません。
どうしてもエッジをつけたい場合、以下のようなエッジ描画系エフェクトを
利用して描写することになります。
dippen
Croquis改
衣服等のテクスチャを透明にした部分の影が表示される
MMD標準の影はテクスチャの透過を考慮しないのが原因です。
VRoid変換時に生成されるモデル名.fxのシェーダは利用できなくなりますが、
透過を考慮した影に対応したエフェクトやシェーダを
利用することで回避できます。
具体例としてはExellentShadow (以下ES)を利用することで回避できます。
ESは、同梱の「MMD影なし用」の方を利用すること、
地面影をオフにして、同梱full_ES系シェーダ(または対応シェーダ)を、
キャラだけでなくステージモデルにも適用するのがポイントです。
曲げて作った髪が垂れ落ちる
pmxというよりvroidの話になりますが、おそらく以下の手段で回避できます。
- 重ねるように素直に垂れる髪を作る(ダミー髪)
- 揺れもので、ダミー髪と曲げ髪を同じグループボーンに設定
- ダミー髪にボーンを入れる
- ダミー髪を非表示にする
これで曲がった状態が基本形状になると思いますが、
見た目と当たり判定はズレるので、MMD剛体の妥協と調整は必要となります。
大きな髪束で、見た目と剛体のズレは厳しい場合場合、
逆方向に対照的な剛体・ジョイント構造を作る「重力バランサー剛体」と
呼ばれるアプローチが有効かもしれません。
プラグインによる作成支援もあるようです。
(最適化モデルで動くかは未検証)
視線を下げると瞳上部が上まぶたを突き抜ける

最適化プラグインでの修正
「瞳縦長モデルの上まぶた突き抜け対策」機能を利用します。
(初期状態で機能オフ)
白目になるほど下や横外側に目を回すと顔から突き出ますが
通常の使用範囲では問題ありません。
原因
これはVRMをそのまま使うアプリでも発生します。
Vroidの構造がVroidStudioの通常範囲で可能な
目のカスマイズに追従対応できていないのが原因です。
テクスチャを透明にしたところにゴミが残る
原因
VRoidに使われているシェーダ、及び変換のときに作られるシェーダは
透過度が一定以上になるとその部分のポリゴン面を無いものとして処理します。
(カットオフ)
このため、変換のときに作られるシェーダを解除すると
VRoidStudio上では確認できない僅かな消し損ねが現れたりします。
対処としてはテクスチャ該当部分を丹念に消しゴムをかけるか、
ペイントツールで該当部分を選択して削除かカットしてしまうのが確実です。
モデル製作時から、テクスチャの完全透明部分をつくるときはカットする癖を
つけたほうがよさそうです。
またこのゴミは、MMDの表示順の問題で目立つ場合が多いので
(半透明の背景は先に描画しないと抜けてしまう)
正常な描画順に設定すると目立ちにくくなります。
その他、追加のエフェクト類によって(完全)透明部分の扱いも変わってくるので
オンオフしてみたり、エフェクトの透明周りの扱いの仕様を確認してみましょう。
完全透明・不透明の境で色味が変わる場合は
png保存する際のアプリごとの半透明部分の扱いの問題?
があるようなのですが、ちゃんと理解してないので調べてみてください。
VRoidStudio → 変換PMXモデルの対応パラメータ
- テクスチャの基本色 → 材質の拡散色
- テクスチャのかげ色 → 材質の環境色
- 髪のハイライト → 出力テクスチャに足された右部分(3つのうち真ん中)に
足されたエミッションマップ(専用fxでのみ利用) - リムライト → スフィアマップ(加算)
テクスチャ色が変わる現象は、一時期のUniVRMの色変換バグに
VRoidStudioが影響を受けていた可能性(未検証)
変換されたテクスチャについて
変換出力されたテクスチャは専用シェーダで利用するため、
本来のテクスチャ - エミッションマップ - ノーマルマップと右に拡張されています。
またこれにあわせて水平方向のUV情報が1/3に縮小されており、
テクスチャを差し替えるには、これらに合わせる作業が必要になります。
最適化プラグインの[テクスチャを最適化]機能を利用すると
テクスチャの分離(エミッションマップは捨てる)と、
UV情報の再調整を自動処理できます。
どうチェックをいじっても上記のエラーが出てしまいます。
対策などありますでしょうか?