UE4勉強会 in 大阪
Volumetric Fogで
空間を演出する!
Slideshare用壁紙
Slideshare用壁紙
自己紹介
● Twitter: com04
● ゲームプログラマー
● 最近はマテリアルとエンジン弄り
● マーケットプレイスに出品しました
○ ComMaterialTools - マテリアル検索の便利ツール
■ https://www.unrealengine.com/marketplace/commaterialtools
4
自己紹介
● 講演したスライド
● マテリアル基礎・初級: https://www.slideshare.net/com044/ue4-80326829
● UE4でのチーム製作: https://www.slideshare.net/com044/4ue4-in-ue4
● アニメーション基礎: https://www.slideshare.net/com044/ue4-in-91056422
● もっとアニメーションBP: https://www.slideshare.net/com044/ue4-in-bp
● UE4 LODs for Optimization -Beginner-:
https://www.slideshare.net/com044/lods-for-optimization-beginner
● エンジンの内部挙動について: https://www.slideshare.net/com044/ue4-in
5
もくじ
● VolumetricFogとは
○ 通常のフォグとの違い
● 設定方法
● ライト側
● パーティクル+マテリアルでボリューム
● 処理負荷
● 参考
version: UE4.21.0
もくじ
● VolumetricFogとは
○ 通常のフォグとの違い
● 設定方法
● ライト側
● パーティクル+マテリアルでボリューム
● 処理負荷
● 参考
VolumetricFogとは
カメラ錐台の各ポイントにおける散乱媒体の密度とライティ
ングを計算し、 その密度とライト数を調整してフォグに効果
を与えます。
(公式ドキュメントより)
VolumetricFogとは
そもそもフォグとは
VolumetricFogとは
カメラからの距離やシーンの高さを基準に色を付ける。
空気感、距離感、雰囲気を演出
VolumetricFogとは
● VolumetricFogとは
○ 通常のフォグとの違い
● 設定方法
● ライト側
● パーティクル+マテリアルでボリューム
● 処理負荷
● 参考
通常のフォグ
ボリューメトリックフォグ
VolumetricFogとは - 通常のフォグとの違い
ライトから影響を考慮されたフォグ
通常のフォグ
ボリューメトリックフォグ
VolumetricFogとは - 通常のフォグとの違い
ライトからの遮蔽も考慮できる
VolumetricFogとは - 通常のフォグとの違い
ライトからの遮蔽も考慮できる
ライトは左上から照
らしている
建物に遮られている所
はフォグが弱くなって
いる
VolumetricFogとは - 通常のフォグとの違い
建物で遮られるので、室内だと……
フォグなし
通常のフォグ
ボリューメトリックフォグ
VolumetricFogとは - 通常のフォグとの違い
窓からの射し込む光も表現できる
もくじ
● VolumetricFogとは
○ 通常のフォグとの違い
● 設定方法
● ライト側
● パーティクル+マテリアルでボリューム
● 処理負荷
● 参考
設定方法
「指数関数的ハイトフォグ (Exponential Height Fog)」を
シーンに配置します
設定方法
「指数関数的ハイトフォグ」は高さ基準でフォグを付けるア
クターです
設定方法
設定パラメーター
● フォグ密度
○ 距離でフォグが濃くなっていく際の密度
■ 小さいと徐々にフォグが掛かっていく
● Fog Inscattering Color
● フォグ高さフォールオフ
○ 高さ基準での補間
■ 上げるとクッキリ境目が出来る
■ 下げると滑らかになる
設定方法
設定パラメーター
● Fog Max Opacity
○ フォグの最大の不透明度
■ 一番フォグが濃い場所でも、この値以上にフォグが掛からない
● Start Distance
○ フォグ掛かり始めるカメラからの距離
● フォグカットオフ距離
○ カメラからこの距離以上にはフォグが掛からない
■ 遠景には掛けないとかの時に
設定方法
フォグが掛かる基準の高さは、「指数関数的ハイトフォグ」
アクターのZ軸座標になります
設定方法
設定方法
ここまでは通常のフォグ設定
設定方法
「指数関数的ハイトフォグ」の設定パラメーターの
「Volumetric Fog」チェックボックスをONにします
● ボリューメトリックフォグを使う設定はこれだけです
設定方法
設定パラメーター
● Scattering Distribution
○ ライトの拡散?
● Albedo
○ ボリューメトリックフォグの色
● Emissive
○ フォグ全体の色味
● Extinction Scale
○ ハイトフォグをスケールしてボリューメトリックフォグに適用す
るスケール値(多分)
設定方法
設定パラメーター
● View Distance
○ ボリューメトリックフォグが有効な距離。これ以上は通常のフォ
グになる
ボリューメトリックフォグ
通常のフォグ
設定方法
設定パラメーター
● Override Light Colors with Fog Inscattering Colors
○ ボリューメトリックフォグの色をハイトフォグの環境と合わせる
■ AlbedoやEmissiveは有効
もくじ
● VolumetricFogとは
○ 通常のフォグとの違い
● 設定方法
● ライト側
● パーティクル+マテリアルでボリューム
● 処理負荷
● 参考
ライト側
ライト側にもボリューメトリックフォグへの影響設定がありま
す
ライト側
ライトの設定にある「Volumetric Scattering Intensity」
● ボリューメトリックフォグへの、このライトの影響強さ
ライト側
Volumetric Scattering Intensity
0.0 (=影響しない
ライト側
Volumetric Scattering Intensity
10.0 (かなり強め
ライト側
OFF
ライト側
ON
ライト側
ライト設定にある「Cast Volumetric Shadow」設定
● このライトがボリューメトリックフォグに影響を与える際
に、遮蔽物を考慮するか
○ ディレクショナルライトはデフォルトON
○ スポットライト、ポイントライトはデフォルトOFF
ライト側
OFF
ライト側
ON
ライト側
ON
Cubeにライトが遮蔽さ
れてフォグが消えてい
る
もくじ
● VolumetricFogとは
○ 通常のフォグとの違い
● 設定方法
● ライト側
● パーティクル+マテリアルでボリューム
● 処理負荷
● 参考
パーティクル+マテリアルでボリューム
マテリアルに設定して、パーティクルからボリューメトリック
フォグに影響を与える事も出来ます
パーティクル+マテリアルでボリューム
マテリアルのSurfaceDomainを「Volume」に
Blend Modeを「Additive」に
パーティクル+マテリアルでボリューム
Albedo、エミッシブカラーはそれぞれボリューメトリックフォ
グの同名に影響します
ExtinctionはOpacityと同じような感じです
パーティクル+マテリアルでボリューム
パーティクルに先程のマテリアルを設定
パーティクル+マテリアルでボリューム
あとはシーンに配置するだけです
パーティクル+マテリアルでボリューム
ボリュームに影響を与えているだけですので、「指数関数
的ハイトフォグ」の設定パラメーターの「Volumetric Fog」
チェックボックスをOFFにすると消えます
パーティクル+マテリアルでボリューム
幻想的な演出や、蛍のような演出
パーティクル+マテリアルでボリューム
エリアの一部分だけフォグを変える事も
パーティクル+マテリアルでボリューム
パーティクルが使えるので、「Bone/Socket Location」や
「Skel Vert/Surf Location」モジュールを使うことで
SkeletalMeshに合わせて出すことも
パーティクル+マテリアルでボリューム
マテリアルで実装出来るので、マテリアルアニメーション等
ロジックと併用も出来る
パーティクル+マテリアルでボリューム
注意点
パーティクル+マテリアルでボリューム
メッシュには適用できません
● メッシュに設定してシーンに配置しても駄目です
○ シーンに配置してもボックス上に
パーティクル+マテリアルでボリューム
メッシュパーティクルでも駄目です
もくじ
● VolumetricFogとは
○ 通常のフォグとの違い
● 設定方法
● ライト側
● パーティクル+マテリアルでボリューム
● 処理負荷
● 参考
処理負荷
ボリューメトリックフォグの負荷。(公式より)
スケーラビリティ設定のシャドウが
● 高: PlayStation 4 で 1 ミリ秒
● Epic: Nvidia 970 GTX で 3 ミリ秒
● 中以下: 使用できない
処理負荷
スケーラビリティで操作されるコンソールコマンド設定
● r.VolumetricFog
○ ボリューメトリックフォグを使用するか
● r.VolumetricFog.GridPixelSize
○ ボリュームのXY平面のセル1つのサイズ。下げると高品質、高負荷
● r.VolumetricFog.GridSizeZ
○ Z軸で使用するセルの数。上げると高品質、高負荷
● r.VolumetricFog.HistoryMissSupersampleCount
○ パンやカメラカットでのノイズ減らすけど幾分かのコスト。[1~16]
処理負荷
● ポイントライトとスポットライトの [Cast Volumetric
Shadow] を有効にすると、シャドウがない場合と比べて
約 3 倍の負荷がかかります。
処理負荷
● Volume ドメインを使っているパーティクルは、3D オー
バードロー と命令数によってはかなり高い GPU 負荷
を追加する場合があります
もくじ
● VolumetricFogとは
○ 通常のフォグとの違い
● 設定方法
● ライト側
● パーティクル+マテリアルでボリューム
● 処理負荷
● 参考
参考
● 公式ドキュメント
○ Volumetric Fog
■ http://api.unrealengine.com/JPN/Engine/Rendering/LightingAndSh
adows/VolumetricFog/
○ 指数関数的高さフォグ(Exponential Height Fog)のユーザー
ガイド
■ http://api.unrealengine.com/JPN/Engine/Actors/FogEffects/Height
Fog/index.html
● Volumetric Fog and Lighting in Unreal Engine 4 |
GDC 2018
○ https://www.youtube.com/watch?v=Xd7-rTzfmCo
以上!

UE4 Volumetric Fogで 空間を演出する!