Unreal Engine は、レベル内で様々な 事前計算されたライティング シナリオ (Precomputed Lighting Scenario) を使用することができます。事前計算ライティングの負荷を変えずに、動的ライティングの柔軟性を利用して、単一レベルが複数のライティング設定を格納および表示することができます。 高速パフォーマンス手段を利用した質の高いレンダリングを必要とする VR あるいは建築ビジュアライゼーションでは、事前計算されたライティング シナリオ間での切り替え機能が特に重要です。 本ページでは プロジェクトで事前計算ライティングを使用する方法を説明します。


上の例では、指向性ライト、スカイライト、スカイボックスが Day Scenario という Lighting Scenario レベルに配置されています。街灯用のスポットは、Night Scenario と呼ばれる別の Lighting Scenario レベルに置かれています。
機能の制限事項
事前計算されたライティング シナリオには様々なメリットがあると同時に、デメリットと注意点もあります。次のセクションでは、これらの制約事項および回避策について説明します。
- ゲーム内では、1 度に表示できる Lighting Scenario レベルは 1 つだけです。
- Lighting Scenario レベルが存在する場合、サブレベルのライトマップ データはすべてその中に配置され、日中は DayScenario ライトマップだけがロードされます。その結果、ライトマップはサブレベルからストリーミングされなくなります。
-
サブレベルのライトマップ データは Lighting Scenarios BuiltData パッケージに格納されます。他のサブレベルから反射キャプチャを登録すると、アクティブなライティング シナリオの BuiltData が修正されます。サブレベルを 2 回ロードし、ライティング シナリオの BuiltData を 1 回しかロードしないと、次のようなエラーが発生します。
Error:Reflection capture /Game/Environments/Levels/Your_Level_Name.level_name:PersistentLevel.SphereReflectionCapture_1.NewReflectionComponent uploaded twice without reloading its lighting scenario level.
ライティング シナリオ レベルは、反射キャプチャをアップロードするたびに 1 回ロードする必要があります。
ライティング シナリオの使用方法
Unreal Engine プロジェクトでライティング シナリオ (Lighting Scenario) を使用するには、以下の手順を行います。
-
[Window] > [Levels] から [Levels Manager] を開きます。
-
[Levels Manager] を開いたらサブレベルにある [Levels] メニューを→クリックし、[Lighting Scenario] の [Change to Lighting Scenario] オプションを選択して [Lighting Scenario] レベルに変更します。
Lighting Scenario レベルが可視になると、そのライトマップがワールドに適用されます。
-
サブレベルを右クリックして [Change Streaming Method] から [Blueprint] を (未選択の場合は) 選択して、Level Streaming メソッドが Blueprint に設定されていることを確認してください。
-
次に、プロジェクトに必要な光または スタティックメッシュ をいずれかのライティング レベルに配置します。そして、他のレベルと同じように各レベルのライティングをビルドします。
-
ライティングのビルドが完了したら、Persistent Level の ブループリントを開いて、Load Stream Level ノードを追加し Event Begin Play ノードに接続します。
-
Event Begin Play ノードを Load Stream Level ノードに接続して、ロードしたいレベル名を入力します。また、Make Visible After Load と Should Block on Load の両方をチェックして、新規にロードしたレベルが表示されるか確認してください。
-
[Play] ボタンを押してプロジェクトを起動すると、初回レベル ロード時に Day レベル ライティングが使用されます。Night レベル ライティングを使用する設定も同様です。ただし、レベル名を (日中用のレベルではなくて) 夜用に変更する必要があります。
注意すべき制約事項もありますが、Unreal Engine で事前計算されたライティング シナリオを使うとパフォーマンスの改善やベイクしたライティングの変更機能など、(プロジェクトのニーズに合わせた) メリットがいろいろあります。