#はじめに
こんにちは、ZeniZeniです。
最近LWRP環境を触っているんですが、既存のアセットをLWRPでも使えるようにするには場合によって結構手間がかかります。
基本的にはアセットをインポートした後、Edit>Render Pipeline>Upgrade ○○ Materials to LightweightRP Materials
ボタンを押すことで、ある程度自動でマテリアルが使用しているshaderをLWRPで使えるshaderに変更してくれます。
しかしこの自動変更が対応してあるshaderは限られて、対応表がこちらのサイトに載っています。
こちらを見てもらえばわかる通り、UnityのStandardAssetsに入っている木や草などの自然系のアセットに使われているNature系のshaderが対応していません。そのため、Gaiaなどの自然系のアセットではマテリアル自動変更をしても木々は真っピンクのままです。
Unityの質問サイトを覗くと、この真っピンクに苦しめられている人が結構いて、最終的に対処方法はshadergraphで自作しろというあんまりな終わり方だったので、もう少し調べると、そのNature系のshaderを提供しているSpeedtree社のサイトにLWRPに関する説明記事がありました。
これを読むと、現状HDRP/LWRP対応のshaderは開発中であり、提供はまだ先であるが、一応の対処方法があるということが書いてありました。
#対処法
対処方法は非常に簡単で、真っピンクになってあるmaterialのshaderを一度Nature/SpeedTreeからStandardに変更してから、Edit>Render Pipeline>Upgrade ○○ Materials to LightweightRP Materials
ボタンを押すことです。
するとこうなります。
見てわかるとおり、透過処理のされていないのっぺりとした感じになってますね。
今度は葉っぱ部分のマテリアルを選択して、SurfaceTypeをOpaqueからTransparentに変更しましょう。
いい感じになりましたね。
上記の方法はSpeedTreeさんのサイトに書いてあるんですが、わざわざStandardを経由して変更しなくても、いきなりNature/SpeedTreeからLightweightRender Pipeline/Litに変えて、SurfaceTypeを変更するだけでもできました。
#その他
既存のアセットでEdit>Render Pipeline>Upgrade ○○ Materials to LightweightRP Materials
ボタンを押してマテリアルを変更したが、なんかコレジャナイ…みたいな時があります。
マテリアル自動変更では、変更先が処理の軽いLightweight Render Pipeline/Simple Litになっていることが多く、これだと味気ない感じになってしまいます。これは単純にLightweight Render Pipeline/Simple Lit から Lightweight Render Pipeline/Lit にshaderを変えるだけではっきりとした見た目になります。
#開発、執筆にあたり、下記のサイト様を参考、引用させていただきました。