Lighting Settings アセットは、LightingSettings クラスの保存されたインスタンスを表し、ベイクしたグローバルイルミネーションと Enlighten のリアルタイムグローバルイルミネーションのシステムのデータを格納しています。Unity エディターは、ベイクしたグローバルイルミネーションシステムとリアルタイムグローバルイルミネーションのシステムのデータを保存しています。
同じ Lighting Settings アセットまたは LightingSettings
クラスのインスタンスを複数のシーンに割り当てることができるので、グローバルイルミネーションシステムの設定を複数のシーンで簡単に共有することができます。
Unity エディターで Lighting Settings アセットを作成するには 2 つの方法があります。
プロジェクトビューから Lighting Settings アセットを作成するには、以下を行います。
Lighting Settings アセットを作成して自動的に割り当てるには、Lighting ウィンドウで行います。
スクリプトから Lighting Settings アセットを作成することもできます。これを行うには、LightingSettings クラスのインスタンスを作成してディスクに保存するか、シーンに割り当ててそのシーンを保存します。詳細およびコード例については、LightingSettings API ドキュメント を参照してください。
Unity エディターで Lighting Settings アセットをシーンに割り当てるには、以下の手順で行います。
また、スクリプトからアクティブなシーンに Lighting Settings アセットを割り当てることもできます。そのためには、Lighting Settings アセットをロードして、LightingSettings
クラスのインスタンスを取得し、Lightmapping.latingSettings
API を使用して、その LightingSettings
インスタンスをアクティブシーンに割り当てます。詳細およびコード例については、LightingSettings API ドキュメント を参照してください。
Lighting Settings アセットのプロパティは、Unity エディターの 2 箇所で表示編集することができます。
また、スクリプトを通して Lighting Settings アセットのプロパティを読み取る/書き込むこともできます。そのためには、Lighting Settings アセットをロードして、LightingSettings
クラスのインスタンスを取得し、そのプロパティにアクセスする必要があります。詳細およびコード例については、LightingSettings API ドキュメント を参照してください。
シーンに Lighting Settings アセットが割り当てられていない場合、Unity はそのシーンに対してデフォルトの LightingSettings
オブジェクトを使用します。デフォルトの LightingSettings
オブジェクトは、LightingSettings
クラスの内部用、読み取り専用のインスタンスです。
デフォルトの LightingSettings
を使用するシーン の LightingSettings
データに変更を加えることはできませんが、Unity はその設定を使ってベイクを行うことができます。
シーン の LightingSettings
データを変更するには、Unity エディターを使用して Lighting Settings アセットを作成して割り当てるか、スクリプトを使用して LightingSettings
オブジェクトを作成、設定、割り当てする必要があります。詳細とコード例については、LightingSettings API ドキュメント を参照してください。
Unity は アンビエントプローブ と デフォルトのリフレクションプローブ を自動的に生成し、環境ライティングがシーンとその中のゲームオブジェクトにデフォルトで影響するようにします。この機能の詳細については、SkyManager を参照してください。
Inspector または Lighting ウインドウで Lighting Settings を表示する場合、表示または編集できるプロパティは以下のセクションに分かれています。
このセクションには、Enlighten Realtime Global Illumination システムに関する設定 が含まれています。.
プロパティ | 機能 |
---|---|
Realtime Global Illumination | このプロパティを有効にすると、この Lighting Settings アセットを使うシーンで Enlighten Realtime Global Illumination システムを使用します。 |
Realtime Environment Lighting | このプロパティを有効にすると、Enlighten のリアルタイムグローバルイルミネーションシステムを使用して、アンビエントライトをリアルタイムで計算し、更新できます。 このプロパティは、Enlighten の Realtime Global Illumination と Baked Global Illumination の両方が シーンで有効になっている場合にのみ使用できます。 |
Indirect Resolution | リアルタイムライトマップに使用する単位あたりのテクセル数を指定します。この値を大きくすると、ライトマップの品質が向上しますが、レンダリング時間が長くなります。 このプロパティは、Realtime Global Illumination を有効にした場合にのみ使用できます。 |
このセクションには、この Lighting Settings アセットを使うシーンの ベイクしたライト と 混合ライト の動作に影響する設定が含まれています。
プロパティ | 機能 | |
---|---|---|
Baked Global Illumination | この設定を有効にすると、Unity は、この Lighting Settings アセットを使用するシーンに対してベイクしたグローバルイルミネーションシステムを有効にします。 この設定を無効にすると、Unity はこの Lighting Settings アセットを使用するシーンのベイクしたグローバルイルミネーションシステムを無効にします。 ベイクしたグローバルイルミネーションシステムが有効になっている場合、Unity はシーンのベイクしたライトをライトマッピングにのみ使用し、混合ライトは Lighting Mode 設定に従って動作します。ベイクしたグローバルイルミネーションシステムが無効になっている場合、Unity はシーンのすべてのベイクしたライトと混合ライトをリアルタイムライトであるかのように動作させます。 |
|
Lighting Mode | この Lighting Settings アセットを使用するシーンのすべての混合ライトに対して Unity が使う Lighting Mode を指定します。 Lighting Mode を変更すると、この Lighting Settings アセット を使用するシーンの ライティングデータをベイクし直す必要があります。 |
|
Baked Indirect | このライティング設定アセットを使用するシーンのすべての混合ライトには、ベイクした間接ライティングモード を使用します。 ベイクした間接ライティングモードでは、混合ライトはリアルタイムの直接ライティンを提供し、Unity は間接光をライトマップとライトプローブにベイクします。リアルタイムシャドウマップは影を提供します。 |
|
Shadowmask | このライティング設定アセットを使用するシーンのすべての混合ライトには、シャドウマスクライティングモード を使用します。 シャドウマスクライティングモードでは、混合ライトはリアルタイムの直接ライティングを提供し、間接光はライトマップとプローブにベイクされます。このモードは、リアルタイムシャドウとベイクしたシャドウを組み合わせます。 |
|
Subtractive | このライティング設定アセットを使用するシーンのすべての混合ライトには、減法ライティングモード を使用します。 減法ライティングモードでは、混合ライトは静的オブジェクトにベイクした直接ライティングと間接ライティングを提供します。動的オブジェクトは、リアルタイムのダイレクトライティングを受け、ディレクショナルライトを使用して影を落とします。 |
プロパティ | 機能 |
---|---|
Lightmap Resolution | ライトマップに使用するユニットごとのテクセル数を指定します。この値を上げると、ライトマップの品質を向上させます。しかし、ライトマップをベイクする時間も長くなります。この値を 2 倍にすると、テクセル数は 4 倍になります (値はライトマップの高さと幅の両方を決めるため)。 Lighting ウィンドウの下部にある統計エリアの Occupied texels 数を参照してください。 |
Lightmap Padding | ベイクしたライトマップで別々の形状を分けるすき間の値 (テクセル単位) を設定します。デフォルトは 2 です。 |
Max Lightmap Size | 個々のゲームオブジェクトのテクスチャの離れた領域を合併する完全なライトマップテクスチャのサイズ (ピクセル) を設定します。デフォルト値は 1024。 |
Lightmap compression | エディターがライトマップに使用する圧縮のレベル。 - None: ライトマップを圧縮しません。 - Low Quality: Normal Quality よりもメモリとストレージの使用量が少 ない場合がありますが、視覚的なアーティファクトが発生する場合があります。 - Normal Quality: メモリ使用量と視覚的品質のバランスが良いレベルです。 - High Quality: Normal Quality より多くのメモリとストレージを必要としますが、より良い視覚的品質を得ることができます。 |
Ambient Occlusion | ベイクしたアンビエントオクルージョン のサーフェスの相対輝度を制御します。する一群の設定が表示されます。このプロパティは、ライトをベイクするのに使用するライトマッパーによって計算された間接ライティングにのみ適用されます。この設定は、デフォルトで有効になっています。アンビエント オクルージョンを有効にすると、3 つの設定 Max Distance、Indirect Contribution、Direct Contribution が表示されます。3 つの設定すべてで、値が高いほど、遮られた領域と完全に照らされた領域の間のコントラストが大きいことを示します。 |
Max Distance | オブジェクトにオクルージョンを適用するかどうかを判断するために、レイを投射するかを決める値を設定します。大きな値を指定するとより長いレイが生成され、ライトマップにより多くの影を作ります。一方、小さい値では短いレイを生成し、オブジェクトが互いに非常に近い場合にのみ影を作ります。0 の値を指定すると、最大距離のない無限に長いレイが投射されます。デフォルト値は 1 です。 |
Indirect Contribution | 最終的なライトマップのオブジェクトからバウンスまたは放出される間接環境光の輝度を 0 から 10 の間で増減します。デフォルト値は 1 です。1 未満の値にすると強度が下り、 1 より大きくすると強度は上がります。 |
Direct Contribution | 直接光の輝度を 0 から 10 の間で増減します。デフォルト値は 0 です。この値が大きいほど、直接光に適用されるコントラストが強くなります。 |
Directional Mode | ライトマップが、オブジェクトのサーフェスの各位置で主要な入ってくるライトに関する情報を持つように設定することが可能です。詳しくは 指向性ライトマップ を参照してください。デフォルトモードは Directional です。 |
Directional | Directional モードでは、主要な入ってくるライトの方向に関する情報を保存するために 2 番目のライトマップを生成します。これによって、ディフューズ法線でマップされたマテリアルをグローバルイルミネーションシステムに使用できます。シェーダーは、レンダリング中に両方のライトマップテクスチャをサンプリングします。その結果、Directional モードでは、追加のライトマップデータ用にNon-directional モードの約 2 倍のビデオメモリを必要とします。追加の指向性テクスチャを生成すると、ベイク処理のパフォーマンスに影響します。 SM2.0 ハードウェアまたは GLES2.0 を使用している場合、指向性ライトマップはデコードできません。 |
Non-directional | Non-directional モードのライトマップには、1 つのテクスチャしか含まれていません。その結果、指向性ライトマップに比べて、必要なビデオメモリとストレージが少なくて済み、シェーダーでのデコードも速くなります。これらの最適化は、視覚的な品質を低下させます。 |
Indirect Intensity | リアルタイムおよびベイクしたライトマップに保存されている間接光の輝度を 0 から 5 の値で設定します。1 を超える値は間接光の強度を増加し、1 未満の値は間接光の強度を減らします。デフォルト値は 1 です。 |
Albedo Boost | サーフェス間でバウンドするライトの量を 1 から 10 の値で設定します。この値を増やすと間接光の計算に使われるアルベド値を白に近づけます。デフォルト値は 1 で、物理的に正確です。 |
Lightmap Parameters | Lightmap Parameters アセットは、ベイクしたグローバルイルミネーションに関連する設定の値を格納します。エディターには、選択可能ないくつかのデフォルトのライトマップパラメーターアセットが用意されていますが、Create New オプションを使用して、独自のライトマップパラメーターファイルを作成することもできます。詳しくは、Lightmap Parameters を参照してください。デフォルト値は、Default-Medium です。オプションは、Default-Medium、Default-HighResolution、Default-LowResolution、Default-VeryLowResolution です。 |
一部の設定は、特定のライトマッパーバックエンドに固有のものです。これらの設定を見るには、該当するライトマッパーのページを参照してください。
ただし、Enlighten のベイクしたグローバルイルミネーションは非推奨となり、デフォルトではユーザーインターフェースに表示されなくなりました。詳細は Enlighten のベイクしたグローバルイルミネーションを使用したライトマッピング を参照してください。
Lighting Settings アセットを Inspector で表示すると、このプロパティは Inspector の上部に表示されます。Lighting Settings アセットを Lighting ウィンドウで表示すると、このプロパティは Lighting ウィンドウの下部、 Generate Lighting ボタンの近くにあります。
プロパティ | 機能 |
---|---|
Auto Generate |
Auto Generate が有効になっている場合、ライティングデータは、シーンに変更を加えるときに自動的に事前計算されます。 このデータには、ベイクしたグローバルイルミネーションシステム用のライトマップ、Enlighten リアルタイムグローバルイルミネーションシステム用のデータ、ライトプローブ、リフレクションプローブが含まれています。 Unity は通常、シーンに変更が加えられてから数秒後にベイクを開始します。Auto Generate が無効になっている場合は、Lighting ウィンドウの Generate Lighting ボタン、または Lightmapping.Bake、Lightmapping.BakeAsync API を使用して、手動でベイクを呼び出す必要があります。 Auto Generate を使用してライティングデータを事前に計算する場合、事前に計算されたライティングデータはプロジェクトのアセットとして保存されないことに注意してください。代わりにメモリに保存され、シーンの一部としてシリアル化されます。ノート: Unity エディターのバージョン 2022.2 以降では、エンティティ パッケージがインストールされている場合に Auto Generate モードを利用できません。これは、Entities パッケージをインストールしたプロジェクトでライティングを生成すると、Unity エディターによってロードしたすべてのサブシーンが開かれ、エディターのパフォーマンスが低下する可能性があることが原因です。 |
LightingSettings