ライティング
ライトの使用

ライティング概要

Unity が3D オブジェクトのシェーディングを計算するためには、そのオブジェクトに当たる光の強度、方向、色の情報が必要です。

これらのプロパティーはシーン内の ライト(Light) オブジェクトから提供されます。ベースカラーと強度はすべての光で完全に同じ設定ですが、方向は使用している光の種類により異なります。また、光源からの距離が遠くなると光が弱まる場合もあります。以下は、Unity の提供する4種類の光についての説明になります。

ポイントライト

ポイントライト(Point Light) は空間のある一点(ポイント)に位置し、全方向に同等に光を放ちます。面に当たる光の方向は、その接地点とライトオブジェクトの中心点を結んだ直線です。光の強度は距離とともに減衰し、特定の距離で 0 になります。

ポイントライトは、ランプなど、シーン内の局所的な光源のシミュレーションに役立ちます。リアリスティックに周囲を照らす火花や爆発を作ったりするのにも役立ちます。

シーンにおけるポイントライトの効果の例
シーンにおけるポイントライトの効果の例

スポットライト

ポイントライト同様、 スポットライト(Spot Light) も特定の位置を持ち、光の落ちる範囲が定められます。ただしスポットライトは限られた角度内の光になるため、照明領域が円錐形になります。円錐の中心は、ライトオブジェクトの順(Z)方向を指しています。

スポットライトは一般的には懐中電灯、車のヘッドライト、サーチライトなどといった人口の光源用に使用されます。スクリプトやアニメーションで方向を制御すれば、動きのあるスポットライトでシーン内のごく狭いエリアを照らし、印象的なライティング効果をつくり出すことができます。

シーンにおけるスポットライトの効果の例
シーンにおけるスポットライトの効果の例

ディレクショナルライト

ディレクショナルライト(Directional Light) は明確な光源の位置を持たないので、ライトオブジェクトは基本的にシーン内のどこにでも置くことができます。シーン内のすべてのオブジェクトが、あたかも光が常に同じ方向から差しているかのように照らされます。ターゲットオブジェクトから光までの決まった距離が設定されていないので、光が減衰することもありません。

ディレクショナルライトは、ゲーム世界の範囲外にある位置から差す、大きな遠い光源を表します。写実的なシーンでは、太陽や月のシミュレーションに使うこともできます。また、アブストラクトなゲーム世界では、光がどこから差しているか特に明確にすることなく、説得力のある影をオブジェクトに付けることができます。シーンビューで(例えばメッシュやシェーダーやマテリアルを見るために)オブジェクトをチェックするときに、ディレクショナルライトを使用すれば、多くの場合、シェーディングの見え方をもっとも手早く掴むことができるでしょう。そのようなテストの時は大抵、光源の場所はどうでも良く、単純にオブジェクトが「はっきり」見えてモデルに問題がないかどうか確認できればよいからです。

シーンにおけるディレクショナルライトの効果の例
シーンにおけるディレクショナルライトの効果の例

エリアライト

エリアライト(Area Light) は空間内の長方形によって定義されます。光は全方向に放射されますが、片面のみからになります。光は特定された範囲内に届きます。ライティングの計算がプロセッサーにかなりの負担をかけるため、エリアライトはランタイムでは使用できず、ライトマップにベイクされる方法によってのみ使うことができます。

エリアライトは複数の異なる方向から同時にオブジェクトを照らすので、他の種類のライトと比べてシェーディングが柔らかく繊細になります。写実的な街頭や、プレイヤーに近いところに複数並んだライトの表現などに使用できます。小さなエリアライトは小さな光源(家のインテリアの光など)をシミュレートでき、ポイントライトよりも写実的な効果を得られます。

ライティング
ライトの使用