テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】ユニティちゃんシェーダーを使うと変な模様や色が出るケース

ちょっとヒットしたのでメモ。

スカートに変な色が…

f:id:tsubaki_t1:20171217221644j:plain

ユニティちゃんをインポートすると、体の一部や服の一部が予想していた色とは違う色になる事があります。

例えば上の場合のように、スカートの一部に茶色い汚れが付着してしまうようなケースです。

この汚れはカメラの向きや位置によって出たりでなかったりします。

 

この色違いの部分ですが、大抵の場合は「アウトラインの表現」がにじみ出てしまっている状態です。

ユニティちゃんシェーダーパッチの適応

この現象は、大抵の場合ユニティちゃんシェーダーの対応パッチを当てる事で直ります。

f:id:tsubaki_t1:20171217221841j:plain

この現象はUnity 5.5あたりの時期にデプスの値が反転した事に由来します。

 

ユニティちゃんのアウトラインは「ノーマル反転押出法式(同じモデルを少し大きめに描画し、描画面の表裏を反転させることでアウトラインを表現)」により実現しています。ただし描画の奥行きが逆になったので、場所によってはキャラクターのモデルよりアウトラインが先に描画されてしまう訳です。

 

この変更は、より高精度なデプスを表現するための物みたいですが(実際Z Fightの発生は5.4より5.5の方が下がる)、Shader Labで記述していないユニティちゃんシェーダーは、変更をモロに受けたという感じみたいです。

(Shader Labで記述していた場合、内部でマクロが変換してくれるとか何とか)

qiita.com

比較的新しいモデルには、既にパッチが適応されていることが多いですが、それ以外の場合はパッチを適応しないと色が変になる事があります。

単純にデプスバッファの精度が足りない

もう一つのケースとしては、単純にデプスバッファの精度が足りないというケースです。その場合は、CameraのNear Farを最低限に抑えると治ったりします。

これは、特にモバイルだとよく起こります。

tsubakit1.hateblo.jp