以前、公式のURPサンプルプロジェクトを取り上げました。
内容は異なりますが現在のURPではPackage Managerから公式のサンプルを入手することができるようになりました。
今回紹介するURP12からのサンプルではURP12からの新機能を使ったものも含まれて、新機能を触る際の参考にもなると思います。
環境
Unity 2021.2.0f1
Universal RP 12.1.0
導入方法
Package ManagerのUniversal RPのSamplesから導入することができます。
注意点として、URPのパッケージを入れた状態じゃないとSamplesは表示されません。
内容紹介
Camera Stacking
カメラスタッキングの機能を使ったサンプルになっています。
つまり別のカメラの映像をメインカメラの映像に重ねて演出するサンプルですね。
以前紹介したURPサンプルの中にも同じような実装のものが含まれていました。
Mixed field of view
異なるFOV(Field of view)のカメラ映像を重ねるカメラスタックの使用例です。ここではFPS的な視点をFOVの異なる風景用のカメラと武器用のカメラを別々に用意して作成しています。
Split screen
カメラスタックを使ってポストプロセスの影響範囲を制御している例です。
ポストプロセスの有効無効はカメラ側で設定できるので、それを活用しています。例えば左の円柱側のカメラ映像は下側の文字にまでエフェクトがかかって薄くなっていますが、右の立方体側の映像は文字にはエフェクトがかかっていません。これは右側はポストプロセスを無効化したカメラに文字を描画、重ねて実装しています。
(シーン名はSplit screenと書かれていますが、映像分割は標準でカメラに備わっているViewport rectで実装しています)
3D skybox
カメラスタックで背景用の映像を重ねて活用している例です。
Renderer Features
URP Renderer Feature | Universal RP | 12.1.0
RendererFeaturesを用いてどのようなことができるかの実装例のテストシーンが収録されていて、Ambient occlusion以外の4シーンはShader graphも活用して作成されています。
Ambient occlusion
Renderer Featuresでscreen space ambient occlusion (SSAO)を使用するテストシーンです。
Glitch effect
レイヤーで指定したオブジェクトに対してグリッチエフェクトをかけるテストシーンです。
グリッチエフェクトはSceneColorを使ってShaderGraphで作成したマテリアルによって実装されています。
Keep frame
パーティクルを利用して渦のようなエフェクトを作成している例です。 フレーム間の色を保存しておき、保存された色が時間経過で消えるようにしているみたいです。
Occlusion effect
URPのドキュメントでも実装の仕方が詳しく書かれている、 遮蔽されている物体の描画を変化させるエフェクトの実装例です。
このシーンではオレンジのCubeの見え方を変化させています。
Trail effect
物体の通った場所をカメラで取得してテクスチャに情報として描き込んでおき、砂場の凹みとして適用しています。
Lens Flares
レンズフレアエフェクトの作成・使用例を含んだシーンになっています。
Decals
URP12から使用可能になったDecalの使用例のシーンです。
Blob shadows
キャラクタの足元に簡易的な影を生成する使用例になっています。
Paint splat
Decalに使用する画像を固定ではなく、シェーダから生成している例です。
詳細は省きますが、ランダムにインクのようなエフェクトを生成するのにも工夫して作成されています。
Proxy lighting
Blob shadowsの実装に加えて、Decalでライトを実装する例のシーンです。
Shaders
URPのLitマテリアルの作例を見ることができるシーンです。
おわりに
URPの学習ソースは限られていたので、公式でこういったものを配布してくれていると助かりますね。
今後も何かしらの新機能が実装されたときに作例のようなものが示されると使いやすくて良いですね。