【Unity 6】URPのポストプロセッシング入門|Global Volumeで画面の雰囲気を整えよう

広告

ゲーム画面を、もう少し「それっぽく」見せたい。そんなときに使うのがポストプロセッシングです。カメラが描いた映像に対して、あとから光のにじみ、色の調整、画面の端の暗がりなどの効果をかける仕組みです。

Unity 6のURP(Universal Render Pipeline)では、この機能が最初から入っています。追加のパッケージをインストールする必要はありません。この記事では、テンプレートに置かれているGlobal Volumeを例に、設定の流れと主なエフェクトを紹介します。

使用環境は、Unity 6.3 LTS(6000.3)のURPテンプレートです。

1. テンプレートのGlobal Volumeを見てみよう

URPのテンプレートからプロジェクトを作ると、シーンのHierarchyにGlobal VolumeというGameObjectがあります。これを選ぶと、Inspectorにポストプロセッシングの設定が並びます。

Volumeコンポーネントの項目

  • Mode:Globalはシーン全体に効果をかけます。Localにすると、決めた範囲に入ったときだけ効果がかかります。
  • Weight:このVolumeの効果をどれくらい反映するかを決めます。1なら全部、0なら無効です。
  • Priority:Volumeが複数あるときの優先度です。値が大きいほうが優先されます。
  • Profile:効果の設定を保存するファイルです。この画面ではSampleSceneProfileです。

Override(オーバーライド)とは

Profileの下に並んでいるTonemapping、Bloom、Motion Blur、VignetteがVolume Overrideです。名前のとおり、初期値を「上書き」して効果を調整するための設定です。

ここで大事なのは、各項目の左にあるチェックボックスです。チェックを入れた項目だけが上書きされます。画面のBloomでは、ThresholdとIntensityにチェックが入っていて値が変えられます。TintやClampはチェックが外れているので、グレーアウトしたままです。

エフェクト名の左のチェックを外すと、そのエフェクト全体がオフになります。この画面ではMotion Blurがオフです。オン・オフを切り替えながら、Gameビューの見た目の違いを確かめてみてください。

2. 新しいシーンで一から設定する

テンプレート以外のシーンや、新しく作ったシーンでは、ポストプロセッシングを自分で設定します。手順は次のとおりです。

  1. Main Cameraを選び、InspectorでPost Processingを有効にします(Renderingの項目内にあります)。
  2. メニューのGameObject > Volume > Global VolumeでVolumeを追加します。
  3. VolumeコンポーネントのProfileの横にあるNewを押して、新しいProfileを作ります。
  4. Add Overrideを押し、Post-processingの中から使いたいエフェクト(例:Bloom)を選びます。
  5. 追加したエフェクトの項目にチェックを入れ、値を調整します。

プロジェクト全体の基本設定は、Project Settings > Graphics > URPにあるDefault Volume Profileで決められます。

以前の「Post Processing」パッケージとの違い

ネットの古い記事では、Package Managerで「Post Processing」をインストールし、Post Process VolumeとPost Process Layerを使う手順が紹介されています。これは、URPの前の世代のレンダリング方式(Built-in Render Pipeline)向けの仕組みです。URPでは使えません。URPでは、この記事で紹介したVolumeコンポーネントを使います。

3. 主なエフェクトと設定項目

URPで使える主なエフェクトを、設定できる項目とあわせて紹介します。

3.1 Tonemapping(トーンマッピング)

明るさの範囲を整えて、画面の見た目の土台を作ります。設定はModeの選択です。

  • None:トーンマッピングをかけません。
  • Neutral:色相や彩度への影響を抑えて、明るさの範囲を整えます。色の調整をする前の土台に向いています。
  • ACES:コントラストが強めで、映画のような見た目になります。色相や彩度にも影響します。

3.2 Bloom(ブルーム)

