本記事はUnreal Engine (UE)のカレンダー | Advent Calendar 2023 – Qiita シリーズ 4の 23日目の記事です。初心者向けのちょっとしたマテリアルの小ネタを紹介します。
※2023/12/26 – デカール部分に補足情報を追加
もう24日じゃね?
寝ていないのでまだ23日ですよ…
この記事の主な対象者
- Unreal Engineのマテリアルエディターを触っている方
- 今のマテリアル表現に何か追加要素を探している方
- Stylized表現に興味のある方
概要
UE5で導入されたLumenでは、Mesh Distance Fields が必要になります。UE4の時代ではデフォルトだと無効化されていたこの機能も、基本的に有効化して使用されるケースがが増えました。そこで“Mesh Distance Fields”の情報を活用してマテリアル上で何かできないか模索した備忘録です。
こういう事をしているときが、楽しいんですよねぇー
Mesh Distance Fieldとは?
3Dメッシュの周りの空間を小さなグリッド(箱)に分け、それぞれのグリッド内にメッシュの表面からの距離を数値で記録します。これを、影の生成、光の拡散の計算などで使用します。
Mesh Distance Fieldの基本的な情報は既に先人の知恵がございます。詳しく知りたい方はそちらの投稿をご確認ください。
ちなみにDistance Fieldを使用したソフトボディなどの活用方法はUE4時代から存在します。
Mesh Distance Fieldの注意点
何かと便利そうなMesh Distance Fieldですが、スケルタルメッシュはMesh Distance Fieldを生成できないという仕様がございます。今回の手法はあくま背景の静的メッシュに対してのみ有用となります。
ポストプロセスで扱う場合は、スケルタルメッシュの領域をStencilMaskでなどで抜いておかないと、見た目に不具合が生じる可能性があります。いつかスケルタルメッシュもMesh Distance Fieldsを生成出来る日を待ち望んでいます
今回取りあげるノード
今回は“DistanceFieldApproxAO”ノード、“DistanceToNearestSurface”ノード、“DistanceFieldGradient”ノードの3つにフォーカスしていきます。
Distance Field Approx AO
Distance Fieldを使用したAO(Ambient Occlusion)を手軽に扱える代表的なノードです。
ポストプロセスマテリアル、サーフェスマテリアル、どちらでも使用可能ですが、見え方に少し差があるのでご注意ください。
このノード、ドキュメントが無いんですけど?どなたか知りませんか?結構新しいノードなのでしょうか?情報が少ない…。
これは色々活用出来ると思います。
ということで、Distance Field Approx AO自体はこれで使い所は結構あり、便利なのですが、今回は軽く紹介する程度に留めておきます。
Distance Field Gradient
ノーマライズされるとオブジェクトが距離フィールドを移動する X、Y、Z 方向を出力します。とのこと。詳細はドキュメントページへ。
こちらのノードもポストプロセスマテリアル、サーフェスマテリアル、どちらでも使用可能です。
なんだか柔らかそうな法線情報です。そのまま使用したらどうなるんだろう?
柔らかい法線が出来ました。
これペイントしたら何か出来るかな?と思い出来たのがこちらです。
Fake Soft Edge Paint #UE5 pic.twitter.com/0VW4hoMc1S
— 3D人-3dnchu- CG情報ブログ (@ymt3d) December 18, 2023
思いの外反響がありましたが、大したことはしておりません。
実用的かどうかは不明…
デカールで活用できないかな?という事で試したのがこちら
ヌルっとした法線がシャープなエッジを溶かしてくれます。
濡れ感が向上しましたね。実はこのままだとデカールを回転させると法線が変になる問題があります。
そこで対策として
これは他にも色々と活用出来そうな予感!というところで留めておきます。
Distance To Nearest Surface
マテリアルがレベルのどのポイントでも Global Distance Field のサンプリングができるようにします。とのこと。詳細はドキュメントページへ。
こちらもポストプロセスマテリアル、サーフェスマテリアル、どちらでも使用可能です。
少し調整しましょう。
こうする事で安定して活用出来そうです。
改造して使う場合は”DistanceFieldApproxAO”よりもこちらのほうが利便性が高そうです。
Stylized表現に使えそうなDistance Field Shadowを作る
前置きが長くなりました、今回の本題です。先程のDistance Field AOを改造していきます。
あとはこれを素材として色々活用出来そうですよね。
キャストされた影の中でも陰影を追加出来るので、色々とディテールを追加出来るかもしれません。
StylizedPPの方も近々アップデートします!
StylizedPPアップデート中
— 3D人-3dnchu- CG情報ブログ (@ymt3d) December 11, 2023
アドカレのときに公開予定 #UE5 pic.twitter.com/GADHOhi1jS
とまぁこんな感じでMesh Distance Fieldは色々使えそうですよ!というお話でした。おわり!
最後雑に終わったな
寝ます…
コメント