UIパネルの後ろの背景だけをぼかす【URP】

unity技術

UI_Image」を使用してUI以外に「ぼかし」を適用させる方法です。
イメージ自体をぼかして、それ以下のものをぼけているようにみせる、といったURP用の手法です。

簡易版

  • Unified-Universal-Blur-mainをダウンロードし、解凍。
  • フォルダ名を「UniversalBlur」に変更し、packagesフォルダに移動。
  • 起動時の警告は無視。
  • PC_Renderer」に「Renderer Features」を追加。
  • ImageのMaterialを「UniversalBlurUI」にする。

パッケージの導入(ZIP版)

1. GitHubページを開く
https://github.com/lukakldiashvili/Unified-Universal-Blur

2. Code → Download ZIP でダウンロード

3. ZIPを解凍(Unified-Universal-Blur-main フォルダができる)

4. Unity > Packagesフォルダ内に移動させる(フォルダ名は分かりやすく「UniversalBlur」に変更)

Package Manager」の使用時注意
・GitのURLから直接インストールにはGitをまずインストール必要あり。
・diskから直接インストールするとフォルダを移動でみつからないエラーが起きる

解決法は、ダウンロードしたフォルダをpackagesフォルダに移動させること。
なので、最初からインストールを行わずに、packagesフォルダに移動させるだけでよいということになります。

起動時の警告

起動時に一度警告が出ます。

Unified Universal BlurはUnity 6で動作しますが、
URPの新しいRender Graph APIへの完全移行がまだ途中のため、このようなObsolete警告が出ます。

多くの人がこのパッケージをUnity 6で使っており、実際のぼかし効果は正常に動作します。
とのこと。by Grok

ぼかしを作成する手順

Renderer Featuresの追加

1. Project Settings > Graphicsを開く

現在使用しているURP設定を選択します。
Default Render Pipeline」をクリックすると、使用しているURP設定が選択されます。
(ここではPC_RPAsset)

2. Renderer(Renderer Data)を選択

PC_RPAsset」のインスペクター「Render List」をダブルクリックします。
そのまま「PC_Renderer」のインスペクターに変わります。

3. Renderer Featuresを追加

インスペクター最下部にある「Add Renderer Feature」で「Universal Blur Feature」を追加します。
これで「ぼかし設定」がインスペクターに追加されます。

ぼかし設定

設定項目解説調整の目安・ポイント
Iterationsぼかしの繰り返し回数。
回数が多いほどぼかしが強くなり滑らかになる。(Kawase Blur方式)
2〜4 が標準的。
1で軽め、5以上でかなり強いぼかし。
性能に大きく影響するので、まずは2〜3から。
Downsampleぼかし処理を行う解像度を下げる。
(ダウンサンプリング)
値を上げると処理が軽くなるが、ぼかしが粗くなる。
1〜2 がおすすめ。
モバイルでは2以上に上げると軽快。
0や1で高品質。
Enable Mip Mapsミップマップを有効にしてぼかしに使うかどうか。
オンにするとより自然で高品質なぼかしになる場合があるが、若干重くなる。
通常はオン推奨。
オフにすると少し硬いぼかしになる。
Scaleぼかしの強さのスケール倍率。
全体的なぼかしの強さを調整。
0.5〜2.0くらい。
1.0が標準。
Offsetぼかしのサンプリング位置のオフセット。
通常はほとんど触らない。
デフォルト(0)のままでOK。
特殊な場合のみ調整。
ScaleBlurWithぼかしの強さを画面解像度に合わせて自動スケールするかどうか。Screen Height や Resolution に設定すると、解像度が変わってもぼかし感が安定。
ScaleReferenceSize上記の ScaleBlurWith で基準にする解像度。1920×1080 などの基準解像度を入力。
blurTypeぼかしの種類を選択。
(Gaussian / Kawase など)
通常は Kawase が軽快でUI背景向き。
Gaussianはより高品質だが重め。
InjectionPointこのぼかし処理をパイプラインのどのタイミングで実行するか。Before Post Processing や After Rendering がUI背景ぼかしでは一般的。

UIパネル側の設定

1. UI_Imageを作成

画面全体に適用させるため、画面いっぱいに広げておきます。
逆にいうと、任意のサイズだけのぼかしも可能になります。

Canvas」のRender ModeScreen Space – Overlay に設定します。

2. Imageの設定

Material」に「UniversalBlurUI」を指定します。
※Unified Blur > Materialsフォルダ内にあります。
フォルダ名は移動時に UnifiedBlur や Unified Universal Blur などになっているはずです。
探してみてください。

これで「ぼかし」が適用されます。
ぼかし設定項目で再調整が可能なので、任意の設定にしましょう。

コメント