Unity+UnrealEngine4+Blog.

UnityやUnrealEngine4とかについて学習したことを書いてます

UE4 PostProcessの基本と代表的な使い方、少しUnityとの比較

 

Unreal公式ラーニングでPostProcessの勉強をしたのでブログに書きます。

自分のメモをほぼ転記しているので、わかりにくいところがあったらすみません!

 

〇前提

・unrealではpostprocessはデフォルトの設定で有効になっている

・デフォルトのpostprocessを上書きするにはpost process volumesかコンポーネントが必要である。

post processコンポーネント

空のアクタに追加して使用。post process volumeと同じ

f:id:nabesi777:20190831154711p:plain

post process volume

f:id:nabesi777:20190831154730p:plain

f:id:nabesi777:20190831154756p:plain

このboxの中に効果を適用するが

DetailのInfinite Extendにチェックを入れると効果がレベル全体に適用される。

f:id:nabesi777:20190831154814p:plain

基本的にはレベル全体に適用するものをひとつ作成して、変更したいポイントがある場合はpost process volumeを追加して対応する。

Priorityで優先順を決定する

f:id:nabesi777:20190831154835p:plain

Detail>Lens

ここでBloomなどの設定を行う

f:id:nabesi777:20190831154852p:plain

チェック&数値を入れて、デフォルトのPostProcessを上書きする。

もし仮にBloomを一切表示させたくない場合は、チェックを入れて数値を「0」としてデフォルトを上書きをする。

一般的な機能

Bloom

Threshold(閾値)を-1か0にするとすべてのピクセルからBloomするが、1とかにすると明るいところからBloomする

 

f:id:nabesi777:20190831154915p:plain

Depth of Field

ぼやけさせる機能

Bokehが一番美しいと言われているが、負荷が高い。Gaussionが一般的

 

例)本に焦点を合わせる(近くのものに)

 

f:id:nabesi777:20190831154936p:plain

ColorGrading

シーンの色合いを調整する

使用例)Yの値を変えてコントラストを変える

 

f:id:nabesi777:20190831154953p:plain

AudoExposure(自動露出)

自動露出をオフにしたい場合は下のように2つの値を1にする

 

f:id:nabesi777:20190831155008p:plain

追加機能

AmbientOculusion

部屋の隅の影の設定(ざっくりw)

負荷が軽いエフェクトのため、デフォルトでオンになっている。

Itensity 0 で機能をオフに

 

f:id:nabesi777:20190831154639p:plain

Qualityの設定も

f:id:nabesi777:20190831155039p:plain

LensFlare

画面のもっとも明るいピクセルを使用する。そしてそのもっとも明るいピクセル上でレンズフレアをレンダリングする。

もっとも明るいピクセルを使用するため、マテリアルの設定などを慎重に行う必要がある

 

f:id:nabesi777:20190831155104p:plain

f:id:nabesi777:20190831155116p:plain


 

ImageEffect

画面にノイズを出したりできる

 

f:id:nabesi777:20190831155145p:plain

f:id:nabesi777:20190831155152p:plain


 

Vignetteは画面の4隅を暗くする(これもデフォルトでオンになっているのでとても注意

 

f:id:nabesi777:20190831155212p:plain

ChromaticAberrationはめまいのような効果を作る

 

f:id:nabesi777:20190831155225p:plain

PostProcess応用

いったんマテリアルを通したPostProcessを使用

プールの中を表現するために、マテリアル内で画面をゆがめたり、着色したり。詳細はこちら↓すごい!夏のアスファルトの上表現したいんだけどそんなのできそう

エフェクトの応用

Unityとの違い、気づき点

・手順が違うだけでだいたい基本的な機能は同じっぽい

・Unityでは手動でpostprocessを設定しないといけないが、Unrealではデフォルトでオンになっている。それを上書きする形でPostProcessを設定する。

・Unityはカメラごとに違うPostProcessを適応させることができる。(カメラにレイヤーをかぶせるイメージ?)Unrealでもやりたい場合ははBluePrintなど使って別の方法で対応する必要がある。

・UnrealはPostProcessVolumeを追加してPostProcessを上書きすることができる。Unityはたぶんできない。Unityで一度困ったのが、シーン全体にはBloomをかけたいけど、特定のワールドに置いたUIにはBloomを適用させたくない場合はやり方がわからずはまった記憶があります。(そのときは閾値やマテリアルを変えて対応したと思います。)Unreal場合だとそのUIを囲うVolumeを追加して、Priorityを上げれば行けそう