バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事は、VRoidモデルをVRChat Quest版でアップするとHairが透過してしまう対策をしたメモです。
前回の記事はこちら。

VRChat Mobile/Standard Liteシェーダーだと髪の毛が透過して変になってしまう
私のモデルだと髪の毛の後ろ髪?部分が前から見ると透過して表示されない。
しかし横と後ろから見るとちゃんと表示される。
原因:片面しか描画しないせい
Mobile向けシェーダーだと負荷を減らすため?に片面しか描画しないみたい。
法線が裏側になってる部分は表示されないっぽい。
まぁQuest向けだし多少おかしくてもいいや…と割り切るならあんまり気にしなくてもいいとは思う(;^_^A
まゆげやアイラインの透過失敗で海苔状態になってしまう対策は前回やった
前回の記事の手順1~3のあたりです。



このあたりはどれだけ調整するか次第かな?
まぁある程度できてればいいのでは。
対策:メッシュをコピーして両面表にする
いくつか方式はあるっぽい?けど、これは以前やった原始的な手口が使えそうかな。



手順1:VRoid Studioでマテリアル数8以上でエクスポートする
マテリアル数2まで削ると、HairがBodyと結合されてしまう。
構造的に分離したパーツで分割すればいけるだろうけど、メッシュとマテリアルはblenderでも結合できるしとりあえず多めで。
blenderで読み込んで、Hair単体のメッシュがあればOK。
手順2:Hairを複製して法線反転させる
Hairを選択してShift+Dで複製、G+Yでちょっとだけ前にだして、メッシュ⇒ノーマル⇒反転で法線を反転させる。
法線は最後に見ながらまた調整したほうがいいかも。
StandardLiteシェーダーだと裏側は描画されないので。
複製後移動はさせなくてもいいかもしれないけど、頂点座標が重なるのはあんまりよくないかもしれないので。
なんか頂点が重なってるとunityで警告出たし。



手順3:必要ない部分を削除してポリゴン数を減らす
3000くらい△面が増えちゃったけど、これはあくまでも髪の裏側を表示させらればいいから、前髪~頭頂部あたりはバッサリ削除しちゃっていいと思う。
Fallbackアバターにしたいからできるだけ減らしたい。
髪の毛上部をゴッソリ削除したら893まで減った。
なんかどうしても削除できない頂点があった(・_・;)
とりあえずunityに持って行っても変な表示なるとかはなかったからいいか…。
デシメートモディファイアで更に減らす
透過してしまう部分に一応メッシュがあればいいと思うので、そんなにポリゴン数はなくてもいいと思う。
Fallbackアバターにしたいからできるだけ削減したい。
デシメートしたら300までへった。
手順4:ついでにメインのHairもデシメートして結合する
BodyとFaceは後でやるけど、今回はHairだけで。
1500くらいが限界か…?でもFallbackアバター用にするならもっとカクカクでも別にいいかもしれない。
あとモデルの髪型にもよると思う。
これでモディファイア適用して、Hairを結合してunityに持っていきます。
unityに持って行って見てみる
unityに持って行ってStandard Liteシェーダーにしてみたところ。
透過はちゃんと直った!
左右後ろもOK。
下から見てもOK。
ダメな場合は、追加したHairの法線が逆になっているかもしれないので法線を調整しましょう。
あとはマテリアルとメッシュを結合して一つにして、ポリゴン数7500以下にすればいけそう
警告出てるのがあとマテリアルとメッシュとポリゴンだけなので、ここをなんとかすればパフォーマンスGood以上行けそうです。
テクスチャベイクすればマテリアル1にできるから多分大丈夫だと思う。
ボーンは適当に髪の毛と服のやつを削除したら60個くらいに減らせました。



別にFallbackアバターにするだけなら削減しまくれば結構簡単なんだけど、ある程度見た目を担保しつつやるとなるとちょっと大変かも。
デシメートしすぎると穴空いたりするし(・_・;)
おわりに
ポリゴン数300増くらいで解決できたから良かった。
まぁ別に割り切るならやらなくてもいいかもしれないけど(;^_^A
もう少しいじってみます(*^-^*)
追記:Fallbackアバターとしてアップできました。


