スクリプタブルレンダーパイプライン (Scriptable Render Pipeline、SRP) は、Unity の従来の ビルトインレンダリングパイプライン に替わるものです。 SRP を使用すると、C# スクリプトを使用してレンダリングの制御や調整ができます。このようにして、必要に応じてレンダリングパイプラインをわずかに変更したり、完全に作成しカスタマイズしたりすることができます。
SRP は、従来のビルトインレンダーパイプラインよりも細かくカスタマイズできるオプションを提供します。 また、構築済みの SRP の 1 つを使用して、特定のニーズに的を絞ることも可能です。
SRP の使用方法は、ビルトインのレンダリングパイプラインとは異なります。例えば、構築済み SRP には、新しいシェーダーライブラリが付属しています。これは、ビルトインレンダリングパイプラインの Lit シェーダーとカスタムの Lit シェーダーが SRP で動作しないためです。ビルトインの Lit シェーダは、軽量レンダーパイプライン (LWRP) と HD レンダーパイプライン (HDRP) の両方にアップグレードできます。
注意 これはプレビュー機能であり、変更されることもあります。この機能を使用するスクリプトは、将来のリリースで更新が必要な場合があります。この機能がプレビュー版である間は、本格的な制作に使用しないでください。
Unity は、HD レンダーパイプライン (High Definition Render Pipeline、HDRP) と 軽量レンダーパイプライン (Lightweight Definition Render Pipeline、LWRP) の 2 つの SRP フレームワークを使用するスクリプタブルレンダーパイプラインを構築しました。各レンダーパイプラインは、ユースケースシナリオとハードウェアによる特定の組み合わせを対象としています。構築済みレンダーパイプラインは、新しいプロジェクトのテンプレートとして利用できます。
これらのレンダリングパイプラインは両方とも、Unity の Package Manager ウィンドウを通してパッケージとして配信されます。どちらにも シェーダーグラフ と ポストプロセス パッケージが含まれています。
注意 LWRP と HDRP は互いに互換性がなく、どちらもビルトインレンダリングパイプラインと互換性がありません。開発を始める前に、プロジェクトでどのレンダリングパイプラインを使用するかを決定する必要があります。
HDRP は、コンソールや PC のようなハイエンドハードウェアをターゲットとしています。HDRP を利用すると、高レベルを求められるシナリオで現実的なグラフィックスを作成することができます。HDRP はコンピュートシェーダー技術を使用するため、互換性のある GPU ハードウェアが必要です。
HDRP は、AAA 品質のゲーム、自動車のデモ、建築用アプリケーション、その他、パフォーマンスよりも忠実度の高いグラフィックスを求められるものに適しています。HDRP は物理ベースのライティングとマテリアルを使用し、フォワードレンダリングとディファードレンダリングの両方をサポートします。
HDRP は 1 つのテンプレートで提供されます。
HDRP に関して詳細は、SRP GitHub Wiki の HDRP overview を参照してください。
LWRP は、さまざまなレベルのハードウェアで使用できます。 このテクノロジーはモバイルプラットフォームにスケール可能で、ハイエンドのコンソールや PC にも使用できます。LWRP を利用すると、高速でのレンダリングを高品質で行うことが可能です。LWRP は、単純化された物理的なライティングとマテリアルを使用します。
LWRP は、シングルパスフォワードレンダリングを使用します。このパイプラインを使用すると、複数のプラットフォームでリアルタイムのパフォーマンスを最適化できます。
LWRP は、LWRP と LWRP-VR という 2 つのテンプレートで利用できます。LWRP-VR には、VR 専用の事前に使用可能に用意された設定が付属しています。
ノート ビルトインとカスタム製の Lit シェーダーは、LWRP では機能しません。代わりに、LWRP には新しいスタンダードシェーダーが備わっています。 現在のプロジェクトを LWRP にアップグレードすると、ビルトインのシェーダーを新しいものにアップグレードできます。
LWRP の最新のドキュメントを見るには、Unity のパッケージマネージャーに移動し、Lightweight Render Pipeline パッケージに移動し、View Documentation をクリックします。
SRP、HDRP、LWRP をインストールするには、いく通りかの方法があります。新規、または作業中のプロジェクトで構築済み SRP を使用したい場合は、このセクションを読み進んでください。Unity に熟練していて、直接 SRP スクリプトを変更したいユーザーは、カスタム SRP の作成 を参照してください。
新規プロジェクトで、レンダーパイプラインをカスタマイズせずに HDRP または LWRP を使う場合、テンプレート を利用して新規のプロジェクトを作成できます。
テンプレートを利用してプロジェクトを作成するには、以下の手順を行います。
テンプレートの使用に関する詳細は、プロジェクトテンプレート を参照してください。
HDRP、LWRP、SRP の最新バージョンは、Package Manager システム 経由で既存のプロジェクトにダウンロードしてインストールすることができます。
既存のプロジェクトから SRP に切り替えると、多くの時間とリソースが消費されます。HDRP、LWRP、カスタム SRP はすべて、カスタムシェーダーを使用するため、ビルトインの Unity シェーダーと互換性がありません。手動で多くの要素を変更または変換する必要があります。代わりに、使用したい SRP を選択して新規プロジェクトを開始することを検討してください。
SRP を既存のプロジェクトにインストールするには、以下の手順を行います。
構築済みレンダリングパイプラインを使用する前に、レンダリングパイプラインアセットを作成し、プロジェクト設定に追加する必要があります。以下のセクションでは、SRP アセットの作成方法と、SRRP アセットを HDRP か LWRP に加える方法について説明します。
選択した SRP を適切に使用するには、スクリプタブルレンダーパイプラインアセットを作成する必要があります。
スクリプタブルレンダーパイプラインアセットはプロジェクトのグローバルなレンダリング品質設定を制御し、レンダーパイプラインのインスタンスを作成します。レンダーパイプラインインスタンスには中間リソースとレンダーパイプライン実装が含まれます。
複数のパイプラインアセットを作成して、異なるプラットフォームや異なるテスト環境の設定を保存することができます。
レンダーパイプラインアセットの作成は以下の手順で行います。
ノート HDRP と LWRP は異なるライティングモデルを使用しているため、互換性がありません。プロジェクトにはどちらか一方しか使用できません。ただし、同じレンダリングパイプラインで異なるアセットを使用することはできます。つまり、個々の設定を変更する代わりに、異なるアセットを使用して異なる設定をテストすることができます。
HDRP を使用するには、プロジェクトの Player と Graphics の設定を以下のように変更します。
ヒント: High Definition Render Pipeline Asset は常に Scriptable Render Pipeline フォルダーの外に保存します。こうすることによって、SRP GitHub リポジトリから新しい変更をマージする際に HDRP 設定を失わずに済みます。
LWRP を使用するには、プロジェクトの Graphics 設定を以下のように変更します。
ヒント LWRP アセットは常に Scriptable Render Pipeline フォルダーの外に保存します。こうすることによって、SRP GitHub リポジトリから新しい変更をマージする際に LWRP 設定を失わずに済みます。
SRP は GitHub のオープンプロジェクトで利用可能です。SRP を複製を作成しローカルのものを変更できます。
新規、または既存の Unity プロジェクトのローカルのスクリプトファイルを設定するには以下の手順で行います。
SRP リポジトリの複製を作成します。Project ディレクトリのルートで Assets フォルダーのとなりに複製を置きます。リポジトリの複製に関する情報は GitHub Help の リポジトリをクローンする を参照してください。
Unity のバージョンと一致するブランチをチェックアウトします。git checkout
コマンドを使用し、ブランチ名をタイプします。
git submodule update --init
コマンドを使用して、SRP に関連するすべてのサブモジュールを見つけて初期化します。
プロジェクトマニフェストで、dependencies
を更新すると、SRP パッケージを指します。 プロジェクトマニフェストに関して詳しくは Package Manager ドキュメント を参照してください。以下はスクリプトの 1 例です。
{
"dependencies": {
"com.unity.postprocessing": "file:../ScriptableRenderPipeline/com.unity.postprocessing",
"com.unity.render-pipelines.core": "file:../ScriptableRenderPipeline/com.unity.render-pipelines.core",
"com.unity.shadergraph": "file:../ScriptableRenderPipeline/com.unity.shadergraph",
"com.unity.render-pipelines.lightweight": "file:../ScriptableRenderPipeline/com.unity.render-pipelines.lightweight"
}
}
Unity でプロジェクトを開きます。パッケージはローカルにインストールされています。統合された開発環境で Project Solution を開くと、スクリプトを直接デバッグし修正することができます。