😭

Builtin Render PipelineのShader GraphでStandatd ShaderのCutoutモードが機能しない

2022/06/16に公開約1,600字

Builtin Render Pipelineが設定されたUnityプロジェクトでShader Graphをインストールすると、Rendering ModeをCutoutに設定したStandard Shaderマテリアルが、ビルドしたプレイヤーで正常に働かない問題に遭遇しました。エディタ上では正常に動きます。

結局根本的な解決策は見つかっていませんが、問題の詳細と回避方法等、調べた情報をまとめておきます。

環境

  • OS: Windows11
  • Unity: 2021.3.4f1
  • Shader Graph: 12.1.7

再現方法・発生条件

まず、Standard Shaderが設定されたマテリアルを用意し、Rendering ModeをCutoutに設定します。テクスチャはCutoutに使えるようないい感じのものをAlbedoプロパティに設定します。

マテリアル設定

これをオブジェクトに設定します。
エディター上では正常に、α値が設定したAlphaCutoffプロパティ以下の部分が透けているはずです。これが期待する表示内容ですね。

正常な表示

この状態で、プレイヤーをビルドします。ビルドしたプレイヤーを起動すると、以下のような表示になります。透けてほしい部分が透けていません。
なぜだ😭

対応方法

現状でなし。

回避方法

  • Rendering ModeをFadeにして代用する
  • Shader Graphをアンインストールする
  • Render PipelineをURPかHDRPにする

最後に

Shader Graphが最近になってBuiltin Render Pipelineに対応したので、やったぁと思って使い始めたのですが、思わぬところで壁にぶつかってしまいました……
他に同じバグに遭遇している方がいないか調べても、そもそもBuiltin Render PipelineでShader Graphを使っている情報があまり出てこないので、この組み合わせで使うこと自体があまりないことなんですかね。

根本的な解決策が見つからなからずUnityのIssueTrackerにも見当たらなかったので、この件についてのバグレポートを出してみました。解決するといいけど……

進展があれば本記事を更新します。

参照

追記

2022/08/19

バグレポートの音沙汰がないし一向に解決されない……

2022/08/28

バグレポートのStatusがIn Reviewになったのでそろそろ進展があるかも

2022/09/03

バグレポートのStatusがConfirmedになったのでバグとしてUnity開発チームに認識されたっぽい。いつ対応されるかはわからないけど……

Discussion

ログインするとコメントできます