![見出し画像](https://assets.st-note.com/production/uploads/images/37672757/rectangle_large_type_2_78ad24a90dfa51eac7168c46af85089c.png?width=1200)
UnityでToonlitシェーダーに変更した時アバターの一部が黒くなる問題の解決策【VRChat】
はじめに
VRChatをプレイするためにUnityから3Dモデルをアップロードすることは殆どのユーザーが行っておりますが、Quest対応と呼ばれるAndroidプラットフォームからのアップロードは、Windowsプラットフォームと違う点がいくつかある為、不具合が生じることが多いと思います。
そのうちの一つ、「Toonlitシェーダーを適応した時に何故かアバターの一部が真っ黒になってしまう」の解決策が解ったので、書き留めておこうと思います。
問題点と解決方法
アバターの「Quest対応」をする際、一般的には
1. プラットフォームをAndroidプラットフォームに変更する。
2. シェーダーを全てVRChat/mobileに入っているシェーダーに差し替える
3. Dynamic Boneを全て取り除く
のステップを踏むことが多いと思います。(2020/10/28現在)
このうち、2の差し替え先のシェーダーとしてToonlitを用いる方は多いと思うのですが、この時に色味が少し変化するだけでなく、アバターの一部が大きく変色してしまい、それが修復できずにQuest対応を諦めるというケースが幾らか起きていると聞きます(私も一度挫折しました)。
例として、【HIRO JAPAN】様からBoothで販売されている「クラウディア」のを挙げましょう。
エレガントでとても整ったモデルであり、シェーダーはUTS2を使っているようです。このBodyのシェーダーを何もせずにToonlitに変更すると、
このように真っ黒になってしまいます。
これは、「頂点カラー(Vertex Color)」というものが残っているからであるらしく、これを取り除く必要があります。
これはUnity上でツールを使うことによって簡単に取り除くことができます。【クロツグミ】さんがBoothにて配布している、[VRCQuestTools]に含まれるツール、VertexColorRemoverというものを使えば一発で解決するようです。試しに上記のプロジェクトにVRCQuestToolsをインポートしたところ、
このように殆ど元のアバターと同じ配色に戻すことが出来ました。
VRCQuestToolsはこの他にもPC対応のアバターをQuest対応に変更するツールや、BlendShapeのコピーを短縮化するツールなども内包されているので、Quest対応に困っている方は是非使ってみてください。
こちらにリンクも張っておきます。
最後に
いかがでしたでしょうか?(一度言ってみたかった)
もちろんこの問題への解決策は他にもあると思いますが、私はこの方法で解決しました。正直私はモデラーでもプログラマーでもない一般人なので、原理や詳しいことはわかりません。ご了承ください。
一人でもこの問題が解決できる人がいればいいと思います。
またこのツールを作ってくださったkurotuさん、そして暫く昔の話ではありますが、この解決方法について教えてくれたnekonikobanさんに感謝致します。
それでは皆様、良きVRChatライフを!
この記事が気に入ったらサポートをしてみませんか?