はじめに
公式の動画を見ていたところURPで利用可能なレンズフレアの紹介をされていて、面白そうだったので試してみました。
公式ドキュメントにはURP 12 (Unity 2021.2)のNew featureとして紹介されていますね。
docs.unity3d.com
厳密にはUniversal RP 12.0.0から実装されているので、Unity 2021.2.0b14以降なら利用可能だと思います。

今回はこちらの画像を実現するためのやり方を紹介したいと思います。


環境
Unity 2021.2.18f1
Universal Render Pipeline 12.1.6
Lens Flare (SRP)コンポーネントをアタッチ
Lens Flare (SRP)コンポーネントを光らせたいゲームオブジェクトにアタッチします。(例. Directional Light)

ただコンポーネントをアタッチするだけでは動作はせず、必ずLens Flare Data SRPというアセットを参照させる必要があります。
Lens Flare Data SRPアセットの作成方法
Projectビューから、任意の場所にてCreate -> Lens Flare (SRP)を選択し、アセットを作成します。

またコンポーネントと紐づけるにはドラッグ&ドロップしてください。


Lens Flare(SRP)のプロパティ
General
| プロパティ | 意味 |
|---|---|
| Lens Flare Data | このコンポーネントが利用するLens Flare (SRP) Data asset。 |
| Intensity | レンズフレアの強さ。 |
| Scale | レンズフレアの大きさ。 |
| Screen Attenuation Curve | 画面端からの距離に応じてレンズフレアの効果を弱める。 |
Occlusion
| プロパティ | 意味 |
|---|---|
| Enable | 深度バッファに基づきレンズフレアを部分的に弱める。 |
| Allow Off Screen | カメラの視野外のレンズフレアが現在の視野に影響を与えるようする。 |
Lens Flare Data SRPの設定
レンズフレアのカスタマイズをするにはLens Flare Data SRPにレンズフレアのデータを設定しなくてはならないのですが、正直かなり難しいです。
冒頭で紹介した動画でも同じことをお話されていて、サンプルのLens Flare Data SRPを利用すると良いとのことでした。
ということで私も同様にサンプルから引っ張ってきたいと思います。
サンプルのインポート
Lens FlareのサンプルはPackage ManagerからUniversal RPを開き、SamplesにあるURP Package Samplesをインポートします。

またLensFlaresフォルダ以外のサンプルは利用しなければ削除しちゃってOKです。
Lens Flare Data SRPはSamples/Universal RP/〇〇/URP Package Samples/LensFlares/LensFlarePresetsの中に入ってますね。


面白い応用例
動画でも言われていましたが、必ずしもLight関連のゲームオブジェクトに利用しなければならないわけではなく、様々な場所で利用できます。
例えばアニメに登場する謎の光とかですね。

我が人生に一片の悔いなし。