スクリプタブルレンダーパイプライン (SRP) は、Unity の 従来のビルトインレンダーパイプライン に替わるものです。SRP を使用すると、C# スクリプトを使用してレンダリングの制御や調整ができます。このようにして、必要に応じてレンダーパイプラインをわずかに変更したり、完全に作成しカスタマイズしたりすることができます。
SRP は、従来のビルトインレンダーパイプラインよりも細かくカスタマイズできるオプションを提供します。 また、事前に構築済みの SRP の 1 つを使用して、ニーズに特化して対応します。
SRP を使用することは、ビルトインレンダーパイプラインを使用することとは異なります。例えば、ビルトインの Unity シェーダーは SRP で使用できないため、構築済み SRP には新しいシェーダーライブラリが付属しています。
注意 これはプレビュー機能であり、変更されることもあります。この機能を使用するスクリプトは、将来のリリースで更新が必要な場合があります。この機能がプレビュー版である間は、本格的な制作に使用しないでください。
Unity は、高画質レンダーパイプライン (High Definition Render Pipeline、HDRP) と 軽量レンダーパイプライン (Lightweight Definition Render Pipeline、LWRP) の 2 つの SRP フレームワークを使用するスクリプタブルレンダーパイプラインを構築しました。各レンダーパイプラインは、ユースケースシナリオとハードウェアによる特定の組み合わせを対象としています。構築済みレンダーパイプラインは、新しいプロジェクトのテンプレートとして利用できます。
これらのレンダーパイプラインはいずれもパッケージとして提供され、Shader Graph と Post-Processing パッケージが含まれています。
注意: HDRP を使用して作成されたプロジェクトは、LWRP や Unity の従来のビルトインレンダーパイプラインと互換性がありません。開発を開始する前に、プロジェクトで使用するレンダーパイプラインを決める必要があります。
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 専用の事前に使用可能に用意された設定が付属しています。
注意: ビルトインとカスタム製のライトシェーダーは、LWRP では機能しません。代わりに、LWRP には新しいスタンダードシェーダーが備わっています。 現在のプロジェクトを LWRP にアップグレードすると、ビルトインのシェーダーを新しいものにアップグレードできます。
LWRP の詳細については、 SRP GitHub Wiki の LWRP overview を参照してください。
SRP、HDRP、LWRP をインストールするには、いく通りかの方法があります。新規、または作業中のプロジェクトで構築済み SRP を使用したい場合は、このセクションを読み進んでください。Unity に熟練していて、直接 SRP スクリプトを変更したいユーザーは、カスタム SRP の作成 を参照してください。
新規プロジェクトで、レンダーパイプラインをカスタマイズせずに HDRP または LWRP を使う場合、テンプレート を利用して新規のプロジェクトを作成できます。
テンプレートを利用してプロジェクトを作成するには、以下の手順を行います。
テンプレートの使用に関する詳細は、プロジェクトテンプレート を参照してください。
HDRP、LWRP、SRP の最新バージョンは、Package Manager システム 経由で既存のプロジェクトにダウンロードしてインストールすることができます。
既存のプロジェクトから SRP に切り替えると、多くの時間とリソースが消費されます。HDRP、LWRP、カスタム SRP はすべて、カスタムシェーダーを使用するため、ビルトインの Unity シェーダーと互換性がありません。手動で多くの要素を変更または変換する必要があります。代わりに、使用したい SRP を選択して新規プロジェクトを開始することを検討してください。
SRP を既存のプロジェクトにインストールするには、以下の手順を行います。
構築済みレンダーパイプラインのいずれかを使用する前に、Render Pipeline Asset を作成しプロジェクト設定に加える必要があります。以下のセクションでは、 SRP Asset の作成方法と、それを HDRP または LWRP に加える方法を説明します。
選択した SRP を正しく使用するために、スクリプタブルレンダーパイプラインアセットを作成する必要があります。
スクリプタブルレンダーパイプラインアセットはプロジェクトのグローバルなレンダリング品質設定を制御し、レンダーパイプラインのインスタンスを作成します。レンダーパイプラインインスタンスには中間リソースとレンダーパイプライン実装が含まれます。
複数のパイプラインアセットを作成して、異なるプラットフォームや異なるテスト環境の設定を保存することができます。
レンダーパイプラインアセットの作成は以下の手順で行います。
HDRP を使用するには、プロジェクトの Player と Graphics の設定を以下のように変更します。
ヒント: High Definition Render Pipeline Asset は常に Scriptable Render Pipeline フォルダーの外に保存します。こうすることによって、SRP GitHub リポジトリから新しい変更をマージする際に HDRP 設定を失わずに済みます。
LWRP を使用するには、プロジェクトの Graphics 設定を以下のように変更します。
ヒント: Lightweight Render Pipeline Asset は常に 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 を開くと、スクリプトを直接デバッグし修正することができます。