URPのColorGradingLUTパスを削除するためにUnity Packageを改造

Unity2022.3.16f1とURP14.0.9を使うと、使っていないはずのColorGradingLUTが1パス消費しているので、これを削除します。

ありがたい参考資料

https://zenn.dev/heppoko/articles/b6c3c33f715cfe

手順は以下の通り。

  • URPを改造可能にする
  • ColorGradingLUTパスを無効化する

URPを改造可能にする

Library/PackageCacheにあるcom.unity.render-pipelines.universal@14.0.9をPackages以下に移動します。 移動するとPackage ManagerでUniversal RPにCustomのマークが付きます。

Library/PackageCache/com.unity.render-pipelines.universal@14.0.9

Packages/com.unity.render-pipelines.universal@14.0.9

以下の操作でFinderでお目当てのフォルダを開くことができます。

Projectビュー > Packages > Universal RP > 右クリック > Reveal in Finder

ColorGradingLUTパスを無効化する

以下のファイルに変更を入れます。 Unity2022.3.16f1とURP14.0.9では、この3つの変更を入れないとエラーが出ます。

  • Universal RP/Runtime/UniversalRenderer.cs
  • Universal RP/Shaders/PostProcessing/UberPost.Shader
  • Universal RP/Runtime/Passes/PostProcessPass.cs

Universal RP/Runtime/UniversalRenderer.cs の変更点

UniversalRenderer.csのUniversalRenderer.Setupの638行目のgenerateColorGradingにfalseを入れます。 ヒントとしては、以下のコメント付近にあります。

// TODO: We could cache and generate the LUT before rendering the stack

Universal RP/Shaders/PostProcessing/UberPost.Shader の変更点

UberPost.Shaderの240行目colorにApplyColorGradingの戻り値を代入しているところをコメントアウトします。 ヒントとしては、以下のコメント付近にあります。

// Color grading is always enabled when post-processing/uber is active

Universal RP/Runtime/Passes/PostProcessPass.cs の変更点

PostProcessPass.SetupColorGrading に変更を入れます。
1287行目あたりにあります。SetupColorGradingの中身を全てコメントアウトします。

まとめ

以上で、ColorGradingLUTを消すことができました。
Frame DebuggerでColorGradingLUTのパスが消えていること確認してください。

Frame Debuggerの開き方は以下の通り。

Window > Analysis > Frame Debugger