URP マテリアルの作成 - 2019.3
Tutorial
·
Beginner
·
+10XP
·
10 mins
·
Unity Technologies

ユニバーサルレンダーパイプライン (URP) は、モバイル機器やローエンドのコンソール、PC など、従来はパフォーマンスに制約のあったプラットフォームでのリアルタイムパフォーマンスを最適化することを目的としています。URP は、パイプラインのライティングとシェーディングのセクションでいくつかのトレードオフを行うことで実現しています。
広範囲のモバイルデバイスやバーチャルリアリティをターゲットにしたい場合や、リアルタイムライティングの必要性が低いプロジェクトの場合は、URP の使用が非常に有益です。
本チュートリアルでは、既存のプロジェクトやマテリアルを作成し、URP にアップグレードする方法を学びます。
Languages available:
1. URP マテリアルの作成
ユニバーサルレンダーパイプライン (URP、Universal Render Pipeline) の詳細はこちらからご覧いただけます。
Unity 2018.3 以前のバージョンをお使いの方はこちらをご覧ください。Unity 2018.4 をお使いの方はこちらをご覧ください。Unity 2019.1 をお使いの方はこちらをご覧ください。Unity 2019.2 をお使いの方はこちらをご覧ください。
Unity 2018.1 で導入されたユニバーサルレンダーパイプライン (URP) は、モバイルデバイスやローエンドのコンソールやPCなど、従来はパフォーマンスに制約があったプラットフォームでのリアルタイムパフォーマンスを最適化することを目的としています。これは、パイプラインのライティングとシェーディングのセクションでいくつかのトレードオフを行うことで実現しています。
広範囲のモバイルデバイスやバーチャルリアリティをターゲットにしたい場合や、リアルタイムライティングの必要性が低いプロジェクトの場合は、URP の使用が非常に有益です。
2. URP を使った新規プロジェクトの作成
URP を使って新しいプロジェクトを開始するには:
- Unity Hub を開き、New Project ボタンをクリックします。
- Template セクションで、Universal RP テンプレートを選択します (画像 01)。

画像 01:URP を使った新規プロジェクトの作成
- Create Project ボタンをクリックします。
この作業が完了すると、URP を使った新規 Unity プロジェクトの準備が整います。
3. URP 使用に既存のプロジェクトをアップグレード
既存のプロジェクトをアップグレードするには、まず Unity のパッケージマネージャを使って URP をダウンロードします。
- Window > Package Manager と進んで Package Manager を開きます (画像 02)。

画像 02:Package Manager ウィンドウ
- 左側の All ボタンをクリックします。
- Universal RP を探して選択します。
- Install をクリックします。
パッケージマネージャーからパッケージがインストールされたら、Scriptable Render Pipeline Graphics の設定フィールドに URP Asset を追加する必要があります。
- Project ビューで右クリックし、Create > Rendering > Universal Render Pipeline > Pipeline Asset (Forward Renderer) の順に選択します (画像 03)。

画像 03:URP アセットの作成
- Edit > Project Settings と選択して、Project 設定ウィンドウを開きます。
- 新規ウィンドウの左側にある Player 設定を選択します。
- Player 設定で Color Space を Linear に設定します (画像 04)。

画像 03:Player 設定で Color Space を Linear に設定
- Project Settings ウィンドウの左側にある Graphics を選択します。
- Graphics の Inspector で、UniversalRenderPipelineAsset を Scriptable Render Pipeline フィールドにドラッグアンドドロップします (画像 05)。

画像 05:UniversalRenderPipelineAsset を Scriptable Render Pipeline フィールドへ配置
これで、既存のプロジェクトで URP が使用できるようになりました。
4. URP マテリアルの作成
URP は独自のレンダリングプロセスを持っており、それを考慮して書かれたシェーダーが必要となります。Unity では、新しいカテゴリーに配置するスタンダードシェーダーのセットを開発しました。
- プロジェクト内で右クリックし、Create > Material と選択します。
- プロジェクトの新規マテリアルのデフォルトのシェーダーは、Universal Render Pipeline/Lit です。
- Inspector ウィンドウの New Material の下にある Shader ドロップダウンをクリックします。
- Universal Render Pipeline に移動して、利用可能なシェーダーのサブメニューを展開します (画像 06)。

画像 06:ユニバーサルレンダーパイプライン (URP) のシェーダー
いくつかのシェーダーが用意されていることに気づくでしょう。
- 2D:2D プロジェクトの開発には、このシェーダーを使用します。
- Autodesk Interactive:シェーダーが最適化され、オートデスクのアプリケーションで調整を行ったときにシェーダーがライブで更新されるようになり、その逆も同様です。
- Nature:Speed Trees に特化したシェーダーが含まれています。
- Particles:パーティクル用の軽量シェーダーが 4つ入っています。
- Terrain:Unity の Stock Terrain シェーダーと同じです。
- Baked Lit:スタイリッシュなゲームや、ライトマップやライトプローブを用いてベイクしたライティングのみを必要とするアプリには、このシェーダを使用します。このシェーダーは Physically Based Shading を使用しておらず、リアルタイムライティングも行わないため、リアルタイムに関連するシェーダーのキーワードやバリアントはすべてシェーダーコードから取り除かれており、計算が速くなっています。
- Lit:Lit シェーダーは、石、樹木、ガラス、プラスチック、金属などの実在する表面をフォトリアリスティックなクオリティでレンダリングすることができます。光のレベルや反射の様子がリアルに表現され、明るい日差しや暗い洞窟など、さまざまなライティング条件で適切に反応します。このシェーダーは、URP の中でも最も計算量の多いシェーディングモデルを使用しています。
- Simple Lit:フォトリアリズムよりもパフォーマンスが重要な場合に、このシェーダを使用します。このシェーダーは、ライティングに簡単な近似値を使用しています。
- Unlit:グローバルイルミネーションをサンプリングするオプションを備えた Unlit シェーダーです。Unity の Stock Unlit シェーダーに代わるものです。
Unity のすべての Stock Unlit シェーダーはユニバーサルパイプラインで動作します。つまり、従来のパーティクル、UI、スカイボックス、Splite シェーダーをパイプラインで使用することができ、追加の設定は必要ありません。また、URP がアクティブなレンダリングに設定されている場合、すべてのゲームオブジェクトは正しいシェーダーで作成されます。パイプラインはデフォルトのマテリアルを上書きします。
5. マテリアルのアップグレード
Stock Lit シェーダーを Universal シェーダーにアップグレードします:
- ドロップダウンの Edit で、Rendering Pipeline > Universal Render Pipeline > Upgrade Project Materials to UniversalRP Materials か、Upgrade Selected Materials to UniversalRP Materials を選択します。
- アップグレードによってプロジェクト内のマテリアルが上書きされることを警告するウィンドウが表示されます。アップグレードを行う前にバックアップを取っていることを確認し、Proceed をクリックします (画像 07)。

画像 06:Materials ウィンドウを上書きする
このプロセスでは、プロジェクト内のすべてのマテリアルをアップグレードすることも、選択したマテリアルのみをアップグレードすることもできます。
6. まとめ
これで、既存のプロジェクトやマテリアルを作成したり、URP にアップグレードする方法について、理解が深まったと思います。このパイプラインは、パフォーマンスと使いやすさに重点を置いており、開発者はパフォーマンスに制約のあるプラットフォーム向けにプロジェクトを作成することができます。