ワールドへのフォグの適用は通常、スカイ環境 または 指数関数的高さフォグ を使用したオール オア ナッシングのアプローチです。ただし、ボリュメトリック フォグ を使用している場合は、メッシュおよびマテリアルを使用してローカル バリエーションを作成することができます。
ローカル フォグ ボリューム は、単純化した効率的な方法でフォグのローカル バリエーションをすばやく作成するために使用できる配置可能アクタです。ローカル フォグ ボリュームはボリュメトリック フォグとは異なり、すべてのプラットフォームおよびすべてのスケーラビリティ レベルで機能し、他のフォグ システムやライティング システムと一貫性のあるビジュアルを提供できるため、ローエンドおよびハイエンドのプラットフォームでの使用に最適です。


ローカル フォグ ボリュームの主なユースケースは、負荷が高い別のシステム (ボリュメトリック フォグが有効になっている指数関数的高さフォグの使用など) を必要とせずにフォグのバリエーションを作成することです。そのことを考慮に入れると、ローカル フォグ ボリュームを他のボリュメトリック要素と併用する場合のコンポジションの順序は次のようになります。
- スカイ環境空気遠近法
- 指数関数的高さフォグ
- その他のローカル フォグ ボリューム
- ボリュメトリック フォグ (有効になっている場合)
ローカル フォグ ボリュームを使用する
ローカル フォグ ボリュームはゲーム ワールド内のどこにでも配置できます。放射状に次第に消えていくフォグと組み合わされた指数関数的高さフォグの混在を表す関与媒質の球体です。それぞれのローカル フォグ ボリュームは独立して、シーンに適合するように平行移動、回転、および均一にスケーリングできます。
ローカル フォグ ボリュームをシーンに追加するには、ビジュアルエフェクト カテゴリにある [Create (作成)] メニューを使用するか、[Place Actors (アクタを配置)] パネルを使用します。

ローカル フォグ ボリュームがシーンに追加され、スケーリング、平行移動、回転されます。均一でないスケーリングはサポートされていません。
ボリュメトリック フォグ付きのローカル フォグ ボリュームを使用する
ローカル フォグ ボリュームを ボリュメトリック フォグ と併用できます。ボリュメトリック フォグは、これらのボリューム内にボリュメトリック シャドウイングおよびライティングを提供しますが、パフォーマンス コストが高くなります。
ボリュメトリック フォグをローカル フォグ ボリュームと併用するには、指数関数的高さフォグ の詳細パネルにある Volumetric Fog プロパティのチェックボックスをオンにします。ボリュメトリック フォグありとなしのシーンの例を以下に示します。
ローカル フォグ ボリュームのみ | ボリュメトリック フォグが有効になっているローカル フォグ ボリューム |
ローカル フォグ ボリュームのプロパティとプロジェクト設定
ローカル フォグ ボリュームには以下のプロパティがあります。

プロパティ | 説明 |
---|---|
Radial Fog Distribution (放射状フォグの分布) | |
Radial Fog Density | 放射状フォグの密度は、球体の中心でのその係数を表します。ボリュームの最終的な外観は、ソフト エッジと高さフォグの両方を実現できるように、放射状フォグと高さフォグの両方の「Coverage (カバレッジ) = 1 - Transmittance (透過率)」を組み合わせることによって決まります。 |
Height Fog Distribution (高さフォグの分布) | |
Height Fog Density | 放射状フォグの密度は、単位球体内の高さ 0 でのその減衰係数を表します。ボリュームの最終的な外観は、ソフト エッジと高さフォグの両方を実現できるように、放射状フォグと高さフォグの両方の「Coverage (カバレッジ) = 1 - Transmittance (透過率)」を組み合わせることによって決まります。 |
Height Fog Falloff | 高くなるにつれて密度がどのように低くなるかを制御します。値が小さいほど、目に見える遷移が大きくなります。地平線でビジュアル アーティファクトが見える最低値は 1.0 です。 |
Height Fog Offset | アクタの Z 位置を基準とした高さオフセット。 |
Shading (シェーディング) | |
Scattering Distribution | このフォグ ボリューム内の散乱を特徴付けるフェーズ「G」パラメータを制御します。 |
Fog Albedo | このフォグ ボリュームのアルベド カラーを設定します。アルベドは、ライティングが適用される前のベース カラーです。 |
Fog Emissive | このフォグ ボリュームのエミッシブ カラーを制御します。 |
Sorting (ソート) | |
Fog Sort Priority | 優先度は、距離によるソートをオーバーライドする手段として使用できます。値が小さいほど、ボリュームが遠くにあると見なされます。たとえば、優先度が低いものは、優先度が高いボリュームの後ろに描画されます。 この設定は、指数関数的高さフォグの設定でボリュメトリック フォグが有効になっている場合は使用されません。 |
ローカル フォグ ボリュームの以下のプロパティが、[Project Settings (プロジェクト設定)] の [Engine (エンジン)] > [Rendering (レンダリング)] セクションにあります。