明るい部分から光がにじみ出る効果です。太陽、街灯、魔法のエフェクトなどを印象的に見せられます。

  • Threshold:この明るさより明るい部分にだけブルームをかけます。
  • Intensity:効果の強さです。0のときは効果がかかりません。
  • Scatter:にじみの広がりです。大きいほど広く広がります。
  • Tint:ブルームに色をつけます。
  • Clamp:ブルームの計算に使う明るさの上限です。
  • High Quality Filtering:より滑らかにする代わりに、処理が重くなります。
  • Filter:Gaussian、Dual、Kawaseから選べます。Dualはモバイル向けの軽い方式です。
  • Lens Dirt:レンズの汚れのテクスチャをかけます。

テンプレートの例では、Thresholdが1、Intensityが0.25、Scatterが0.5です。まずは控えめな値から始めて、少しずつ上げるのがおすすめです。

3.3 色を調整するエフェクト

URPでは、色の調整は1つのエフェクトではなく、複数のOverrideに分かれています。まずはColor Adjustmentsを使ってみましょう。

  • Post Exposure:画面全体の明るさを調整します。
  • Contrast:明暗の差を強めたり弱めたりします。
  • Color Filter:画面全体に色をかけます。
  • Hue Shift:すべての色の色相をずらします。
  • Saturation:色の鮮やかさを調整します。

さらに細かく調整したいときは、White Balance、Split Toning、Channel Mixer、Color Curves、Color Lookupなども用意されています。

3.4 Vignette(ビネット)

画面の端を暗くして、視線を中央に集める効果です。

  • Color:端にかける色です。
  • Center:中心の位置です。画面の中央は[0.5, 0.5]です。
  • Intensity:効果の強さです。
  • Smoothness:境目の滑らかさです。
  • Rounded:有効にすると、円形のビネットになります。

3.5 Depth of Field(被写界深度)

ピントが合っている範囲を決めて、それ以外をぼかす効果です。Modeによって使える項目が変わります。

  • Off:効果をかけません。
  • Gaussian:処理が軽い方式です。項目は、ぼけ始める距離のStart、最大までぼける距離のEnd、Max Radius、High Quality Samplingです。
  • Bokeh:実際のカメラに近い方式です。Focus Distance(ピントを合わせる距離)、Focal Length(焦点距離)、Aperture(絞り)のほか、Blade Count、Blade Curvature、Blade Rotationがあります。

Bokehでは、Focal Lengthが大きいほど、Apertureの値が小さいほど、ピントの合う範囲が狭くなります。

3.6 Motion Blur(モーションブラー)

動きにあわせて画面をぼかし、スピード感を出す効果です。

  • Mode:カメラの動きだけを使うCamera Onlyなどから選びます。
  • Quality:品質です。低いほど軽くなります。
  • Intensity:効果の強さです。
  • Clamp:ぼかしの長さの上限です。

3.7 Chromatic Aberration(色収差)

画面の端などで色がずれて見える、レンズ特有の効果です。項目はIntensityの1つだけです。レトロな雰囲気を出したいときに少しだけ使います。

3.8 Film Grain(フィルムグレイン)

フィルム写真のようなざらつきを加える効果です。

  • Type:ざらつきの種類です。Customを選ぶと、自分のテクスチャを使えます。
  • Texture:Customのときに設定するテクスチャです。
  • Intensity:効果の強さです。
  • Response:明るい部分のノイズの出方です。大きいほど、明るい部分のノイズが少なくなります。

4. Ambient Occlusionは別の仕組み

物の接する部分や隙間に影を足して、立体感を出すのがAmbient Occlusion(アンビエントオクルージョン)です。URPでは、SSAO(Screen Space Ambient Occlusion)という名前で、Renderer Featureとして用意されています。ここまでのエフェクトとは違い、Volumeの中には出てきません。Volumeの設定とも連動しません。

  1. Projectウィンドウで、URPアセットが使っているRendererを選びます。
  2. InspectorでAdd Renderer Featureを押し、Screen Space Ambient Occlusionを選びます。
  3. 追加されたSSAOの項目を調整します。

