メインコンテンツへスキップ
  1. 記事/

CustomStencilを使ったマスク作成

UnrealEngine UE5.0 PostProcess

映像編集等で後々画像を切り分けたいときに使える、CustomStencil を使ったオブジェクトマスクの作り方を紹介します

CustomStencil について #

CustomStencil(CustomDepthStencil)とは、CustomDepth の拡張で、オブジェクトごとに任意の値(1 ~ 255)を書き込むことができる機能です

CustomStencil の使用設定 #

ProjectSettings で、 Custom Depth-Stencil PassEnabled with Stencil に設定しておきましょう

CustomStencilを有効にする

CustomStencil を設定したい Actor(Mesh)の Render CustomDepth Pass を ON にし、 CustomDepth Stencil Value に値を設定します

CustomStencilを設定

PostProcessMaterial の実装 #

基本実装はこのような形になります
CustomStencil の出力は 0 ~ 255 に展開された状態で出てくるので、任意のステンシル値と一致したときに 1 を、一致しないときに 0 を出力すれば OK です

Stencilの出し分け

RGB で分けたいときは、これを 3 つ用意し、それぞれ別のステンシル値を対象にすれば良いでしょう

実装例

画像ではわかりやすいように色と掛け算して Add で合成していますが、MakeFloat3 でまとめたほうが若干スマートになります

MakeFloat3のパターン

チラツキ対策 #

PostProcess の適用タイミングが AfterTonemapping の場合、アンチエイリアスによって境界がちらつく場合があります
ちらつきを抑えたい場合は、 BlendableLocationBeforeTonemapping にしておきましょう

参考資料 #

ポストプロセスマテリアル
https://docs.unrealengine.com/5.0/ja/post-process-materials-in-unreal-engine/

Related

LumenのCardCaptureを差し替える
UnrealEngine UE5.0 Lumen
CharacterのCollisionをMeshの形状に合わせて追加する
UnrealEngine UE5.0 Character
CameraでActorを追尾(Tracking)する方法について
UnrealEngine UE5.0 Cinematic