概要
動作確認環境: Unity 2022.3 LTS / Unity 6 対象: Built-in Render PipelineとURP(HDRPは本記事では扱いません)
「画面に光が足りない…」「映画のような雰囲気を出したい…」「もっとリッチな見た目にしたい…」
ゲーム開発では、このような映像表現の課題に直面することがあります。ポストプロセッシング は、カメラに映る情報をレンダリングした結果に、エフェクト(フィルター)をかける技術です。写真アプリのフィルターや画像編集ソフトのエフェクトと同じ概念で、Bloom、Color Grading、Depth of Fieldなど様々なエフェクトで画面全体の見た目を調整できます。
2つの実装方式
Unityでは、使用するレンダーパイプラインによって実装方式が異なります。
Post Processing Stack v2(Built-in RP用)
- Package Managerからインストール
- Post-Process Layerコンポーネントをカメラに追加
- Post-Process Volumeコンポーネントで管理
- プロファイルを作成してエフェクトを追加
Volume Override(URP/HDRP用)
- URPではデフォルトで利用可能
- Volumeコンポーネントを使用
- Volume Profileに各種エフェクトを追加
- より統合されたワークフロー
主要なエフェクト
Bloom(ブルーム)
最も使用頻度が高いエフェクトで、光を強調し、発光表現を実現します。
Post Processing Stack v2(Built-in RP)
| パラメータ | 説明 |
|---|---|
| Intensity | 光の強さ |
| Threshold | エフェクトを適用する明るさの閾値 |
| Diffusion | 光の拡散度(1〜10) |
| Color | Bloomの色味 |
| Fast Mode | 低品質だが高速 |
URP Volume
| パラメータ | 説明 |
|---|---|
| Intensity | 光の強さ |
| Threshold | エフェクトを適用する明るさの閾値 |
| Scatter | 光の拡散度(0〜1) |
| Tint | Bloomの色味 |
| High Quality Filtering | 高品質フィルタリング |
注意: Post Processing Stack v2とURPではパラメータ名が異なりま す。「Diffusion」と「Scatter」、「Color」と「Tint」は同等の機能です。
Bloomの調整目安
| 用途 | Intensity | Threshold | Scatter(URP) / Diffusion(v2) |
|---|---|---|---|
| 自然な発光 | 0.2〜0.5 | 0.9〜1.0 | 0.5〜0.6 / 5〜6 |
| 標準的な演出 | 0.5〜1.0 | 0.8〜0.9 | 0.6〜0.7 / 6〜7 |
| 強調演出 | 1.0〜2.0 | 0.5〜0.8 | 0.7〜0.8 / 7〜8 |
| 極端な演出 | 2.0以上 | 0.5以下 | 0.8〜1.0 / 8〜10 |
URPでのBloom軽量化
モバイル向けにBloomを軽量化するには:
- Downscale: チェックを入れると解像度を下げて処理(デフォルトOFF)
- Max Iterations: 値を下げると処理が軽くなる(デフォルト6、モバイルは3〜4推奨)
- High Quality Filtering: OFFにすると軽量化
Color Grading(カラーグレーディング)
色調補正機能で、画面全体の色味を調整します。映画的な雰囲気を作る上で最も重要なエフェクトの一つです。
主要パラメータ
| パラメータ | 説明 | 調整例 |
|---|---|---|
| Tonemapping | HDR→LDR変換方式 | ACES推奨(映画業界標準) |
| Post Exposure | 全体の明るさ | -1〜1の範囲で調整 |
| Contrast | コントラスト | 10〜30で締まった画に |
| Saturation | 彩度 | -20でシリアス、+20で鮮やか |
| Temperature | 色温度 | マイナスで寒色、プラスで暖色 |
Lift / Gamma / Gain
- Lift: 暗部の色調整(影の色味)
- Gamma: 中間調の色調整(全体の雰囲気)
- Gain: 明部の色調整(ハイライトの色味)
Tonemapping推奨: ACESは映画業界で標準的に使われるトーンマッピングで、自然で映画的な見た目になります。特にHDRコンテンツで効果的です。
Ambient Occlusion(AO)
オブジェクトの角や隅に影を落とし、リアルな空間表現に有効です。ただし処理負荷が高いため、主にデスクトップ/コンソール向けです。
Depth of Field(被写界深度)
カメラのピント表現を実現します。特定の距離に焦点を合わせ、それ以外をぼかすことで映画的な表現が可能です。
URPのモード選択
| モード | 品質 | 負荷 | 用途 |
|---|---|---|---|
| Gaussian | 標準 | 軽い | モバイル、パフォーマンス重視 |
| Bokeh | 高品質 | 重い | PC/コンソール、映画的表現 |
Bokehモード: カメラレンズの絞り形状を再現した高品質なボケ味が得られますが、処理負荷が高いためモバイルには不向きです。
Vignette(ビネット)
画面端を暗くするエフェクトで、レトロな雰囲気や画面の馴染ませに使用します。
その他のエフェクト
- Auto Exposure - 暗順応・明順応を表現
- Chromatic Aberration - レンズの色収差を再現
- Grain - 画面にノイズを追加、フィルム風の表現
- Motion Blur - 動きにブラーを追加、スピード感の演出
- Lens Distortion - 魚眼レンズのような歪み
Built-in RPでの実装手順
1. パッケージのインストール
- Window > Package Manager を開く
- 「Post Processing」を検索してインストール
2. カメラの設定
- Main Cameraを選択
- 「Post-Process Layer」コンポーネントを追加
- Layerを設定(例:Default)
3. Volumeの作成
- 空のGameObjectを作成
- 「Post-Process Volume」コンポーネントを追加
- Is Globalをオン
- Profileを新規作成
4. エフェクトの追加
- ProfileのAdd Effect...をクリック
- 使用したいエフェクトを選択
- 各エフェクトのパラメータを調整
URPでの実装手順
1. Global Volumeの作成
- Hierarchyで右クリック
- Volume > Global Volume を選択
- GameObjectが作成される
2. Volume Profileの設定
- Volumeコンポーネントの「Profile」で「New」をクリック
- Volume Profileが作成される
3. エフェクトの追加
- 「Add Override」をクリック
- 使用したいエフェクトを選択
- 各エフェクトのパラメータを調整
4. カメラの確認
カメラのPost Processingにチェックが入っていることを確認してください。
URP 14以降(Unity 2023.1+)の変更: URP 14以降では、カメラのPost Processingはデフォルトで有効になっています。また、設定UIが変更され、Render Typeの設定画面でPost Processingの有効/無効を切り替えます。
Local Volumeによるエリア別エフェクト
Global Volumeはシーン全体に影響しますが、Local Volume を使うと特定エリアだけにエフェクトをかけられます。
設定方法
- 空のGameObjectを作成
- Volumeコンポーネントを追加
- Is Global をオフ
- Collider(Box Colliderなど)を追加
- Volume ProfileとBlend Distanceを設定
活用例
- 洞窟エリア: 暗くしてVignetteを強める
- 魔法の森: Bloomを強めて幻想的に
- 危険地帯: Color Gradingで赤みを加える
Blend Distance: Volumeの境界から何メートルでエフェクトが徐々に適用されるかを設定します。急激な変化を避けるため、2〜5程度の値を推奨します。
おすすめの組み合わせ
初心者がすぐに試せるプリセット例です。
映画風(シネマティック)
- Color Grading: Tonemapping=ACES、Contrast=20、Saturation=-10
- Vignette: Intensity=0.3
- Bloom: Intensity=0.3、Threshold=0.9
ホラー風
- Color Grading: Saturation=-30、Temperature=-10(寒色)
- Grain: Intensity=0.3
- Vignette: Intensity=0.5
ファンタジー風
- Bloom: Intensity=1.0、Threshold=0.7
- Color Grading: Saturation=20、Temperature=10(暖色)
レトロゲーム風
- Color Grading: Contrast=40、Saturation=-20
- Chromatic Aberration: Intensity=0.2
- Grain: Intensity=0.4
パフォーマンスへの影響
負荷の高いエフェクト
| エフェクト | 負荷レベル | 備考 |
|---|---|---|
| Ambient Occlusion | 非常に高い | ポストプロセッシングエフェクト |
| Motion Blur | 高い | ポストプロセッシングエフェクト |
| Screen Space Reflection | 高い | 描画機能(URPではRendererFeatureで実装) |
| Depth of Field | 中〜高い | ポストプロセッシングエフェクト |
補足: Screen Space Reflectionは厳密にはポストプロセッシングではなく、描画パイプラインの一部として実装されます。URPではRenderer Featureとして追加します。
最適化のポイント
- 必要なプロパティのみ有効化 - 使わないパラメータはオフに
- Fast Modeの活用 - Bloomなどで利用可能
- モバイル向けには軽量エフェクト - Vignetteなど軽いものを選択
- 解像度を下げる - Downsamplingの活用
- エフェクトの組み合わせを最小限に - 必要なものだけ使用
VRでの注意点
以下のエフェクトはVR酔いの原因となるため使用非推奨です。
- Depth of Field - 視覚と実際の焦点のずれ
- Motion Blur - 頭の動きとの不整合
- Chromatic Aberration - 強すぎる設定は目の疲労の原因
- Lens Distortion - 実際の視界との不整合
- Grain - 強すぎる設定は不快感
- Vignette - 強すぎる設定は視野の制限感
よくある課題と解決策
課題1: エフェクトが反映されない
- カメラのPost Processingが有効か確認
- Volumeの設定が正しいか確認
- Layerの設定が一致しているか確認(Built-in RP)
課題2: パフォーマンスが低下する
- 不要なエフェクトを無効化
- Fast Modeを有効化
- 解像度を下げる
- モバイル向けには軽量なエフェクトのみ使用
課題3: 白飛びする
- BloomのIntensityを下げる
- Color GradingでPost-exposureを調整
- HDRカラーの設定を見直す
課題4: 暗すぎる/明るすぎる
- Color Gradingで調整
- Auto Exposureを使用
- ライティング 設定を見直す
まとめ
ポストプロセッシングは、画面全体の映像品質を向上させる強力な技術です。
- Bloom - 発光表現、最も使用頻度が高い
- Color Grading - 色調補正、映画的な雰囲気を演出
- Depth of Field - ピント表現、注目させたい対象を強調
- Vignette - 画面端を暗く、レトロな雰囲気
レンダーパイプラインに応じた実装方式を選び、パフォーマンスに注意しながら効果的に活用しましょう。