こんにちは、ともくんのゲーム作り部屋にようこそ!
このページでは、
「Unityのライトの使い方を知りたい!」
「ライトっていくつ種類があるの?」
というお悩みの方に向けた内容となっています。
Unityで明かりといった光源でゲーム内を照らす場合は、Light(ライト)オブジェクトが必要になります。
このLightオブジェクトは、光でゲーム内を照らすことで、オブジェクトに対して影を表示させたり、暗闇の中の特定の部分だけを照らしてプレイヤーに見せたりすることができます。
また、Lightオブジェクトにはいくつか種類があり、他にも照らし方や影の付け方など細かい設定を行うことができます。
そこで、このページでは、Unity内の光源として配置するLightオブジェクトについて、どのような仕組みになっているのか、また基本的な使い方やライトの種類までをまとめていきます。
Light(ライト)オブジェクトとは?
まずは、UnityのLightオブジェクトがどのようなものなのか、紹介していきます。
ゲーム内に光源を設定できる
Lightオブジェクトとは、Unityのゲームシーン内に光源を設定することができるオブジェクトです。
光源とは、太陽や電灯のような役割を指していて、このLightオブジェクトを使うことで、「光を照らす」ということができるようになります。
Lightオブジェクトは、Unityにおいて3Dゲームでプロジェクトやシーンを作成した際に、以下のようにデフォルトで配置されています。

なお、2Dゲームではデフォルトでは配置されていませんが、Lightオブジェクトを配置して光を照らすことができます。
ちなみに、このLightオブジェクトをオフにしてみると分かりやすいですが、シーン内が暗くなりこのオブジェクトが光源の役割を果たしているのが分かります。

オブジェクトに対して影が表示される
3DゲームでのLightオブジェクトには、光を照らす光源の役割として、配置しているオブジェクトに対して影が表示されるようになります。
現実の世界で、太陽や蛍光灯などの光が差し込んでくる場合、物に対して反対側の方向に影が伸びていくことになります。

現実と同様に、UnityでもLightオブジェクトによる光源の向きや強さに応じて、オブジェクトの影を表示させることができます。

このようにLightオブジェクトを使うことで、ゲーム内に明かりを照らすだけでなく、オブジェクトに対して影を表示させるという役割も持っています。
Light(ライト)オブジェクトの基本的な使い方
ここからは、実際にUnity内でLightオブジェクトの使い方や種類について紹介していきます。
Lightオブジェクトの配置
Lightオブジェクトは、デフォルトでもシーン内に配置されていますが、新たに作成する場合はヒエラルキーウィンドウの+ボタンから、「Light」を選択してどのライトを配置するかを決めていくことができます。

なお、上は3Dゲームの場合ですが、2Dゲームの場合は以下のように「2D」というものを選んでいきます。

それぞれのライトの種類については、後ほどの項目で説明していきます。
また、Lightオブジェクトを配置すると、座標の位置や回転などを管理しているTransformコンポーネントと、光源としての機能であるLightコンポーネント(2DならLight 2Dコンポーネント)の2つが紐づくことになります。

このうち、Transformコンポーネントは、Lightオブジェクトを配置する場所を決めたり、光源の向きや光の方向を変えたりすることができます。
なお、Transformコンポーネントについては、以下の記事でも解説していますので、参考にしてみてください。
ライトの種類
ライトの種類は、ヒエラルキーウィンドウでLightオブジェクトを配置する際、もしくは3DゲームならLightコンポーネントのType、2DゲームならLight 2Dコンポーネントの「Lite Type」の項目から選択することができます。


ここでは、それぞれのライトの種類について、紹介していきます。
3Dゲームのライトの種類
3Dゲームのライトの種類は、
- Directional Light
- Point Light
- Spot Light
- Area Light
の4つがあります。
Directional Light:太陽のような光源

Directional Lightは、太陽と同じような光源で、ゲーム外の遠い場所から光を放つライトです。

このDirectional Lightの特徴として、光源の位置を持たないため、光源の座標から近くても離れていても、光の強さは変わりません。
また、全ての場所・オブジェクトにおいて、同じ方向から光が当たることになります。
Point Light:ランプのような光源

Point Lightは、特定の一点から全方向に対して同じ光を放つライトで、ランプのように配置した部分だけを照らすことができるライトです。

Point Lightでは、LightコンポーネントのEmissionにあるRangeという項目が、ライトからの光の放出距離を表していて、このRangeよりも離れてしまうと光が届かなくなります。

なお、シーンビュー内では、Rangeを変更すると、光が放出する距離が視覚的に変わっているのが分かります。

Spot Light:スポットライトのような光源

Spot Lightは、特定の方向と角度に対して光を放つライトで、懐中電灯のように円錐形で照らされるライトです。

Point Lightと同じく、LightコンポーネントのEmissionにあるRangeで光の距離を指定することができ、またShapeにあるInner / Outer Spot Angleで光を放つ角度(拡がり)を指定することができます。

Area Light:長方形・円形から放つ光源

Area Lightは、長方形もしくは円形のエリアの表面から全方向に対して均一に光を放つライトで、天井の蛍光灯や窓からの光などを表現する際に使用します。

このArea Lightは、他のライトと異なりライトベイクした時のみ使うことができるライトです。
ライトベイクとは、光の情報や影の付き方などの様々な情報を先に計算しておき、それをテクスチャに設定しておくことで、オブジェクトに光が当たった処理を反映させることができる方法です。
通常のライトはリアルタイムでレンダリングされるのに対して、ライトベイクはレンダリングを先に行うことになるため、ゲームの負荷を減らす効果があります。
なお、ライトベイクは、他のライトではLightコンポーネントにあるModeの項目から選択することができます。

2Dのライトの種類
2Dゲームのライトの種類は、
- Global Light 2D
- Spot Light 2D
- Sprite Light 2D
- Freeform Light 2D
と4つあり、名称の最後に「2D」が記載されています。
Global Light 2D:画面全体を照らす光源

Global Light 2Dは、ゲームシーン全体を照らす光源です。
カメラ側からゲーム画面全体に向かって照らしている光源となります。
Spot Light 2D:一部だけを照らす光源

3DでのSpot Lightと同じく、Spot Light 2Dは、ゲーム内の一部分を円形で照らすことができる光源です。
Light 2Dコンポーネントの「Radius」の項目で円の内半径(Inner)と外半径(Outer)を設定でき、「Inner / Outer Spot Angle」で光の形を角度で指定することができます。

Sprite Light 2D:スプライトの形で照らす光源

Sprite Light 2Dとは、Light 2Dコンポーネントの「Sprite」の項目に設定したスプライトの形状で照射する光源です。

例えば、星形のスプライトを指定したら、以下のように星形の光が照らされます。

Freeform Light 2D:自由な形状で照らせる光源

Freeform Light 2Dは、形状を自由に編集して照らすことができる光源です。
Light 2Dコンポーネントの「Edit Shape」のボタンを選択すると、シーンビューで形を編集することができ、自由な形の光源を作ることができます。

まとめ
このページでは、UnityのLightオブジェクトについて、どんな仕組みなのか、またライトの基本的な使い方や種類についてまとめていきましたが、いかがでしたでしょうか?
Lightオブジェクトは、ゲーム内に光を照らす光源という役割があり、その光が当たっているオブジェクトには影が表示されるようになります。
このLightオブジェクトによって、ゲーム内での光の方向や影の付き方、また光の強さや形状など光に関する様々な設定が行われています。
また、ライトの種類も2D・3Dともに複数あるので、ゲームの雰囲気などに合わせて変更していくようにしましょう。
最後までお読みいただきまして、ありがとうございました!
コメント