お世話になっております。
ポストプロセスボリュームでカラーグレーディングを設定し
特定のアクタやオブジェクトのみに反映させたいと思っているのですが、
何か良い方法はありますでしょうか?
よろしくお願い致します。
お世話になっております。
ポストプロセスボリュームでカラーグレーディングを設定し
特定のアクタやオブジェクトのみに反映させたいと思っているのですが、
何か良い方法はありますでしょうか?
よろしくお願い致します。
CustomDepthというものがありますが、これをマスクとして使えばできると思います。
ご回答ありがとうございます!
こちらでもう少し調べてみました。
カラーグレーディングを掛けたいオブジェクトに対して
CustomDepthを有効にすると、ポストプロセスマテリアルでの処理が必要になると思っています。
そうすると、ポストプロセスマテリアル内で、カラーグレーディングが掛かる前の画面を
取得できるノードが必要になり
現状ですと、該当するノードが無いので実現自体難しいのではないかと思っています。
(ちなみにエンジンのソースは修正しない前提です。)
対応的には、CustomDepthが掛かったオブジェクトに対して、
ポストプロセスマテリアルに必要なカラーグレーディングの処理を書く、というのが
できそうな対応か、またはエンジンのソース修正が必要なのかも、という印象なのですが
いかがでしょうか。
「カラーグレーディングがかかる前の画面」がポストプロセス無しの画面ということであれば、SceneTextureノードで取得できると思います。
カラーグレーディングの処理についてもエンジンを変える必要は特にないとは思いますが、そのあたりはどのような演出がしたいか次第のため判断しかねます。
ただUE4のMaterialにはCustomノードというHLSLを記述できるノードが存在するため、ほとんどの場合これで解決すると思います。
こちらを一読していただくとポストプロセス関係でやりたい処理がわかるかもしれません。
資料リンクありがとうございます!
「カラーグレーディングがかかる前の画面」がポストプロセス無しの画面ということであれば、SceneTextureノードで取得できると思います。
よく分かっていなくて大変恐縮なのですが、具体的にどのノードなのか教えて頂けますと嬉しいです!
おそらくSceneTexture:postprocessInput0かな、と思うのですが
SceneTexture:postprocessInput0で取ると、ポストプロセスボリュームに設定したカラーグレーディングが反映された後の画面だと思っていて、
SceneTexture:SceneColorはエラーが出て使えないですよね…
ポストプロセスボリュームに設定したカラーグレーディングが反映される前の画面を取得することはできるでしょうか?
確かに、カスタムノード内にカラーグレーディングの処理を書くことで、
ポストプロセスマテリアルにできるので、特定のオブジェクトにカラーグレーディングを掛けることができる気がしますね。