固定ライトの可動性

ランタイム時にプロパティの一部を変更できる、部分的に動的な事前計算ライティングです。

[Mobility (可動性)] が [Stationary (ステイショナリー)] に設定されているライトは、位置を変更することはできませんが、明るさや色など、他の方法で変更することができます。これが、ゲームプレイ時には一切変更できない 静的ライト との主な違いです。

選択可能な 3 つのライトの可動性のうち、固定ライトは最も品質が高く、可変性とパフォーマンス上の負荷に関しては 2 番目です。

固定ライトは、動的ライティングと静的ライティングの両方を使用して結果を生成し、間接ライティングと間接シャドウイングは、レベルのライトマップに格納されます。直接シャドウはシャドウ マップ内に格納されますこれらのライトはディスタンス フィールド シャドウを使用します。つまり、ライト オブジェクトのライトマップ解像度がかなり低い場合でも、シャドウを鮮明に保つことができます。

固定直接ライティング

固定ライトは、動的直接ライティングと静的間接ライティングの両方を使用して結果を生成します。間接ライティングとシャドウイングはライトマップに格納され、直接シャドウイングはシャドウ マップに格納されます。固定ライトは、ディファード シェーディングを使用して動的にレンダリングされるため、ランタイム時に明るさや色を変更することができ、 ライト関数 および IES プロファイル も同様にサポートしています。

また、 可動ライト と同様に高品質な解析的スペキュラも備えています。

固定直接ライトと移動可能なオブジェクト

静的直接ライトと移動可能なオブジェクト

固定ライト シャドウイング

4 つ以下の固定ライトのみが、互いに、またはレベル内の単一のジオメトリに重なることができます。つまり、場合によっては、レベルの複数の部分で重なる固定ライトの数が少なくなります。シャドウイングはオーバーラップ テストに影響することがないため、ディレクショナル ライトでは、通常、地下や他のジオメトリで非表示になっている領域も含めて、ディレクショナル ライトが配置されているレベル全体からのチャンネルが必要です。チャンネルの限界に達すると、動的シャドウ (またはシーン全体のシャドウ) のみが使用され、パフォーマンスにかなりの負荷がかかります。

レベル内で任意の時点で最大 4 つの固定ライトが重なると、ライト アイコンが、オーバーラップに関する制限が解消されるまで、この制限に違反しているライトに 赤い X の付いた状態に変わります。オーバーラップが解消されるまで、違反しているライトを赤色でハイライトする 固定ライト オーバーラップ ビジュアライゼーション モードがあります。

レベル エディタの [View Mode (表示モード)] > [Optimization Viewmodes] ドロップダウンから [Stationary Light Overlap (固定ライト オーバーラップ)] ビジュアライゼーションを選択して、有効にします。

level editor menu stationary light overlap visualization

以下の例では、4 つを上回るライトが重なった場合、どのように表示されるかを示しています。

