ProjectRoot直下のShadersディレクトリをShaderIncludePathに追加するだけのPlugin [UE4]

これはなに

プロジェクトルート/Shaders をUEのShaderIncludePathに自動追加するプラグイン.
UE4.25辺りからマテリアルのCustomノードで Include File Paths を指定して外部シェーダファイルをインクルードして利用できるようになったが,インクルードパスの設定が面倒だったので勉強ついでに自分用自動化プラグインを作成した.

置き場所

github.com

使い方

1. zipを解凍してできたNglShaderIncludePluginを ProjectRoot/Plugins にコピー.
2. ProjectRoot/Shaders ディレクトリにCustomノードで使いたい ush を配置.

// テストで用意した IncludeTest.ush というファイル
#pragma once
float3 Func00()
{
    return float3(1.0, 0.0, 0.0);
}

3. マテリアルのCustomノードの Include File Paths に "/Project/filename.ush" を入力.

f:id:nagakagachi:20210818012316p:plain
Customノード例

4. Customノードでインクルードしたushの関数などが利用できるようになる.

エラーメッセージ

UEプロジェクト起動時に Shaders ディレクトリが存在しないと以下のような警告がログに出力されるのでディレクトリを作成するように.

LogTemp: Warning: [FNglShaderIncludePluginModule] directory [ProjectRoot/Shaders] does not exist.

f:id:nagakagachi:20210818003947p:plain