プロジェクト設定 | 説明 |
---|---|
Translucency (透過処理) | |
Local Fog Volume Apply on Translucent | 半透明の要素でのローカル フォグ ボリュームのサンプリングを有効にします。 |
Optimizations (最適化) | |
Support Local Fog Volumes | ローカル フォグ ボリューム コンポーネントを、フォワード シェーディングで半透明および不透明のサーフェスに適用できるため、透明なサーフェス (および頂点ごとの評価によるモバイル上のすべてのサーフェス) に空気遠近法を適用するためのリソースをバインドする必要があります。r.SupportLocalFogVolumes が true である必要があります。 |
フォグのシェーディング
シェーディング のプロパティを使用して、アルベド カラー、エミッシブ カラー、散乱分布によりフォグのアーティスティックな外見を定義できます。
Fog Albedo は、太陽や空などの光源と相互作用する場合のフォグの色を定義します。カラー ピッカーを使用してフォグの色を選択できます。
アルベド カラー:白 (デフォルト) | アルベド カラー:緑 | アルベド カラー:茶色 |
Fog Emissive は、フォグによって放出される光の色を定義します。放出される光はローカル フォグ ボリュームと同じ密度に従います。カラー ピッカーを使用してフォグのエミッシブ カラーを選択できます。
エミッシブ カラー:なし (デフォルト) | エミッシブ カラー:緑 | エミッシブ カラー:赤 |
Scattering Distribution は、入射光がさまざまな方向に散乱する量を制御します。値が 0 であれば、光はすべての方向に均等に散乱し、値が 1 に近づくと、主に光の方向に散乱します。






スライダーをドラッグすると、ローカル フォグの散乱分布を 0、0.25、0.5、0.75、0.98、0.99 と小さい値から大きい値に変えて確認できます
ボリュメトリック フォグのライト シャフトを使用するには、ボリュメトリック フォグを有効にして、散乱分布を 0 に近づける必要があります。デフォルトの散乱分布である 0.2 で始めることをお勧めします。
フォグの分布
フォグの分布では、密度、フォールオフ、高さオフセットのプロパティにより、フォグ ボリュームを通過する光の量を制御します。これらのプロパティは、指数関数的高さフォグ コンポーネントのプロパティと似ています。
Radial Fog Density および Height Fog Density は、ソフト エッジと高さフォグの両方を実現できるように、ボリュームの外観を制御します。

ローカル フォグ ボリュームの例。(左から右へ) 放射状の密度があるフォグ、高さの密度があるフォグ、放射状の密度と高さの密度が組み合わされているフォグ。
ローカル フォグ ボリュームのフェーズ関数は、ボリューム内の光の均一性を制御します。ライティングは高速解析積分を使用して評価されるため、シャドウおよびライト関数は無視されます。
Height Fog Falloff は、高くなるにつれてフォグの密度がどのように低くなるかを制御します。値が小さいほど、目に見える遷移が大きくなり、値が大きいほど、遷移が小さくなります。
Height Fog Falloff:500 | Height Fog Falloff:1000 (デフォルト) | Height Fog Falloff:2500 |
Height Fog Offset は、アクタの Z (上向き) 位置を基準としてローカル フォグ ボリューム内で高さフォグの中心を動かします。オフセットが小さいと、フォグが放射状ボリューム内で下に動き、オフセットが大きいと、垂直に動きます。
Height Fog Offset:-0.12 | Height Fog Offset:0 (デフォルト) | Height Fog Offset:0.12 |
フォグのソート優先度
ローカル フォグ ボリュームは、その中心からカメラ ビューまでの距離に応じてスクリーンに合成されます。そのため、オーバーラップが生じた場合にローカル フォグ ボリュームに優先度を適用することで、そのソート順を制御できます。指数関数的高さフォグの設定でボリュメトリック フォグが有効になっている場合、ローカル フォグ ボリュームはボリュメトリック表現にボクセル化されます。ローカル フォグ ボリュームはソートされず、代わりに、オーバーラップする関与媒質としてボクセル化されます。ボリュメトリック フォグに対してシャドウ キャスティングが有効になっている場合も、ライティングによってフォグが生じることがあります。
オーバーラップしているローカル フォグ ボリュームの、ボリュメトリック フォグ無効と有効の 2 つの例を以下に示しています。
カラー合成が異なる 2 つのローカル フォグ ボリューム | ボリュメトリック フォグが有効になっていてカラー合成が異なる 2 つのローカル フォグ ボリューム |
ボリュメトリック フォグは関与媒質としてボクセル化され、ソートされていないため、外観が異なるビジュアルになることがあります。たとえば、散乱分布 (フェーズ関数) がボリュメトリック フォグの散乱分布と異なる場合は、異なる外観になる可能性があります。
ボリュメトリック フォグが有効になっている場合は、フォグがボクセル化されて適切にソートされます。ただし、ローカル フォグ ボリュームがボリュメトリック フォグなしで使用されている場合は、Fog Sort Priority 設定を使用して、距離によるソートをオーバーライドできます。値が小さいほど、ボリュームが遠くにあると見なされて、他のものより後ろに描画されます。値が大きいほど、ボリュームがカメラに近いと見なされて、他のものより前に描画されます。
オーバーラップするローカル フォグ ボリュームは複数使用できるため、大きい方の環境ローカル フォグが常に、輝度が高い小さい方の環境ローカル フォグの後ろになるようにする場合は、ソートが役に立ちます。そのような状況では、ボリュメトリック フォグが有効になっていなくても、クローズアップして見ると、次の例のシーンのようにローカル フォグは常にうまく混ざります。
地面レベルから見た、オーバーラップしている 2 つのローカル フォグ ボリューム。 | 上から見た、オーバーラップしている 2 つのローカル フォグ ボリューム。 |
パフォーマンスおよびデバッグ
ローカル フォグ ボリュームに関連してパフォーマンスを向上させコンテンツをデバッグしやすくするための推奨事項を以下に示します。
- ローカル フォグ ボリュームはスクリーン タイル (スクリーンがタイルと呼ばれる小さい正方形に分割されている) を使用してカリングされ、そのコストは使用されるスクリーン上の領域の範囲と関係があるため、シーンに付加される動的ライトと同程度のコストになります。
- コンソール コマンド
r.LocalFogVolume.TileDebug
を使用して、コストの範囲をスクリーン空間に視覚化することができます。- 1 であれば、ローカル フォグ ボリュームの数がタイルごとにカラーとして表示されます。
- 2 であれば、ローカル フォグ ボリュームの数がタイルごとにカラーとして表示され、ピクセル破棄/クリッピングの効果も表示されます。
- コンソール コマンド
- ローエンドのハードウェアでは、複数のボリュームが互いにオーバーラップしないように制限することをお勧めします。そうすることで、カメラがボリューム内に完全に収まっている場合に、ピクセルごとに処理するボリュームの数が減ります。
ローカル フォグ ボリュームのタイルのデバッグ
コンソール コマンド r.LocalFogVolume.TileDebug
を使用して、ローカル フォグ ボリュームのスクリーン タイルごとのカリングを視覚化できます。
次のいずれかの値を使用します。
- 1 であれば、ローカル フォグ ボリュームの数がスクリーン タイルごとにカラーとして表示されます。
- 2 であれば、ローカル フォグ ボリュームの数がスクリーン タイルごとにカラーとして表示され、ピクセル破棄/クリッピングの効果も表示されます。
以下のシーンの例では、複数のローカル フォグ ボリュームのいくつかがすぐ近くにあり、いくつかがオーバーラップしています。

