テラシュールブログ

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

【Unity】なんか影が出ない問題の対策

f:id:tsubaki_t1:20180424221235j:plain

サンプルを色々といじっていた所、どうも影が出なくなる現象に当たったので、その原因と対策についてココに書いておきます。

 

 

影が出ない

光あるところに闇があり。影は基本的に光を遮った所に存在し、逆を言えば光があれば影が出来ることを期待出来ます。

f:id:tsubaki_t1:20180424221850j:plain

ただし幾つかの設定によって、光を配置したのに影が出ないという事があります。

影は基本的に重い処理の一つであり、多くの影を無効化する設定が存在します。この影を無効化にする設定を間違えてONにしてしまう事は意外と存在し、その辺り知らないと影が出ないと困ることになります。

 

”影”を無効化する設定

この記事に辿り着くであろう人にまず見て欲しい項目は、Quality Settings(メニューアイテム > Edit > ProjectSettings > Quality Settings)です。
このShadowsの項目がDisable Shadowsになっていると影が表示されません。
ShadowsをHard And Soft Shadowsにします

f:id:tsubaki_t1:20180424222223j:plain

こんな所触ったこと無い? その場合は、もしかしたら2Dでプロジェクトを作ってしまったのかもしれません。最近Unityのプロジェクトを作成する際に2Dを指定すると、この項目やLightmapの設定が全てOFFになります

f:id:tsubaki_t1:20180424222541j:plain

なおScriptable Render Pipelineを利用している場合、この設定が無視される可能性があります。SRPのライト設定は別の場所にあるかもしれません。ScriptableObjectとか。
下の画像はLightweight RenderPipelineの設定ファイルです。影の項目がコチラに移動しています。

f:id:tsubaki_t1:20180424222851j:plain

 

光が影を出していない

次点で意外とあるのが、光が影を出していない事です。

凄く単純で、Lightの設定のShadow TypeがNo Shadowsになっていると影が出ません。
影を出したいなら、Hard ShadowかSoft Shadow辺りを設定する必要があります

GameObjectメニューから作成するLightの初期設定はNo Shadowなので、影がほしければShadow Typeを設定します。

f:id:tsubaki_t1:20180424223047j:plain

Lightmap Staticが付いていない(オブジェクトのStaticフラグがOFF)オブジェクトに影がかかるのは、RealtimeかMixedのライトのみです。

また、HD Render Pipelineは設定項目が大きく違うので注意が必要です。

f:id:tsubaki_t1:20180424223648j:plain

 

物質が光を遮らない

Shadowの設定が有効で、かつ光が影を発生させる設定になっている場合、オブジェクトが光を遮らない設定になっているかもしれません。
例えばTransparentなどのシェーダーは光を遮らない設定になっています。

f:id:tsubaki_t1:20180424224307j:plain

シェーダーが光を遮るのか遮らないのかは、Edit Shaderで表示されるビューで確認できます。Cast Shadowsがnoなら遮らないし、onなら遮ります。

f:id:tsubaki_t1:20180424224504g:plain

f:id:tsubaki_t1:20180424224332j:plain

またRendererのCastshadowがOFFの場合も、影を遮りません。

f:id:tsubaki_t1:20180424224633j:plain

 

SceneViewの設定

Shadowの設定でもLightの設定でも物質の設定でも無い場合、実はSceneViewで設定色々いじった結果なってた的なケースがあります。
SceneViewの上の方の太陽トグルが外れていると、光が出ません。

f:id:tsubaki_t1:20180424224954j:plain

 

それでも駄目なら

エディター再起動したら治ることがあります。

 

関連

tsubakit1.hateblo.jp