Unity++blog.

UnityやC#とかについて学習したことを書いてます

Unity シェーダプログラミング ToonShaderを作成する

今回はToonshaderを作成してみました!アニメ調の世界観にする時に使用します。

f:id:nabesi777:20181018143350j:plain

 

 

参考サイトはもちろんこちら!今回も大変わかりやすかったです。

【Unityシェーダ入門】トゥーンシェーダを自作してみる - おもちゃラボ

 

 

いつものようにShaderとマテリアルを作成して名前をToonに変えて

nabesi777.hatenablog.com

 

 

こちらのコードを記入します。

f:id:nabesi777:20181018143806j:plain

 

オブジェクトへアタッチしたらInspector欄のRampTextureのところへ適当なテクスチャを入れてみました。

 

f:id:nabesi777:20181018143943j:plain

 

反映されたオブジェクトはこんなかんじです・・なんか気持ち悪い・・

f:id:nabesi777:20181018144005j:plain

 

ただ、光が強くあたる所とそうでない部分とで色分けがされているのがこれを見てよくわかります!

 

half d = dot(s.Normal, lightDir)*0.5 + 0.5;

このコードでライトの方向とオブジェクトの法線の内積で明るさを計算して0~1にスケーリングして

 

fixed3 ramp = tex2D(_RampTex, fixed2(d, 0.5)).rgb;

ランプテクスチャのUVとします(のようです)

 

これで計算した明るさにそって色付けしていきます(らしいです)

 

横着せずに、PhotoshopでToonテクスチャを適当に作りました。

なんかドイツっぽい!(どうでもいい)

 

f:id:nabesi777:20181018144811p:plain

 

これをインスペクターにいれて

f:id:nabesi777:20181018144833j:plain

 

 

できました!

f:id:nabesi777:20181018144852j:plain