上記のシーンの例で、タイルのデバッグ表示が有効になっている場合にどのように見えるかを以下に示しています。
r.LocalFogVolume.TileDebug 1 | r.LocalFogVolume.TileDebug 2 |
タイルのデバッグ表示は、ボリュメトリック フォグが有効になっている場合は機能しません。
便利なコンソール変数
コンソール変数 | 説明 | デフォルト値 |
---|---|---|
r.LocalFogVolume.ApplyOnTranslucent |
半透明の要素でのローカル フォグ ボリュームのサンプリングを有効にするプロジェクト設定。半透明の要素にローカル フォグ ボリュームを適用するには、これを 1 に設定します。 | 0 |
r.LocalFogVolume.RenderIntoVolumetricFog |
ローカル フォグ ボリュームをボリュメトリック フォグのレンダリング システムにボクセル化するかどうかを設定します。そうでなければ、ローカル フォグ ボリュームは分離されたままになります。これはデフォルトで有効になっています。 | 1 |
r.LocalFogVolume.TilePixelSize |
ローカル フォグ ボリュームがカリングされるポイントでの、スクリーン上のタイルのピクセル サイズ。 | 128 |
r.LocalFogVolume.TileMaxInstanceCount |
ビューごとに (および、一貫性のためにタイルごとに) 考慮されるローカル フォグ ボリュームの最大数。 | 32 |
r.LocalFogVolume.TileDebug |
タイル処理されたレンダリング データの複雑度をデバッグします。0 であれば、デバッグは無効になっています。1 であれば、タイルごとの LFV 数がカラーで表示されます。 2 であれば、1 に加えて、ピクセル破棄/クリッピングの効果も表示されます。 | 0 |
r.LocalFogVolume.GlobalStartDistance |
ローカル フォグ ボリュームが現れ始める、カメラからの開始距離 (センチメートル単位) を設定します。 | 2000 |
r.LocalFogVolume.HalfResolution |
ローカル フォグ ボリュームを半分の解像度でレンダリングし、後でフル解像度にアップサンプリングします。これは、有効になっている場合、モバイル レンダリング パスに対してのみ機能します。 | 0 |
r.LocalFogVolume.MaxDensityIntoVolumetricFog |
LocalFogVolume の高さフォグ モードは、下部で指数関数的に濃くなるようにできます。密度が高いために、その後のボリュメトリック フォグの経時的再投影で漏れ出すことがあります。密度をクランプすると、そのようなビジュアル アーティファクトを制御することができます。 | 0.01 |