Unityのライティングシステムは非常に強力です。
ライティングウインドウでは環境光、ライトマップ、GI、フォグなど多彩な設定を行えます。
環境:Unity2018.1
メニューから
Window > Lighting
と選択し、ウインドウを開いてみましょう。
Environment
環境光を設定します。
シーン全体に適用されるベースとなる光(太陽光など)や、光が物体に反射することで発生する 間接光 の設定です。
シーンの雰囲気を決める重要な設定です。
Skybox Material
シーンを囲むように表示される景色、いわゆるスカイボックスを設定します。
従来のキューブマップは Legacy になり、Unity5からはプロシージャルマテリアルを指定できるようになりました。
http://docs.unity3d.com/ja/current/Manual/ProceduralMaterials.htmldocs.unity3d.com
はい、すごくプロシージャルですね。
新規シーンを作成するとデフォルトのプロシージャルマテリアルが指定されているはずです。
Sun Source
太陽光の方向を表すライトを設定します。
スカイボックスにプロシージャルマテリアルを指定した場合、このSunに指定したライトの方向によって太陽の位置をシミュレートしてくれます。
これによって日没などの表現が可能になりました。
特にDirectionalLightである必要はないようです。
Environment Lighting
ライトを照らす前のシーンのベースとなる光の設定です。
Unity4のころにこの設定を知らなくて、真っ暗闇の中にディレクショナルライトだけでなんとか照らそうとした苦い思い出がよみがえります。
Source
環境光にどれを使うのかを選択します。
たいていの場合は「Skybox」に設定しておくのがベストです。 これによって上のSkyboxで設定したマテリアルの色で、いい感じの環境光で照らしてくれます。
モバイルの場合は Skybox Material を空にして、SourceをColorにしたほうがパフォーマンスがいいかもしれません。
Intensity Multiplier
環境光の明るさを指定します。
0に近づけるほど暗くなります。
0にするとほろ苦い思い出が蘇ります。
Ambient Mode
シーンのGIモードを設定します。
Environment Reflections
シーン内の環境光の反射の設定です。
Reflection Source
反射で映り込むモノになにを使うかを設定します。
これも大抵の場合Skyboxで問題ないです。Resolutionを大きくするとより正確な写り込みになります。
Customを設定した場合、キューブマップを設定することで映り込むモノを設定できるようです。
上のように、雲一つないのに球体に雲を映りこませたりできます。
Compression
反射に使うテクスチャを圧縮するかどうか。Autoでいいんじゃね的なアレ。
Intensity Multiplier
反射光の強さを設定します。
暗くすると映り込みがなくなっていきます。
Bounces
反射光が何回まで反射できるかを設定します。
おおざっぱに言うと、「目から出た破壊光線が敵に届くまでに何回反射できるか」を設定できます。
Lightmapping Settings
Realtime Lightingと Mixed Lighting の解説は次回以降にゆずり、Lightmapping Settingsの設定を見ていきます。
ここがいわゆる「影」をベイクするための設定です。
Lightmapper
ライトマップの焼き込みにどのエンジンを指定するかの設定です。
- Progressive
Unityが本気出して搭載した プログレッシブライトマップ を使います。こちらを使うとエディタ上でシーンにリアルタイムでライトマップが焼かれ、スムーズな開発につながります。 - Enlighten リアルタイムの確認はできませんが、こちらのほうがGIとかに強いっぽい?
それぞれ選択すると設定画面の項目が変わります。
以下、共通項目
Indirect Resolution
GIがらみの設定で、間接光をどれくらい細かく使うかの設定らしいです。
数字を増やすとクオリティも上がる。
Lightmap Resolution
ライトマップ解像度です。 とうぜん数字が大きいほど、より細かい影が。
Lightmap Padding
ライトマップにテクスチャを敷き詰める際に、それぞれの影の間にスキマを持たせる設定です。 あまり小さい値にすると影同士が干渉するのかな?
Lightmap size
一枚のライトマップのサイズを決めます。 一枚におさまらないと2枚目のライトマップが必要になってしまい、容量を食ってしまうので、解像度との兼ね合いになってきます。
Compress Lightmaps
ライトマップを圧縮します。良いことばかりではなく、影が意図しないものになってしまう可能性があるとか。
容量とのトレードオフですかね。
Ambient Occlusion
アンビエントオクルージョン の設定。よくわからん(キッパリ)。
Directional Mode
ライトの品質を設定します。
- Non-directional (負荷低) ライトマップのデータを一つだけ持つ、一番に負荷が低いモードです。
- Directional (負荷中) ライトマップのデータを複数持ち、よりリアルな影を表現できます。
- Directional with Specular (負荷高) ライトマップ複数に反射光のデータも持った、いちばんごついモードです。
Indirect Intensity
スカイボックスなどの環境光、他のオブジェクトからの反射光をどれくらい強く焼きこむかの設定です。
要は高くすると影が薄くなります。
Albedo Boost
物体に反射した光にたいしてこの係数がかかり、より物体がピッカーッとなるみたいです(適当)。
Lightmap Parameters
ライトマップに関する細かなパラメータをここで設定します。
上の三つの選択肢はプリセットで、Create New からパラメータを自作することもできます。
http://docs.unity3d.com/ja/current/Manual/LightmapParameters.htmldocs.unity3d.com
次回、GI!
もう以上でおなかいっぱいな感がいなめませんが、GIを語らずしてUnity5を語るなということで次回、GIとLightmappingウインドウの残り。