UE4初心者が頑張ってるブログ

Unreal Engine4を使用した開発メモ、及びそれに関連することについて不定期に書いています。

UE4 SphereMaskでホラー的な表現を行う

今回はPostProcess Materialを使用して、
一定以上の距離から先が見えないといった処理を作成します。

作成にはUE4 4.19.2を使用しています。

f:id:MozPaca:20180516153207p:plain

 

First Person Templateを起動してください。

f:id:MozPaca:20180516153343p:plain

 

Materialを作成する

コンテンツブラウザを右クリックから

Materialを選択します。

f:id:MozPaca:20180516153422p:plain

 

Materialが作成できたら

名前を付けましょう。

f:id:MozPaca:20180516153500p:plain

 

MaterialをPostProcessVolumeに適応する

First Person Templateには最初から

PostProcess Volumeが配置されています。

PostProcess VolumeのPostProcess Material内の

Arrayに配列を追加して、先程作成したMaterialを適応します。

f:id:MozPaca:20180516153605p:plain

 

Materialを編集する

先程作成したMaterialを開きます。

まずは、Material DomainをSurfaceから

Post Processに変更します。

f:id:MozPaca:20180516153820p:plain

 

次にこのようにノードをつなげます。

f:id:MozPaca:20180516154027p:plain

Sphere MaskはAにチェックする座標の値、

Bに球体の原点の座標の値を入力し、

RadiusとHardnessに球体の半径と

トランジションエリアのサイズを指定します。

 

確認してみる

ここまでの処理が作成できたら実行して確認してみましょう。

プレイヤーを中心に半径1000の球体マスクが適応されました。

f:id:MozPaca:20180516154409p:plain

 

改良してみる

しかしこのままではプレイヤーや、

その他のオブジェクトが白く塗りつぶされたままになります。

 

そこでのように改良してみました。

f:id:MozPaca:20180516154615p:plain

LerpのAには0を入れ真っ黒になるようにします。

BにはScene Textureで本来描画されるべき色を入力します。

Alphaに先程作成したSphere Maskの値を入れ、

AとBの間を補間します。

 

確認してみる

確認してみると、マスクの範囲内には
正しい色が描画され、範囲外は黒くなりました。

f:id:MozPaca:20180516154859p:plain

 

また、Material Instanceなどで扱う場合は

RadiusとHardnessをパラメータにしておくと便利です。

f:id:MozPaca:20180516155001p:plain

 

パラメータを調整したものがこちらになります。

www.youtube.com