Version: Unity 6.0 (6000.0)
言語 : 日本語
ランタイムにライティングを変更する方法を選択
スカイオクルージョンによるランタイムの空の光の更新

ライティングシナリオによるさまざまなライティング設定のベイク

ライティングシナリオには、シーンまたはベイクセットのベイクしたライティングデータがあります。異なるライティング設定を異なるライティングシナリオアセットにベイクし、ユニバーサルレンダーパイプライン (URP) がランタイムにどれを使用するかを変更できます。

例えば、ライトがオンのライティングシナリオ 1 つと、ライトがオフの別のライティングシナリオを作成できます。ランタイムにプレイヤーがライトをオフにしたときに、2 番目のライティングシナリオを有効にできます。

ライティングシナリオの有効化

ライティングシナリオを使用するには、アクティブな URP アセット に移動し、Lighting > Light Probe Lighting > Lighting Scenarios を有効にします。

ライティングシナリオの追加

新しいライティングシナリオを作成してベイク結果を内部に保存するには、以下の操作を行います。

  1. Lighting ウィンドウで Adaptive Probe Volumes パネル を開きます。
  2. Lighting Scenarios セクションで、Add (+) ボタンを選択してライティングシナリオを追加します。

ライティングシナリオへのベイク

ライティングシナリオにベイクするには、以下のステップに従います。

  1. Lighting Scenarios セクションで、ライティングシナリオを選択してアクティブにします。
  2. Generate Lighting を選択します。URP はベイク結果をアクティブなライティングシナリオに保存します。

ProbeReferenceVolume API を使用して、ランタイムに URP が使用するライティングシナリオを設定できます。

ランタイムにアクティブなライティングシナリオを変更すると、URP はライトプローブの間接ライティングデータのみを変更します。スクリプトを使用して、ジオメトリの移動、ライトの変更、直接ライティングの変更をさらに行う必要があるかもしれません。

ライティングシナリオ間のブレンド

ライティングシナリオ間のブレンドを有効にするには、アクティブな URP アセット に移動し、Light Probe Lighting > Scenario Blending を有効にします。

BlendLightingScenario API を使用して、ランタイムにライティングシナリオをブレンドできます。

例えば、以下のスクリプトは以下の処理を行います。

  1. scenario01 をアクティブなライティングシナリオとして設定します。
  2. フレームごとにブレンドするセル数を設定します。これは最適化に役立ちます。
  3. 適応型プローブボリュームのブレンド係数をフレームごとに更新して、scenario01scenario02 をブレンドします。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class BlendLightingScenarios : MonoBehaviour
{
    UnityEngine.Rendering.ProbeReferenceVolume probeRefVolume;
    public string scenario01 = "Scenario01Name";
    public string scenario02 = "Scenario02Name";
    [Range(0, 1)] public float blendingFactor = 0.5f;
    [Min(1)] public int numberOfCellsBlendedPerFrame = 10;

    void Start()
    {
        probeRefVolume = UnityEngine.Rendering.ProbeReferenceVolume.instance;
        probeRefVolume.lightingScenario = scenario01;
        probeRefVolume.numberOfCellsBlendedPerFrame = numberOfCellsBlendedPerFrame;
    }

    void Update()
    {
        probeRefVolume.BlendLightingScenario(scenario02, blendingFactor);
    }
}

ライティングシナリオ間のブレンドをプレビューする

レンダリングデバッガー を使用して、ライティングシナリオ間の遷移をプレビューできます。以下の手順に従ってください。

  1. Window > Analysis > Rendering Debugger に移動して、レンダリングデバッガーを開きます。
  2. Scenario Blend Target をライティングシナリオに設定します。
  3. Scenario Blending Factor を使用して、シーンビューでライティングシナリオ間のブレンドの効果を確認します。

さまざまなライティングシナリオでライトプローブを同じに維持する

ベイク間で静的ジオメトリを移動すると、ライトプローブの位置が異なる場合があります。これは、ライトプローブの数と位置はブレンドする各ライティングシナリオで同じでなければならないため、ライティングシナリオ間でブレンドすることはできないことを意味しています。

これを回避するには、ベイク時に URP がプローブ位置を再計算しないようにします。以下の手順に従ってください。

  1. 1 つのライティングシナリオをベイクします。
  2. 別のライティングシナリオをアクティブなライティングシナリオとして設定します。
  3. シーンのライティングやジオメトリを変更します。
  4. Probe Placement セクションで、Probe PositionsDon’t Recalculate に設定します。
  5. Generate Lighting を選択して、間接ライティングのみを再計算し、プローブ配置の計算をスキップします。

追加リソース

ランタイムにライティングを変更する方法を選択
スカイオクルージョンによるランタイムの空の光の更新