ゲーム作りが大好きな人のブログ

ゲームを作るのが大好きな人のブログ。UE4とBlender、MAYA(LT)、3DCoatを使用しています!

【UE4】キャラクターとエフェクト以外を暗くするポストエフェクトを作る

f:id:toofu0:20200703173517p:plain

やりたい事は上の画像のような

 ・キャラとエフェクトは通常の明るさ
 ・背景だけは暗くする

という演出を作る事です。
それでは解説いってみましょー!
 

更新履歴

2020/07/04 13:46
 ・devアツメ・アツコさんからのアドバイスを元にマテリアルを修正
 

はじめに

UE4.25.1の「ThirdPerson」を使用して作成します。
・カスタムデプスを使用します。既に使っている場合は実現できない可能性あり。
 (ステンシルとの併用すれば上手くいけると思いますが、ここでは説明しません)
・本記事を書く際にラタさんからアドバイスをいただきました。ありがとうございます!
 

1. プロジェクトの設定

まずカスタムデプスが使える状態か確認します。

  1. メインメニュー→編集→プロジェクト設定を開きます
  2. 左上にある「すべての設定」選択後、右上にある検索バーに[ custom depth ]と入力
  3. カスタム深度ステンシルパスがDisabled以外になっているか確認

f:id:toofu0:20200704004305p:plain
 
 

2. キャラクターにカスタムデプスを適用しよう

言葉で説明より画像の方が分かりやすいので下記画像を参照。
f:id:toofu0:20200703230655p:plain
 
 

3. カスタムデプスが適用されているか確認する

こちらも画像確認でお願いします。
終わり次第、元の「ライティングあり」に戻すのを忘れないでください。
f:id:toofu0:20200703232302p:plain
 
 

4. ポストプロセス用マテリアルをつくる

M_PostProcessという名前でマテリアルを作り
以下のように設定してください。

基本パラメータの設定(※変更点のみ表示しています)

f:id:toofu0:20200703233053p:plain

マテリアルの中身

f:id:toofu0:20200704140015p:plain
customノードを使えばもう少し短縮可能です

PostProcessInput0に0.3倍を掛けている部分がありますが、これが背景を暗くしている部分です。この値を変更する事で明るさを調整する事が可能です。

カスタムデプスノードってどうやって出すの?って方は下のGIFをどうぞ。
f:id:toofu0:20200703234419g:plain
※PostProcessInput0も同様の方法で表示可能です。
 
 

5. ポストプロセスマテリアルを適用する

ポストプロセスボリュームにポストプロセスマテリアルを設定します。
やり方が分からない方は下記の動画に沿って設定してください。
youtu.be

ここまで設定するとキャラ以外が暗くなっていると思います。
 
 

6. 他の物体を通常カラーにする方法

これは2でやったカスタムデプス設定を他のメッシュに適用するだけです。
やり方は下の動画となります。
youtu.be
 
 

7. 半透明オブジェクトは何もしなくても通常カラー

4の項目の「基本パラメータ設定」にてBlendable Locationの設定をBefore Translucencyにしておりますが、これはポストプロセスが半透明を描画する前に実行するという設定です。つまり半透明は強制的に暗くなりません。
 
 

8. 半透明じゃないエフェクトはどうする?

カスタムデプスの設定はパーティクルにもありますのでパーティクルを生んだ瞬間にカスタムデプスを設定するか、BPのコンポーネントとして組み込まれている場合はBPの中で設定してやるのがベストです。
 
 

最後に

ここまでで実現したい事が出来たと思います。
リアルタイムで暗くしたり明るくしたい場合は、4で設定した0.3という数値をマテリアルパラメータコレクションに置き換えて設定すればよいかと思います。(マテリアルパラメータコレクションの設定は長くなるのでここでは割愛します)

画像ばかりで解説少な目ではありましたが
個人的には最初は理論での理解よりも
やりたい事が実現できた方が楽しいので
実現してから理論を時間をかけて理解するで良いと思います。

本記事を書く際にアドバイスしていただいた
 ラタさん
 devアツメ・アツコさん
に超感謝しております。

というわけで解説はこれにて終わりです!
バイバイ!