[Unity] Unlitなシェーダで影付け

クエリちゃんのSDモデルが、標準でUnlit/Textureが使われてます。

ライティングを反映しないUnlitだと、モデルに影が付きません。

左 Unlit/Texture
右 Standard

単純にテクスチャを貼り付けて、影は地面にだけつけたい!

Shader "Unlit/UnlitShadow"
{
	Properties
	{
		_MainTex ("Texture", 2D) = "white" {}
	}
	SubShader
	{
		Tags { "RenderType"="Opaque" }
		LOD 100

		Pass {
			SetTexture [_MainTex] {  } 
		}
		UsePass "Legacy Shaders/VertexLit/SHADOWCASTER"
	}
}

影はUsePassで、別の標準シェーダを利用すると。

メニューからUnlitのShaderを作成し、名前をUnlitShadowなどにして、ダブルクリックから内容を上記のものに書き換えます。

作成したシェーダは、対象のモデルのテクスチャー部分で、Shaderから選択します。
クエリちゃんSDモデルは、bodyの変更と連動していくつか一緒に変わります(テクスチャ画像が共有のため)が、変わらないところもあるので、全箇所要確認。

左 Unlit/Texture
右 上記のシェーダ

以下のサイトを参考にしました。
UsePassではなく、直に書いた方が良いのかもしれない。

『参考サイト』
三次元日誌 UnityのShaderを書いてみる

Unity5.5.0f3

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする