ProBuilderでステージを作っているときに、ふと思ってLWRPを適応したところ、見事にピンク色になってしまいました。
ProBuilderのシェーダーはLWRPに対応していない
LWRPは幾つかの点で非常に有り難い機能ですが、機能の削減…特にShaderのSurfaceShaderに対応していない、パイプラインに対応したシェーダーしか使用できない等、広報互換性的に結構面倒な部分があります。
今回使用しているProBuilderはLWRPのパイプラインには対応したいなかった為、LWRPを適応するとモデルがまっピンクになるという現象が起こりました。
一応、全てのシェーダーに対応していないという訳ではなく、Unlit系のシェーダーは動作することが多いのですが、今回は影を表現するためかSurfaceShaderで記述されていたため、コレがモロに影響を受けました。
ProBuilderの使用しているマテリアルを他のマテリアルに変更したりする分には問題はないのですが、出来れば頂点カラーも含めてProBuilderの機能を使いたいので、何とかしてみます。
シェーダーを作ろう
ShaderGraphでシェーダーを作ります。
Assets>Create>Shader>PBR
でShaderGraph用のシェーダーを作ります。作ったシェーダーを右クリックしてマテリアルを生成、新しいモデルに割り当てておきます。
まず初期設定、特に何もない状態のシェーダーを適応してみます。頂点カラーも、いつもの模様も表示されません。
頂点カラーを付けます。Vertex Color
ノードを追加して、Albedoに登録します。
SampleTexture2D
を追加して、テクスチャから色情報を取得するようにします。その際、頂点カラーも混ぜたいので、Multiple
で色を合成します。
なおProBuilderの何時ものテクスチャファイルはpackages/ProBuilder/ProBuilder/Resources/Texture/GridBox_Default.png
にあります。普通に検索しても出てこないので注意です。
各手順の間にSaveAssetボタンを押して、シェーダーを反映させるのを忘れずに。
…もしかしたらProBuilder v4で解決してるかもしれませんが、未確認