見出し画像

【Unity】モバイル向けのマテリアルで影が暗すぎたのでいい感じにしたい

影が黒すぎる


Unityでモバイル向けのゲームを作る時に気を付けたいレンダリングの負荷。

ひたすら処理の軽いシェーダーの方がいいと思って探ったところ、Mobileシェーダーがその名の通りモバイル向けに最適化されたシェーダ―とのこと。

いざ使ってみたんですが、影が真っ黒!↓

球体の影がガタガタ、オブジェクトと影が同化して視認性も悪いです。
というわけでこれを何とかしたいと思います。

MobileShaderマテリアル

Projectタブ内で右クリック、Create>Materialで新規マテリアルをつくります。

新規でできたMaterialをクリック、
InspectorのShader>Mobile>VertexLit(Only Directional Lights)を選択してオブジェクトにアタッチ。

↑これが一番軽いらしい。
これでマテリアルはOKです。

Directional Lightの設定

次にDirectionalLightの設定です。
おそらく初期設定では影は描写されていないと思います。
ヒエラルキーで右クリック>Light>DirectionalLightで生成します。もうあればそれを使っていただければOKです。

DirectionalLightの設定↓

インスペクターでShadow TypeをHardShadowにすれば影が描写されます。
Strangthの値で影の濃さを調整します。
今のところこんな感じ↓

影は薄いですが球体の影部分がなんかガビガビしてます。
手っ取り早くこれを消す方法として、オブジェクトを選択、インスペクターのMesh Renderer>Lighting>Receive Shadowsのチェックを外します。

これでガビガビした影が無くなると思います。
Recive Shadowはオブジェクトの影を受けるかどうかを設定します。
注意!Recive Shadowチェックを外すことで他のオブジェクトを上においてもこのオブジェクトには影が反映されないので非現実的な描写になります。

当然受けない方が負荷が軽いわけで、私の場合は必要ないオブジェクトに関してはバンバンチェックを外してます。

Enviroment Lighting

最後に、影はいい感じなのですが、設定によってはオブジェクト自体の「陰」が暗い時があります。「影」「陰」はちょっと違う意味合いを持つそうなので。
オブジェクトそのものの落とすのが影、オブジェクトの明暗?環境光?が陰、みたいなイメージですかね。説明うまくできなくてスイマセン。

メニューからWindow>Rendering>Lightingを選択、LightingウィンドウのEnviromentタブをクリックしてEnviroment Lighting項目を見てみます。↓

Intensity Multiplierの値を動かすとSourceに応じた明るさが設定できます。一気に画面全体の印象が変わりますね。こことDirectional Lightの組み合わせで色々さわると非現実的な描写なんかもできておもしろいです。↓

めっちゃテキトーにいじって異世界感

Unityの影に関してはまだまだ奥が深いので次回にします。ありがとうございました!

いいなと思ったら応援しよう!