今回はSubstance+Houdini+UE4を活用し
爆発や弾痕などで発生するクレーターのような
デカールを作る過程を紹介できればと思っています。

こちらのデカールエフェクトが完成イメージになります。
まずはHoudiniでの作成の過程を中心に流れを説明したいと思います。
こちらがHoudiniのネットワークの全体図です。


➀:球の作成とUV展開
A:UVのデフォーム
B:ハイトテクスチャの読み込みと押し出し
C:Bで作ったメッシュとボックスを使い、ブーリアン処理
D:ゲームエンジンで使う用の各種テクスチャをレンダリング
順々に工程を説明します。
➀:球を作成し、筒状にUV展開をします

A:UVのVをランプでデフォームします

UVをデフォームしている理由は
後の過程でこのメッシュを元にデカールの溝を作るのですが
デフォルトの円柱のラッピングだと均一な溝にならず、
UVが伸びたような溝になるからです。
B:SubstanceDesignerで作ったハイトテクスチャを
頂点カラーとして焼き込みます。

焼き込んだ頂点カラーを元に法線方向に押し出します。
ただそのまま押し出すと球の底の方が押し出され過ぎてしまいますので
球の底の方はハイトの中央値(グレー)になるように頂点カラーを調整します。

カーブの制御の中身は以下のようになっています。
attribvopという頂点情報などを編集するノードを使って以下のように編集します。
attribvoを作ってダブルクリックで中に入ると、
ノードベースで頂点情報などの編集ができます。
イメージ的にはゲームエンジンのマテリアル エディタの頂点版が近いかもです。
また簡単にですが中身の説明も記載いたしました。

調整した頂点カラーを元に押し出すと、
以下のように球の底の方はそこまで押し出されず
それ以外の所は均一の高さで押し出しが行われます。

デカールの削り部分のメッシュになるのでかなり極端に押し出しをしています。
C:土台となるボックスを作成し、
Bで作った削り用のメッシュをトランスフォームノードで縦に潰し、
位置などを調整した後にブーリアンノードで削ります。
※ブーリアンは2つのモデルを交差するようにして
対象の重なっている部分を削る事ができます。

D:ゲームエンジンで使う用の各種テクスチャをレンダリングします

あとはゲームエンジンに素材を持って行き、
視差マップ用のマテリアルに適用すれば完成です。
今回はUnreal Engineの「ParallaxOcclusionMapping」を使用しています。
機能別サンプルにも「ParallaxOcclusionMapping」のサンプルがあります。


実際に適用したものが↓のものになります


使用したハイトテクスチャ↑
マテリアルの構成は以下のような構成になっています。
Houdiniで作ったAO用のテクスチャやノーマルは
大きなディティール情報を持っているので
Substanceで作った細かいディティール情報として
マテリアル上で2つの情報を混ぜ合わせています。


岩素材のテクスチャデータはsubstanceで作成しています。

substanceのテクスチャ素材次第で違った表情のデカール素材になるので、
プロジェクトのテイストに合わせたデカールを作成できると思います。


ハイトテクスチャを変えた例です↑
記事は以上になります。
拙い記事ではありますが、何かのお役に立てれば嬉しいです!
ここまで読んでいただきありがとうございました。