【UE5】アウトラインカラーとマスクのBuffer Visualizationを対応してみた – Unreal Engine 5.4

Unreal Engine

水ノ茉(こおり)の宣伝

叡智でえっちな同人作品を予定中…

Ci-en R18

同人作品の宣伝

  • 準 備 中 . . .

プラグインの宣伝

  • 準 備 中 . . .
  • 準 備 中 . . .

始まり

アウトラインカラーとマスクを可視化できるようにします。

Buffer Visualizationとは?

シーンカラーやGBufferなどを可視化するデバッグ機能です。

エンジン改造とは?

ゲームエンジンのコードを書き換える行為をエンジン改造と呼びます。

尚エンジン改造という呼称が正式かは知らんです。

これ以上の真面目な説明はググればヒットするので割愛します。

以下、実際の描画まわりの改造事例です。

前髪を透かしたり

毛先まで綺麗に表現できるポストプロセスなアウトラインを描いたり

キャラと背景を別々のシャドウマップに書き込んでセルフシャドウを抑制したり

髪影を落としたり

頂点IDノードを追加して、それを元に鼻に線を引いたり

独自のトゥーンパス群ですべて描いたり

リポジトリ

最新バージョンのみ保守しています。

過去バージョンが動かないと言われても基本的には知らんがなスタイルです。

実装

めっちゃ簡単。

Engine/Source/Runtime/Engine/Private/BufferVisualizationData.cpp

Buffer Visualizationから選択できる項目にOutline ColorとOutline Maskを追加しています。

githubで実装を見る(L124-L128)

Engine/Config/BaseEngine.ini

アウトラインカラーとマスクを可視化する際に使用するマテリアルを指定しています。

後述する2つのマテリアルを作るまではPostTonemapHDRColorなどの既存のアセットパスを指定してください。

そうしないと存在しないパス参照になって壊れると思います。

試したことないから知らんけど。

githubで実装を見る(L2927-L2928)

Engine/Content/BufferVisualization/OutlineColor.uasset

SceneTextureノードからアウトラインカラーを拝借します。

Engine/Content/BufferVisualization/OutlineMask.uasset

SceneTextureノードからアウトラインマスクを拝借します。

完成!!!

こんな感じでRenderDocを使わずに見れるようになりました。

おわり!!!

エンジニア的にはRenderDocで見れれば十分ですが、アーティストが正しくパラメータを流しているかなどをぱっと見で確認する時には結構便利だったりします。

関連するエンジン改造

雑談

gitの方にも5.6ブランチが露出して、そろそろリリースが近そうなので適当に放出なのです。