URP 入門
Tutorial
·
intermediate
·
+10XP
·
10 mins
·
(36)
Unity Technologies
ユニバーサルレンダーパイプライン (URP) の目標は、幅広いプラットフォーム、VR、およびリアルタイムのライティングニーズが限られたゲームをターゲットとする開発者に、最適なパフォーマンスを提供することです。URP は、ライティングとシェーディングに関していくつかのトレードオフを行うことで実現しています。
Languages available:
1. URP 入門
本チュートリアルは、Unity 2019.4 LTS を使用して検証されています。
ユニバーサルレンダーパイプライン (URP) の目標は、幅広いプラットフォーム、VR、およびリアルタイムのライティングニーズが限られたゲームをターゲットとする開発者に、最適なパフォーマンスを提供することです。URP は、ライティングとシェーディングに関していくつかのトレードオフを行うことで実現しています。

画像 01:URP ライティングのサンプル
URP は、オブジェクトごとに 1 つのリアルタイムシャドウのライトとライトカリングを行い、シングルパスのフォワードレンダリングを行います。これに対し、従来のフォワードレンダリングのパイプラインでは、範囲内のピクセルライトごとに追加のパスを実行していました。これは、URP によってドローコールが少なくなることを意味しています。また、Shader Graph ツールでもサポートされており、シェーダーオーサリングのワークフローにさらなるメリットをもたらします。

画像 02:ユニバーサルレンダーパイプラインを用いたサンプルシーン
2. URP を使った新規プロジェクトの作成
URP を使って新しいプロジェクトを始めよう
1. Unity Hub を開き、新しいプロジェクトを作成します。
2. 新しいウィンドウで、Universal RP テンプレートを選択します (画像 03)。

画像 03:URP での新規プロジェクトの作成
3. プロジェクトに名前をつけて、プロジェクトの場所を設定します。
4. 最後に、Create をクリックします。
これが完了すると、URP を使った新しい Unity プロジェクトの準備が整います。
3. 既存のプロジェクトを URP 使用にアップグレード
既存のプロジェクトをアップグレードするには、まず Unity Package Manager を使って URP をダウンロードする必要があります。
1. Window > Package Manager と進み、パッケージマネージャーを開きます(画像 04)。

画像 04:Package Manager ウィンドウ
2. 左上の All Packages が選択されていることを確認してください。
3. リストの中から「Universal RP」を見つけて選択します。
4. Install をクリックします。
パッケージマネージャーからパッケージがインストールされたら、Scriptable Render Pipeline Graphics の設定フィールドに URP Asset を追加する必要があります。
1. Edit > Project Settings をクリックして、Project 設定ウィンドウを開きます。
2. 新しいウィンドウの左側にある Player 設定を選択します。
3. Player Settings の Other Settings セクションで、Color Space を Linear に設定します (画像 05) 。

画像 05:Player Settings 内で Color Space を Linear に設定
4. パイプラインアセットを作成するには、Asset ドロップダウンを選択して、Create > Rendering > Pipeline Asset の順に選択します。
5. Edit > Project Settings とクリックして、Project 設定ウィンドウを開きます。
6. 新しいウィンドウの左側にある Graphic 設定を選択します。
7. Graphics Inspector で丸いダイヤルをクリックし、UniversalRenderPipelineAsset を選択します(画像 06) 。

画像 06:UniversalAsset を Scriptable Render Pipeline Settings に設定
これで、既存のプロジェクトが Universal Render Pipeline を使えるようになりました。
4. まとめ
URP は、ローエンドのデバイスではサポートされていない機能に制限を加えたり、無効にしたりすることで、標準化を図るものです。これにより、開発者はプロジェクトの最適化に悩むことなく、より多くの人に向けたプロジェクトの開発に集中することができます。