Builtin Render PipelineのShader GraphでStandatd ShaderのCutoutモードが機能しない
Builtin Render Pipelineが設定されたUnityプロジェクトでShader Graphをインストールすると、Rendering ModeをCutout
に設定したStandard Shaderマテリアルが、ビルドしたプレイヤーで正常に働かない問題に遭遇しました。エディタ上では正常に動きます。
結局根本的な解決策は見つかっていませんが、 問題の詳細と回避方法等、調べた情報をまとめておきます。
(2023/01/06追記)Unity2021.3.17f1, 2022.1.23f1, 2022.2以降で修正されました。
環境
- 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開発チームに認識されたっぽい。いつ対応されるかはわからないけど……
2022/10/16
Issueトラッカーに登録されていたようです。
2022/11/04
修正が完了し内部確認中と連絡が来ました。
2022/12/04
Unity2022.1以降で修正されました。
Unity2021.3は「Under Consideration」になっています。
2023/01/16
Unity2021.3.17f1, 2022.1.23f1, 2022.2以降で修正されました。
やったね🤗
(実はもうURPに移行してしまって修正の恩恵は得られませんでしたが……)
Discussion