あめ子の学習帳

Unityちゃんトゥーンシェーダーclipping使用時の描画順を直す

やっほー、あめ子です。

3Dモデリングが終わってUnityにてセットアップをしているとき、どうしてか服の一部から肌が透けるようになってしまっていました。

今回はこれを直すためにあれこれ調べて試してみたところ、理屈はわからないけど直ったのでその方法を覚書として残しておきたいと思います。

直す場所・方法

服にはレースの表現のために、そして素体貫通を避けるために体にもclippingシェーダーを使用しています。

どうやら透過シェーダーが重なっていて、描画順がおかしいために透けて見えるようになっているようです。

きちんとした仕組みは理解していないのですが、とにかく透過シェーダー同士が重なる際は描画順が思ったようなものでないと、角度によって意図しない表現になってしまう…ぽいです。

 

今回の場合は、服の方ではなくBodyの方のマテリアルを修正します。

「Show All properties」をクリックします。

マテリアルの表示が変わるので、下の方へスクロールしていくと「Render Queue」という項目があります。

服とBodyのRender Queueの数値を見比べ、Bodyの方の数値を「2449」に変更します。

その際、数字の横の「AlphaTest」が「AlphaTest-1」になります。

>直ります<

やったね!

 

参考にした動画

小林信行さんが詳細な動画を出してくださっており、そちらに仕組みや理由なども含めて解説されています。

ありがとうございます…!