執筆バージョン: Unreal Engine 5.2
|
UE5.2でマテリアルエディタに「Switch」というノードが追加されました。
処理負荷は高めのノードなので使い所は吟味する必要がありますが、なかなか可能性を感じる便利ノードなので、
今回は”Custom Stencil”と組み合わせた用途について、紹介していきたいと思います
(※「Switch」ノードの基本的な使い方は下記の記事を御覧ください)
[UE5] 新規追加されたマテリアルノード「Switch」
メッシュに”Custom Stencil”を設定する
- “Custom Stencil”は初期設定だと無効なので、Project設定の「Custom Depth-Stencil Pass」を「Enable with Stencil」に変更してください
![](https://historia.co.jp/wp/wp-content/uploads/2023/07/2023-07-19_09h57_10.jpg)
- レベル上にスケルタルメッシュを配置し、「Render CustomDepth Pass」をオンに設定し、「CustomDepht Stencil Value」を1以上に設定してください
![](https://historia.co.jp/wp/wp-content/uploads/2023/07/2023-07-19_09h47_49.jpg)
- 今回は、3体のスケルタルメッシュにそれぞれ 1~3 の「Stencil Value」を割り当てました
![](https://historia.co.jp/wp/wp-content/uploads/2023/07/2023-07-19_10h04_38.jpg)
ポストプロセスマテリアルを作成する
- 新規マテリアルを作成し、ポストプロセス用の設定を行ってください
- 「Switch」ノードを配置し、0~3 の “Input” を追加してください
![](https://historia.co.jp/wp/wp-content/uploads/2023/07/2023-07-19_09h58_57-1.jpg)
- 下図のようにノードを組み、ステンシル毎に違う色を設定します
“Custom Stencil”で取得できる値は元々整数なので、そのまま”Switch Value”に渡すだけでOKです
![](https://historia.co.jp/wp/wp-content/uploads/2023/07/2023-07-19_09h59_30.jpg)
- 作成したポストプロセスマテリアルを、レベル上の PostProcessVolume に設定します
結果
”Custom Stencil” 毎に3色に塗り分ける事ができました!
![](https://historia.co.jp/wp/wp-content/uploads/2023/07/2023-07-19_10h04_23.jpg)
まとめ
- “Custom Stencil”も「Switch」ノードも、扱う値が整数なので、値を無加工で使用できてお手軽!
- ノードが少なくシンプルな構成なので、後からStencilを増やすのも楽々!
(「IF」や「Lerp」で同じことをやろうとすると結構面倒)
- 処理負荷の高いノードなので、ご利用は計画的に!