主な項目は次のとおりです。

  • Method:SSAOで使うノイズの種類です。
  • Intensity:暗くする効果の強さです。
  • Radius:影を計算する範囲の半径です。小さいほど軽くなります。
  • Falloff Distance:カメラからこの距離より遠い物には、SSAOがかかりません。
  • Direct Lighting Strength:直接光が当たっている部分での、効果の見えやすさです。
  • Source:法線(面の向き)の情報をどこから取るかを選びます。
  • After Opaque:不透明な物の描画のあとに、SSAOを計算します。
  • Blur Quality:ぼかしの品質です。
  • Samples:1ピクセルあたりのサンプル数です。多いほど滑らかですが、重くなります。

5. 場所ごとに効果を変える(Local Volume)

洞窟の中だけ暗くしたい、ボス部屋だけ色合いを変えたい、といったときはLocal Volumeを使います。

  1. GameObject > Volume > Box VolumeでVolumeを追加します。
  2. VolumeコンポーネントのProfileでNewを押し、Overrideを追加します。
  3. Box ColliderのSizeとCenterを調整して、効果をかけたい範囲に合わせます。

カメラがColliderの範囲に入ると、そのVolumeのOverrideが使われます。Global Volumeと組み合わせて、場所によって見た目を変えられます。

6. 効果が出ないときのチェックリスト

  • カメラのPost Processingが有効になっていますか。
  • VolumeのProfileが設定されていますか。
  • Overrideのエフェクト名の左のチェックが入っていますか。
  • 調整したい項目の左のチェックが入っていますか。
  • VolumeのWeightが0になっていませんか。
  • BloomのIntensityが0のままになっていませんか。
  • カメラのVolume Maskに、Volumeのあるレイヤーが含まれていますか。
  • Post Process Layerなど、古いパッケージの手順で進めていませんか。

7. 使うときのコツ

処理の重さに気をつける

ポストプロセッシングは、画面全体にかける処理なので、特にモバイルでは負担になります。必要なエフェクトだけを使いましょう。Depth of Fieldは、処理の軽いGaussianが低スペックな端末向けです。BloomはHigh Quality Filteringをオフにすると軽くなります。

VRでは使うエフェクトを選ぶ

VRでは、Lens Distortion、Chromatic Aberration、Motion Blurは酔いやすいので避けます。Vignetteは酔いを抑えるために使えます。

かけすぎない

エフェクトは、かけすぎると逆に見づらくなります。Bloomの光がまぶしすぎたり、ビネットで画面の端が見えなくなったりしないよう、少しずつ値を上げて確かめましょう。

Profileを使い分ける

Profileはファイルとして保存されるので、シーンや場面ごとに複数作って使い分けられます。Gitで管理しておけば、前の設定に戻すのも簡単です。

8. Built-in Render Pipelineを使っている場合

URPではなく、Built-in Render Pipelineのプロジェクトでは、Package Managerから「Post Processing」パッケージ(Post Processing Stack v2)を入れて使います。こちらの手順は、Unityポストプロセッシング技術資料(Built-in RP向け)にまとめています。

まとめ

  • URPのポストプロセッシングは標準で入っていて、パッケージの追加は不要です。
  • テンプレートのGlobal Volumeを見れば、設定の流れがつかめます。
  • 設定は、カメラのPost Processing、Volume、Profile、Overrideの順に組み立てます。
  • Overrideは、エフェクト名と項目の左のチェックを入れて有効にします。
  • Ambient OcclusionはVolumeではなく、Renderer Featureで追加します。

まずはテンプレートのGlobal Volumeで、BloomやVignetteのチェックをオン・オフして、Gameビューの変化を確かめてみてください。

参考資料

訪問数 13 回, 今日の訪問数 13回

広告