VolumetricFogを出す
VolumetricFogはなにかというと、上記gifのようないわゆる薄明光線が表現できる
最近だとINSIDEの懐中電灯や水中で印象的な使われ方をしていた
これまでUE4でこのような表現をする時は、三角錐やら板ポリにテクスチャ貼ってでやっていたが、ついに4.16のPreviewにてVolumetricFogが実装され、より綺麗かつインタラクションがある薄明光線が出せるようになったとのことなので簡単にレベルを用意してみた、最高
以下とりあえずVolumetricFogを出すまでの内容です
はじめに
UEver | 4.16 Preview1 |
Preview版の機能なので将来変わる可能性がある、
ExponentialHeightFog、Light、MaterialでVolumetricFogの機能が追加されているので、それぞれを確認していく
ExponentialHeightFog
ExponentialHeightFogはデフォルトでは用意されていないため、まずはレベルに追加する
これは今までのバージョンではレベル全体にFogをのせる時に使用していたのだが、今回のアップデートで加えてVolumetricFogも出せるようになった、
Detailsタブを見ると、VolumetricFogという項目が増えており、ここのVolumetricFogをEnableにすることで有効になる、
細かい設定は置いておき、次にLight側の設定を行う
Light
ExponentialHeightFogの設定だけではVolumetricFogは出ず、Light側の設定も行う必要がある
ちょっと効果をわかりやすくしたいので、デフォルトで配置されているDirectionalLightのIntensityを0にして、レベルに新たにPointLightを追加する
AttenuationRadiusを400くらいまで下げて、適当なジオメトリを用意し、光が重なるように配置してみる
既にLightの中心からモヤーっとした光の広がりが出ていて、これがVolumetriFogです、
さらにLightのDetailパネルのLightカテゴリの下にある▼を押すとCastVolumetricShadowという項目があるので、これをEnableにする
このパラメータがEnableなら、影の計算が行われだんだんとVolumetricFogみが増してくる、マウスでポチポチすると光芒がわかりやすい
ここで一度ライトをビルドしてみる、するとVolumetricFogがおかしいことになる
なので、VolumetricFog(Shadow)を出したいLightのMobilityはMovableにする必要がある(っぽい)
StaticMeshには影響を与えないよう設定して、VolumetricFog専用のLightを用意するみたいな運用をするといいのかもしれないです
もちろんMovableなのでキャラクターなんかにアタッチすると、プレイヤーからの光芒が表現できる
また、今触ってきたパラメーターはBPグラフからもアクセスできるようになっている
Material
Material設定のDomainにVolumeが追加されている、これを選ぶとBlendModeは絶対にAdditiveにしろと言われるのでそうする
Outputパラメーターの名前も変化して、BaseColorがAlbedoに、OpacityがExtinctionになる
このマテリアルはパーティクルシステム用で、適当にマテリアルを作成してパーティクルを組んで見る、パーティクルシステムのほうはいつも通りで大丈夫です
Fogの濃度に応じて加算されているのがわかる、VolumetricFog環境下での煙エフェクトなんかが作れますね、おわり
余談
- 今回はPointLightを見たけれど、StationaryなDirectionalLightでやるときの設定はまだ詰めていないのでそのうち
- ライトのベイク周りの挙動がいまいち理解できていないのでそのうち
- Forumに書いてあるけれど、DistanceFieldを利用して動的なオブジェクトに対してもソフトな影を生成する、RayTracedDistanceFieldShadowsではまだVolumetricFogはでない
- →これがつかえないとなると現状、動的なオブジェクトから柔らかいVolumetricFogが出ているのにもかかわらずその影はパキッとしているみたいな気持ち悪い画になる(直前のgifとかめちゃくちゃ気持ちが悪い)
- →LightのShadowResolutionScaleを調節するなどで擬似的なソフトシャドウは得られるけれど、光源近くは最悪になるので、なんとかやっていってください