Unity 2019.3 では、軽量レンダーパイプライン (LWRP) が Universal Render Pipeline (ユニバーサルレンダーパイプライン、URP) に置き換わっています。Unity 2019.3 を使用するには、プロジェクトで LWRP を使用している場合は、URP を使用するようにアップグレードする必要があります。
Unity で自動的にアップグレードされる部分もありますが、一部は手動で変更する必要があります。このガイドの手順に従って、LWRP の使用から URP の使用に移行することができます。
URP はアセンブリ定義の文字列名の代わりに GUID を使用します。プロジェクトでアセンブリ定義アセット (ASMDefs) を使用している場合は、それぞれのアセットで Use GUIDs が有効になっていることを確認してください。
Unity では既存の文字列の参照が自動的に LWRP にアップグレードされますが、今後に備えてアセンブリ定義アセットで GUID を使用することを推奨します。
プロジェクト内の各アセンブリ定義アセットについて、以下の手順を実行します。
アセンブリ定義ファイルの使用方法については、アセンブリ定義に関するドキュメント を参照してください。
アップグレードプロセスを開始するには:
Unity により、自動的に LWRP が 7.x.x バージョンに更新され、更新された LWRP パッケージの依存関係として URP パッケージが取り込まれます。Unity のスクリプトアップデーターにより、スクリプトファイルが自動的にアップグレードされます。スクリプトアップデーターの処理が完了すると、すべてのスクリプトが正常にコンパイルされるはずです。
LWRP プロジェクトで Shader.Find を使用して LWRP シェーダーを検索している場合は、検索パスを変更する必要があります。
以下の手順で行ってください。
Lightweight を検索する Shader.Find のすべてのインスタンスを Universal を検索するように変更します。URP は独自のスクリプトタグを使用します。シェーダーで LWRP の LightMode タグを使用している場合、Unity では内部エイリアスを使用しているため、これらのタグは URP プロジェクトでも機能します。ただし、プロジェクトの今後に備えて手動でタグを変更する必要があります。
以下の手順で行ってください。
Lightweight2D タグのすべてのインスタンス を Universal2D に変更します。LightweightForward タグのすべてのインスタンス を UniversalForward に変更します。また、URP は LWRP とは異なるレンダーパイプラインタグを使用します。シェーダーにこのタグが含まれている場合は、シェーダーが機能するようにこのタグを手動で変更する必要があります。
LightweightPipeline タグのすべてのインスタンス を UniversalPipeline に変更します。URP では以下のシェーダー名が変更されたため、シェーダーファイルを手動で更新する必要があります。
UsePass 'Lightweight Render Pipeline/...' のすべてのインスタンスを UsePass 'Universal Render Pipeline/...' に変更します。URP は LWRP とは異なるインクルードパスを使用します。LWRP 7.x.x には転送インクルードが含まれているため、カスタムシェーダーは LWRP から URP にアップグレードされます。ただし、URP 7.x.x には転送インクルードが含まれていないため、インクルードパスを手動で更新する必要があります。
#include 'Packages/com.unity.render-pipelines.lightweight/xxx' のすべてのインスタンスを #include 'Packages/com.unity.render-pipelines.universal/xxx' に変更します。プロジェクトの .cs ファイルで LWRP 名前空間への参照を検索して新しい Universal 名前空間に置き換えます。
UnityEditor.Rendering.LWRP.xxx のすべてのインスタンスを UnityEditor.Rendering.Universal.xxx に変更します。URP バージョン 7.x は、Post-Processing Stack v2 (PPv2) および独自の統合ポストプロセスソリューション の両方に対応しています。プロジェクトにポストプロセスのバージョン 2 パッケージがインストールされている場合に URP の統合ポストプロセスソリューションを使用するには、プロジェクトに URP をインストールする前に、Post-Processing Stack v2 パッケージを削除する必要があります。URP をインストールしたら、ポストプロセスエフェクトを作成し直すことができます。
ポストプロセスエフェクトの LWRP から URP へのアップグレードは手動で行います。プロジェクト内の各ポストプロセスプロファイルを、URP のポストプロセス実装を使用して手動で再作成する必要があります。
現在、URP の統合ポストプロセスソリューションはカスタムポストプロセスエフェクトをサポートしていません。プロジェクトでカスタムポストプロセスエフェクトを使用している場合、現時点ではこれらを URP の統合ポストプロセスソリューションで再作成することはできません。カスタムポストプロセスエフェクトは、URP の今後のリリースでサポートされる予定です。
Unity では、自動アップグレード処理の一環として、URP が LWRP の依存関係としてインストールされます。LWRP を削除したときに URP が自動的に削除されないように、URP をプロジェクト自体の依存関係としてインストールする必要があります。
URP をプロジェクトの依存関係としてインストールするには:
"com.unity.render-pipelines.universal": "[Version number you noted earlier]"
例えば、URP のバージョンが 7.1.1 の場合、dependencies セクションは次のようになります。
"dependencies": {
"com.unity.render-pipelines.universal": "7.1.1",
...
}
これにより、プロジェクトの依存関係としてインストールされた URP のバージョンがマークされます。これで LWRP を安全に削除できます。