UnityのLightコンポーネントの設定について

今回はUnityのLightコンポーネントの設定について見ていきたいと思います。

Lightコンポーネントはゲームの世界を照らす光を表現するもので、太陽、懐中電灯、室内の明かり等、色々な場面で使用します。

Lightコンポーネントの細かい設定を理解すれば、より良いゲームの世界観を作れます。

スポンサーリンク

ライトの作り方

ライトはヒエラルキー上で右クリックからLight→ライトの種類を選択するか(Reflection ProbeとLight Probe Groupはライトではありません)、

ライトをヒエラルキーで作成

ゲームオブジェクトのインスペクタのAdd ComponentからRendering→Lightを選択すると追加出来ます。

ライトをインスペクタのAdd Componentから追加

ライトの種類はLightコンポーネントの設定から変更出来ます。

Lightコンポーネントの設定

ライトを作成するとLightコンポーネントがゲームオブジェクトに追加されています。

Lightコンポーネントの設定説明用の画像

Typeでライトの種類が選択出来、Spot、Directional、Point(ポイントライト)、Area(baked only)の種類があります。

Spotはスポットライトで懐中電灯のような光源から円錐上に光が照射されます。

Rangeで光の到達距離を指定します。
Spot Angleで円錐の底面の角度を指定します。

スポットライトの照射

Directionalは明確な光源を持たずにゲームオブジェクトの向いている方向に平行に光が照射されます。太陽光に使われます。

Directionalの照射

Pointはポイントライトで光源から全方向に光を照射します。

Rangeで光の到達距離を指定します。

Pointライトの照射

Area(baked only)はエリアライトでライトマップで表面方向に光を照射します。エリアライトはライトマップをベイクした時だけ有効になります。

Shapeでライトの形状を変更出来、Rectangle(矩形)とDisc(円)を選択出来ます。

Rangeで光の到達距離を指定。
Radiusで半径を指定(Discのみ)。
Widthでライトの幅を指定(Rectangleのみ)。
Heightでライトの高さを指定(Rectangleのみ)。

Areaライトのサンプル

Areaライトはライトマップにベイクする必要があります。

ライトマップのベイクについては

UnityのLightingウインドウのグローバルイルミネーション(GI)、や環境光、霧の設定等を見ていきます。

を参照してください。

Colorはライトの色を指定します。
Modeはライトをベイクするかどうかの設定で、

Realtimeはリアルタイムに直接光を照射します。LightingウインドウのRealtime LightingのRealtime Global Illumination(リアルタイムGI)を有効にすると直接光だけでなく間接光も考慮されます。
Mixedはリアルタイムに直接光を照射しますが、LightingウインドウのMixed LightingのMixed Global Illuminationの設定によって間接光も考慮されます。RealtimeとBakedの中間ですかね。
Bakedはあらかじめ直接光と間接光をライトマップにベイクしておくのでリアルタイムな光ではありません。動的なゲームオブジェクトに光の影響を与えたい時はライトプローブを使います。

ライトのモードによって動的なオブジェクト、静的なオブジェクトに光を照射した時の直接光と間接光の計算はモードによって変わり、

Separate Unity Lighting Modes Reference Card Light Receiver,Receiver Submode,Direct lighting,Indirect lighting,Direct lighting,Indirect lighting Realtime Dynam...

上のページのような関係があります。

LightのTypeがSpotとPointの時はModeをRealtimeにしてもリアルタイムの反射光による影は考慮されません。

Intensityは光の強度を設定出来ます。
Indirect Multiplierは間接光の強度を設定出来ます。
Shadow Typeは影の種類でNo Shadowsは光による影を表示せず、Hard Shadowsはエッジのくっきりした影を表示し、Soft Shadowsはエッジを滑らかにします。Hard Shadowsの方が軽い処理になります。
Baked Shadow Angle(TypeがDirectional、ModeがMixedかBakedでShadow TypeがSoft Shadowの時)にベイクする影のエッジの角度を指定します。数値が大きくなるとより自然な影になります。
Realtime Shadows項目を見ていきます(ModeがRealtime、Mixedの時)。
Strengthは影の強さを指定します。
Resolutionは影の解像度を指定します。Use Quality Settingsを選択するとUnityメニューのEdit→Project SettingsのQualityのShadowsでの設定が適用されます。
Biasは影が表示されなくなる光からの距離を指定します。
Normal Biasは影を落とす面が面の法線方向にどれだけ縮小されるようになる距離を指定します。
Near Planeは影の描画のNear Clip Plane(近い部分を切り取る)距離の設定です。

影については

Unity のライトは、あるオブジェクトからそれ自体の一部や近くにある他のゲームオブジェクトに 影 (シャドウ) を作ることができます。シャドウによって、ゲームオブジェクトのスケールや位置が明確になるため、シーンに奥行きと現実感が生まれます。シャドウがないと、オブジェクトは 「平坦」に見えてしまいます。

を参照してください。

Biasの設定等について書かれています。

Cookieはライトで作られる影の模様に使用するテクスチャを設定します。

ライトのCookieの効果

Draw Haloにチェックを入れるとライトにハロー効果(空気中の細かい粉塵)を加えます。Haloの強さはLightingウインドウのOther Settingsで設定出来ます。

LightのDraw Haloの効果

Flareはカメラで光の屈折を表現する時に使用するフレアを指定します。Flareの設定はLightingウインドウのOther Settingsで設定出来ます。

LightのFlareの効果

Render Modeはライトの描画の優先度を指定します。

Autoは近くの照明の明るさとQualityの設定に応じて表示されます。
Importantは常にピクセル単位のクオリティで表示されます。
Not Importantは常に頂点とオブジェクトのライトモードで表示されます(高速)。

Culling Maskでは光を当てるレイヤーを選択出来ます。

例えばキャラクターにPlayerレイヤーを設定し、Directional LightのCulling MaskでPlayerのチェックを外すと、

LightのCullingMaskのテスト

下のようにDirectinal Lightの光がキャラクターに当たらないようになります。

LightのCullingMaskでキャラクターを排除したサンプル

LightコンポーネントはLightingウインドウでの設定と関係があるので、

UnityのLightingウインドウのグローバルイルミネーション(GI)、や環境光、霧の設定等を見ていきます。

も参照してください。

終わりに

光や影はゲームの世界観を作る時に非常に重要ですが、Lightコンポーネント、Lightingウインドウの設定等は素人にはなかなか難しいものですね。

リアルタイムライトとベイクしたライト。

GIを使った直接光、間接光、環境光。

さらにはLight Probe Group、動的なゲームオブジェクト(Dynamic)、静的なゲームオブジェクト(Static)。

これらが密接な関係にあるのでわけがわからなくなります。

記事中にリンクを掲載していますが、これらの関係が表にされたページがあったのでこれは非常に便利ですね。(^^)/

参考サイト

UnityマニュアルーLightインスペクタ―ー
Unityマニュアルーライトの種類ー
UnityマニュアルーLightMode-Realtimeー
UnityマニュアルーLightMode-Mixedー
UnityマニュアルーLightMode-Bakedー

スポンサーリンク

記事をシェアして頂ける方はこちら

フォローして頂くとやる気が出ます