概要
ライティング(照明設定)は、3Dシーンの雰囲気、リアリティ、そしてプレイヤーの視線誘導において、極めて重要な役割を果たします。同じモデルやテクスチャを使っていても、ライティング次第でシーンの印象は劇的に変わります。Unityには、リアルなシーンからトゥーン調の非現実的なシーンまで、多彩な表現を可能にする強力なライティングシステムが備わっています。
Unityのライティングは、大きく分けてリアルタイムライティング (Realtime Lighting) とベイクドライティング (Baked Lighting) の2種類があります。
- リアルタイム: ゲームの実行中に、毎フレーム光と影の計算を行います。動的なオブジェクト(キャラクターなど)が動的な影を落としたり、光源自体が動いたりできますが、計算負荷が高いです。
- ベイク: ゲームの実行前(開発時)に、静的なオブジェクトに対する光と影の計算をすべて済ませてしまい、その結果をライトマップ (Lightmap) という特殊なテクスチャに焼き付けて保存します。実行時の負荷は非常に低いですが、動的な変化には対応できません。
効率的で美しいシーンを作るには、この二つを賢く使い分けることが鍵となります。
この記事では、Unityにおける基本的なライトの種類と、シーンを照らすための基本的な概念について解説します。
主要なライトの種類
Unityでは、GameObject > Lightメニューから様々な種類のライトをシーンに配置できます。
Directional Light (ディレクショナルライト)
太陽光や月光のように、無限遠にある光源をシミュレートします。シーン全体に対して、一方向から平行な光を当てます。ライトの位置は関係なく、**回転(角度)**のみが光の方向を決定します。通常、屋外シーンの主要な光源として、シーンに一つだけ配置されます。
Point Light (ポイントライト)
電球のように、一点から全方向に光を放ちます。光は距離に応じて減衰します 。裸電球、ランプ、爆発の閃光など、特定の場所にある光源を表現するのに使われます。
Spot Light (スポットライト)
懐中電灯や舞台のスポットライトのように、一点から円錐状に光を照射します。光の角度(Spot Angle)や範囲(Range)を調整できます。特定のオブジェクトを強調したり、プレイヤーの視線を誘導したりするのに効果的です。
Area Light (エリアライト)
長方形の面から光を放ちます。窓や天井の蛍光灯など、面光源をシミュレートするのに適しています。リアルタイムでの処理は非常に負荷が高いため、通常はベイク専用のライトとして使用されます。より自然で柔らかい影や反射を生み出します。
Global Illumination (GI) - グローバルイルミネーション
現実世界では、光は光源から直接オブジェクトに当たるだけでなく、オブジェクトの表面で反射し、他のオブジェクトを間接的に照らします。この間接光 (Indirect Lighting) をシミュレートする技術がGlobal Illumination (GI) です。
GIを使うことで、直接光が当たらない影の部分が真っ暗になるのを防ぎ、シーン全体がより自然で深みのある見た目になります。
Unityでは、GIもリアルタイムとベイクの両方に対応しています。静的なオブジェクトに対する間接光はライトマップにベイクし、動的なオブジェクトが間接光の影響を受けるためにはライトプローブ (Light Probes) という技術を使います。
影 (Shadows)
影は、シーンに立体感と奥行きを与える重要な要素です。Unityでは、ライトのInspector設定で影を生成するかどうか(Shadow Type)を選択できます。
- No Shadows: 影を生成しません。最もパフォーマンスが良いです。
- Hard Shadows: 輪郭がはっきりした影を生成します。計算負荷は比較的高速です。
- Soft Shadows: 輪郭がぼやけた、よりリアルな影を生成します。最も計算負荷が高いですが、見た目の品質は向上します。
リアルタイムで影を生成できるライトの数や距離は、パフォーマンスに直接影響します。Quality Settings (Edit > Project Settings > Quality) で、影の品質、描画距離などを調整し、ターゲットとするプラットフォームの性能に合わせてバランスを取る必要があります。
ライティング設定のワークフロー
- 主要な光源の配置: まず、シーンの主要な光源となる
Directional Light(屋外の場合)や、キーとなるPoint Light/Spot Lightを配置します。 - 環境光の設定:
Window > Rendering > LightingでLightingウィンドウを開き、Environmentタブで環境光(空の色など)を設定します。これにより、シーン全体の明るさのベースが決まります。 - 静的オブジェクトの設定: 地形や建物など、ゲーム中に動かないオブジェクトは、Inspectorで
Staticフラグをオンにします。これにより、これらのオブジェクトはライトベイクの対象となります。 - ライトのモード設定: 各 ライトの
ModeをRealtime,Baked,Mixedから選択します。動的な影が必要なライトはRealtime、静的なオブジェクトのみを照らすライトはBakedにします。 - ライトベイクの実行: Lightingウィンドウの
Generate Lightingボタンを押して、ライトベイクを実行します。これにより、ライトマップが生成されます。 - ライトプローブの配置: 動的なキャラクターがベイクされた間接光の影響を自然に受けられるように、シーン内に
Light Probe Groupを配置します。
まとめ
ライティングは奥が深い分野ですが、基本を抑えるだけでもシーンの品質は大きく向上します。
- ライトの種類(Directional, Point, Spot)を役割に応じて使い分ける。
- 動かないオブジェクトは
Staticに設定し、ライトをベイクすることでパフォーマンスを向上させる。 - リアルタイムライトとベイクライトを賢く組み合わせる。
- Global Illumination (GI)で間接光を表現し、リアリティを高める。
- 影は負荷が高いため、品質とパフォーマンスのバランスを考慮して設定する。
まずは様々なライトをシーンに置いてみて、その効果を試しながら、光と影が作り出す豊かな表現を探求してみてください。