(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

あまり重くならない範囲でライティングを調整し、見栄えを良くする【Unity】


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

この記事でのバージョン
Unity 2017.4.5f1


はじめに


現在、Oculus Go向けに札束風呂VR(仮)というものを開発しているのですが、



見栄えをもうちょっといい感じに出来ないかと、

以下を参考に試行錯誤したものを記事にまとめてみました!




なお、今回はVR向けなので、

重くなるような(フレームレートが落ちるような)事は出来るだけ避けています。


ちなみに調整前後の画像が以下のものになります。(左が調整前、右が調整後)

結構良くなっているのでは無いでしょうか!


f:id:kan_kikuchi:20180619080601j:plain
f:id:kan_kikuchi:20180619080613j:plain


また、本記事に出てくる椅子や女の子のアセットは以下のものを使っています。






Static

まず、絶対に動かないオブジェクトをStaticにします。

こうする事で後述するベイクで、影を焼く(固定する)事が出来ます。


f:id:kan_kikuchi:20180616074539j:plain


また、てきとうに置いたライトも一旦なくしました。


Environment Lighting

次にEnvironment Lighting(環境照明)を調整して、全体的な明るさを決めます。

なお、Environment LightingはWindow -> Lighting -> Settingから設定する事できます。


f:id:kan_kikuchi:20180616074614j:plain


調整前はSourceがColorのピンクでやり過ぎな感じがしたので、

ColorをGradientにして、自然な感じ、かつ閉め切ってる部屋なので暗めに調整しました。


f:id:kan_kikuchi:20180616074650j:plain
f:id:kan_kikuchi:20180616074703j:plain


Point Light

今度はライトのオブジェクトあたりにPoint Lightを設置します。

色はライトのモデルに合わせて黄色っぽい感じに。


f:id:kan_kikuchi:20180616075739j:plain
f:id:kan_kikuchi:20180616075751j:plain


今回はキャラが動いた時に一緒に変化するような動的な影は作らないので、ModeはBakedにしました。

また、ShadowTypeはSoft Shadows

Baked Shadow Radiusを少し増やしておく良いらしいので、10にしてみました。


f:id:kan_kikuchi:20180616075721j:plain


Directional Light

Point Lightと同じ感じで、ちょっと怪しいピンク色のDirectional Lightも置きます。


f:id:kan_kikuchi:20180616080112j:plain
f:id:kan_kikuchi:20180616080350j:plain
f:id:kan_kikuchi:20180616080400j:plain


Directional Lightを複数、違う方向に設定すると良いそうなので、

さっきよりちょっと弱めにしたものをShadow TypeをNo Shadowsにして影なしで置きます。


f:id:kan_kikuchi:20180616080104j:plain
f:id:kan_kikuchi:20180616080400j:plain
f:id:kan_kikuchi:20180616080414j:plain


影が出ない、ライトの明かりが反映されない

上記のようにLightを設置した時に「影が出ない、ライトの明かりが反映されない」といった場合には、

Edit -> ProjectSettings -> Quality Settings


f:id:kan_kikuchi:20180616075004j:plain


PixelLight Countを増やしたり、ShadowsをDisable Shadows以外にすれば解決するかもしれません。


f:id:kan_kikuchi:20180616074947j:plain


なお、Shadow Resolutionで影の解像度(クオリティ)を設定出来ます。


(Reflection, Light)Probe

ライトの設定が終わったら、鏡などを反射させるためにReflection Probeという物

を設置するのですが、今回は反射させるものがない(重いから)ので設置しません。



また、動くオブジェクトにも固定したライトの影響を与えるためにLight Probeという物

を設置するのですが、今回は出来るだけ軽くしたいので設置しません。





影を焼く(固定する)

Probeの設定も終わったら(今回は設定してませんが)、影を焼きます(ベイクする)。

影をベイクすると普通にライトで影を表示するより軽くなりますし、見栄えも良くなります。


なお、影のベイクはEnvironment Lightingの時にも使ったLightingのWindowから行います。


今回は動的なライティングはないので

Realtime Lightingのチェックを外し、Mixed Lightingにチェックを入れ、

Lighting ModeをBaked Indirectにしたら、Generate Lightingを押して、しばし待ちます。


f:id:kan_kikuchi:20180616081317j:plain
f:id:kan_kikuchi:20180616081542j:plain
f:id:kan_kikuchi:20180616081553j:plain


ちょっと暗過ぎるので、Light(PointもDirectionalも)のIndirect Multiplierを上げて、再度ベイクします。


f:id:kan_kikuchi:20180616081615j:plain
f:id:kan_kikuchi:20180616081553j:plain
f:id:kan_kikuchi:20180616081605j:plain


なお、ベイク結果(テクスチャ)はシーンと同名のフォルダの中に生成されます。

リセットしたい時はこのフォルダを消して、シーンを再生すれば元の状態に戻ります。


f:id:kan_kikuchi:20180616092219j:plain


ポストプロセス

最後にポストプロセスというカメラにかけるエフェクトを追加します。



導入方法や各項目の設定値は以下の記事を参照の事。




今回は以下の6種類のエフェクトを追加してみした。


f:id:kan_kikuchi:20180616155411j:plain
f:id:kan_kikuchi:20180616155417j:plain
f:id:kan_kikuchi:20180616155429j:plain


が、Bloomだけでもフレームレートが結構下がったのでポストプロセスは諦めました。


おわりに

ライティング調整前後の動画もあるので、載せておきます。