URPでのポストプロセス設定手順(Unity 2022、Unity6)
Unity 2022では、ポストプロセスエフェクトの利用方法は主に Universal Render Pipeline(URP) または High Definition Render Pipeline(HDRP) に基づいています。Unity 2022以降では、ポストプロセスがそれぞれのレンダーパイプラインに完全統合されており、従来の Post-Processing Stack v2 は推奨されなくなっています。
以下、Unity 2022での URP を使ったポストプロセスの設定方法について説明します。
URPでのポストプロセス設定手順(Unity 2022)
1. URPアセットの確認
URPを使っていることを確認します。
Edit > Project Settings > Graphics で、現在のRender Pipelineが URP Asset に設定されていることを確認してください。
2. ポストプロセスの有効化
URPアセットの設定
- プロジェクトウィンドウ で、使用中のURPアセット(例: UniversalRenderPipelineAsset)を探します。
- このアセットをダブルクリックして開き、以下を確認または有効化します:
- Post Processing をチェック。
3. カメラの設定
- ポストプロセスを適用したいカメラを選択します。
- Inspector 内の Rendering セクションで、以下を確認します:
- Post Processing が有効になっている。
- IInspector 内の Output セクションで、以下を確認します:
- HDR RenderingでUse settings from Render Pipeline Assetが選択されている
4. ボリュームの設定
URPでは ボリューム(Volume) を使用してポストプロセスエフェクトを適用します。
手順
- 新しい空のオブジェクト をシーンに作成します。
- 名前例:
PostProcessingVolume
- 名前例:
- Inspector で、このオブジェクトに以下を追加:
- Volume > Global Volumeを選択すると、Volumeコンポーネントが追加されます。
- Volumeの設定:
- Global を選択にします(全体に適用する場合)。
- 新しい Profile を作成します(
New
を選択し、作成します)。
- Add Overrideボタンをクリックします。
- Post-procdesing > Bloomを選択します。
- 添付キャプチャーのように登録します
- Volumeの設定:
- Volume > Global Volumeを選択すると、Volumeコンポーネントが追加されます。
作成したProfileをクリックし、ポストプロセスエフェクトを追加します。
5. エフェクトの追加
必要に応じて、以下のエフェクトを追加します:
- Bloom: 光のにじみ効果。
- Depth of Field: フォーカス効果。
- Vignette: 画面の周囲を暗くする効果。
- Color Adjustments: 色調補正。
- Film Grain: フィルムのようなざらつき。
追加後、各エフェクトのパラメータを調整して結果を確認します。
注意点
- Unity 2022以降では、ポストプロセスはレンダーパイプラインに統合されているため、Post-Processing Stack v2 を別途インポートする必要はありません。
- URP用のポストプロセスは軽量化されており、特にモバイルデバイス向けに最適化されています。
- HDRP を使用している場合は、より高度なエフェクト(例:リアルタイムレイトレーシング)を利用可能です。
Volumeオブジェクトの作成サンプル
Volumeの登録サンプル
特定のオブジェクトのみを発行させる
プロジェクトの目的と設定
画像とスクリプトを見ると、以下のような設定が行われています:
- 目的
スプライトに発光効果(Emission)を適用し、Bloom効果で目立たせています。これは主に光を伴ったUIやオブジェクトの強調に使われる演出です。 - プロジェクトの基本設定
- Global Volume: ポストプロセスエフェクトを適用するために使われています(画像1)。
- Sprite Renderer: 三角形スプライトを描画しています(画像2)。
- カメラ設定: HDR(High Dynamic Range)レンダリングを有効にし、Bloom効果を適用しています(画像3)。
Global Volume (画像1)
- Bloom効果: 発光部分をより目立たせるために、ポストプロセスで光のにじみを加えています。
- 設定内容:
- Threshold: 1(発光が始まる閾値)
- Intensity: 1.2(Bloomの強度)
Sprite Renderer (画像2)
- 使用されているシェーダー:
SpriteWithEmission
_EmissionColor
を持つカスタムシェーダーを利用しており、発光処理を適用しています。
スクリプトの解説
以下のスクリプトは、スプライトの発光を制御します。
using UnityEngine;
public class EmissionExample : MonoBehaviour
{
public SpriteRenderer spriteRenderer;
public Color glowColor = new Color(1.0f, 1.0f, 0.5f); // 発光色
public float glowIntensity = 2.0f; // 発光の強度
void Start()
{
// マテリアルの発光色を設定
spriteRenderer.material.SetColor("_EmissionColor", glowColor * glowIntensity);
}
}
スクリプトのポイント
spriteRenderer
の参照SpriteRenderer
を利用して、発光するスプライトを指定します。- Unity Editorでインスペクター上からスプライトをアタッチできます。
glowColor
とglowIntensity
glowColor
: 発光する色を定義(デフォルトは黄色に近い色)。glowIntensity
: 発光の強度をコントロールするための値。大きいほど明るくなります。
SetColor
を使った発光spriteRenderer.material.SetColor("_EmissionColor", ...)
は、マテリアルの_EmissionColor
プロパティに色と強度を設定します。_EmissionColor
はマテリアルのプロパティとして事前に設定されている必要があります(SpriteWithEmission
シェーダーを使用)。
Main Camera (画像3)
- HDR Rendering: 有効化することで、発光とBloomの効果が正しく表現されます。
- Pipeline: Universal Render Pipeline (URP) を使用しており、ポストプロセスを設定可能。
実装の手順
- マテリアルの準備
_EmissionColor
を設定できるカスタムマテリアルを作成します。- シェーダーには
SpriteWithEmission
を設定。
- Global Volume 設定
- Add Component で
Volume
を追加。 - Add Override から
Bloom
を有効にし、強度を調整。
- Add Component で
- スクリプトの追加
- 上記スクリプトを作成し、対象のオブジェクトにアタッチ。
Sprite Renderer
に対象スプライトをドラッグ&ドロップ。
- カメラ設定
- HDRを有効にし、URPのポストプロセスを適用。
補足: トラブルシューティング
- 「発光しない」場合
- スプライトのマテリアルが
_EmissionColor
を持っているか確認。 - カメラのHDR設定が有効になっているか確認。
- Global Volume に Bloom 効果が設定されているか確認。
- スプライトのマテリアルが
- 「Bloomが適用されない」場合
URPのRenderer設定にポストプロセスが有効化されているか確認してください。
この手順で、スプライトの発光とBloom効果を適切に動作させることができます!
ディスカッション
コメント一覧
まだ、コメントがありません