[INLCUDE:#normalscene]

[INLCUDE:#therearefourlights]

[INLCUDE:#therearefivelights]

通常のシーン ビュー

4 つの重なり合う固定ライト

非常に多くの重なり合う固定ライト

不透明のマテリアルに対する固定間接ライティング

Lightmass は、ライティングのビルド プロセスで、静的オブジェクトに対する固定ライトのディスタンス フィールド シャドウ マップを生成します。ディスタンス フィールド シャドウ マップは、低解像度でも正確なシャドウを正確に遷移させることができ、ランタイム時の負荷がほとんどかかりません。たとえば、ライトマップでは、[Mobility] が [Static (スタティック)] に設定され、静的光源または固定光源からの間接ライティングを持つすべてのメッシュに対して、一意にアンラップされた UV が必要です。

DistanceFieldShadows.png

スタティック メッシュ アクタの不透明なサーフェスに対する正確なシャドウイング。

ライティングは、固定光源または静的光源からのシャドウを表示するようにビルドする必要があります。そのようにビルドしない場合は、動的シャドウが使用されます。

半透明のマテリアルに対する固定間接ライティング

Lightmass は、レベル内のスタティック ジオメトリからシャドウ深度マップを事前に計算するため、半透明では、固定ライトを使用して低い負荷で生成されたシャドウイングを受け取ります。そのシャドウ深度が、ランタイム時に半透明に適用されます。この形式のシャドウイングはかなり粗く、メートル単位でしかシャドウイングがキャプチャされません。

影のない透過処理 Unshadowed translucency

直接ライトからの静的シャドウイング | を受けた透過処理

静的シャドウ深度マップの解像度は、「BaseLightmass.ini」コンフィギュレーション ファイルの StaticShadowDepthMapTransitionSampleDistanceX および StaticShadowDepthMapTransitionSampleDistanceY で制御されます。デフォルト値は 100、つまり、1 メートルあたり 1 テクセルです。

固定ライトの動的シャドウイング

[Mobility] が [Movable (ムーバブル)] に設定されているスタティック メッシュや、スケルタル メッシュなどの動的オブジェクトは、シャドウ マップからワールドに組み込む必要があります。これは、オブジェクトごとのシャドウで実現されます。各可動オブジェクトは、特定の固定ライトから次の 2 つの動的シャドウを作成します。「可動オブジェクト」に対する静的なワールドを処理するためのシャドウ、および「ワールドにキャストされてい」る可動オブジェクトを処理するシャドウです。

この設定では、固定ライトのシャドウイングの負荷のみが、シャドウイングが影響する可動オブジェクトから生じます。これは、存在する可動オブジェクトの数に応じて、負荷がほとんどかからなかったり、大きな負荷がかかったりすることを意味します。十分な数の可動オブジェクトが影響を受ける場合、実際には、[Mobility] が [Movable] に設定されているライトを使用する方が効率的です。

以下のサンプル シーンでは、球体の [Mobility] が [Movable] に設定され、シーンのその他のジオメトリは、[Static] に設定されています。

以下の例では、固定ディレクショナル ライトを使用してシーンをライティングしています。球体の [Mobility] は [Movable] に設定され、シーンのその他の要素は [Static] に設定されています。シーンではライティングはビルドされません。各可動球体のオブジェクトごとのシャドウ錐台は、背後のオブジェクトからシャドウを受け取り、地上のシャドウと融合するように独自のシャドウをキャストし、シーンとシームレスに統合されます。

DynamicObjectShadowFrustums.png

可動コンポーネントで使用されるオブジェクトごとのシャドウは、オブジェクトの境界にシャドウ マップを適用するため、オブジェクトの境界が正確である必要があります。スケルタル メッシュでは、これは物理アセットを持つ必要があることを意味します。パーティクル システムでは、固定されたバウンディング ボックスは、生成されるすべてのパーティクルを含むのに十分な大きさである必要があります。

固定ディレクショナル ライトの動的シャドウイング

固定ディレクショナル ライトは特殊で、事前計算された静的シャドウイングと同時に、カスケード シャドウ マップ によるシーン全体のシャドウをサポートしています。これは、アニメートするフォリッジがたくさんあるシーンで、プレイヤーの周りに動くシャドウを加えたいものの、大きなビュー範囲をカバーするカスケード シャドウ マップのあるレベルをたくさん持つことで負荷を増大させたくない場合に役立ちます。

固定ディレクショナル ライトは、指定された範囲内のプレーヤー付近の直接シャドウイングでカスケード シャドウ マップと 動的シャドウ ディスタンス固定ライト を併用します。この距離を超えるシャドウは、ライトマップに格納された事前計算された静的シャドウにフェードインします。デフォルトでは、すべての固定ディレクショナル ライトの最初の値 0 で、この場合、動的シャドウイングは行われません。

シーンに多くの可動オブジェクトがあるものの、より小さい動的シャドウ距離を使用したい場合にパフォーマンスを節約するには、[Inset Shadows for Movable Objects (可動オブジェクトにシャドウを挿入する)] を有効にします。これにより、可動オブジェクトがカスケード シャドウ マップの範囲外にある場合でもシャドウを持つことができ、シーンに多くの可動オブジェクトがある場合はシャドウイングにかかる負荷を大幅に削減できます。

固定ライトの間接シャドウイング

固定ライトは、静的ライトと同様に、レベルのライティングをビルドするときに、その間接ライティングをライトマップに格納します。間接ライティングは、ライトの [Intensity (強度)][Light Color (ライトの色)] を変更できることを除いて、変更するためには、ライティングを無効にして再ビルドする必要があります。ただし、これはベイクされたシャドウの強度や色には影響しません。

ポストプロセス ボリューム では、[Global Illumination (グローバル イルミネーション)] カテゴリの Indirect Lighting Color プロパティおよび Indirect Lighting Intensity プロパティを使用して、間接シャドウの強度および色を変更可能にすることができます。

固定ライトにエリアシャドウを使用

固定ライトの事前計算されたシャドウマップにエリア シャドウを使用するかどうか。 エリア シャドウはシャドウ キャスターから離れるほどソフトになりますが、シャドウが鮮明な場合は、同様の品質にするためにライトマップの解像度を高くする必要があります。

デフォルトでは、静的ライトは、ライティングをビルドするときに、エリアシャドウ (サーフェスの接触面付近では鮮明で濃いシャドウ、サーフェスが離れているほど柔らかいシャドウ) を自動的に使用します。固定ライトの場合、Use Area Shadows for Stationary Lights プロパティにより、このライトの影響を受けるシーン内の静的ジオメトリでソフト エリア シャドウイングを使用することができます。

このプロパティは、ライトの [Details] パネルの [Lightmass (ライトマス)] セクションで、固定ライトに対して有効になります。

静的ジオメトリに対する | デフォルトの固定シャドウ

静的ジオメトリに対する | エリアシャドウを有効

Use Area Shadows for Stationary Lights は、固定ライトに対してのみ使用可能で、優れた結果を得るには、より高いライトマップ解像度が必要です。

このページは Unreal Engine の前のバージョン用です。現在リリースされている Unreal Engine 5.1 に対して更新は行われていません。
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル