関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2020.09.16UE4UE/ Material
執筆バージョン: Unreal Engine 4.25 |
ポストプロセス上でキャラクターのアウトライン描画を行う場合、
下図のように、煙や炎などの半透明物越しにアウトラインが描画されてしまって、困った事はありませんか?(私はあります)
今回はこの問題に対する、一つの解決法を解説していきたいと思います。
使うのはこちら。ポストプロセスマテリアル作成時に必ず使うノード、「Scene Texture」です。
Detailパネルから、Scene Texture id を “Post Process Input 1″に設定してください。
※一見、”Separate Translucency”という Scene Texture id から取得できそうですが、カーソルを合わせると”Not yet supported”と表示されるので、未実装のようです。
この”Scene Texture id”からは、下図のように “Separate Translucency RGB” の値が取得できます。
“Separate Translucency RGB”をグレースケール化し、アウトラインをマスクします。
これでポストプロセスによるアウトラインが、半透明物越しにマスクされるようになりました。
次に、この手法の注意点について説明します。
注意点①
Separate Translucency の Opacity を取得してマスクしている訳ではなく、RGBの値をグレースケールにしているだけなので、明度が低いカラーの半透明物はうまくマスクされません。グレースケール化した後の値を底上げしたりする工夫が必要です。
注意点②
半透明物はDOFの前後で2度描画されますが、今回の手法で取得できるマスクは “Render After DOF (= Separate Translucency)” で描画された半透明に限られます。
“Render After DOF” が “False” の半透明マテリアルはマスクされません。
用法・用量を守って、正しくお使いください。