Version: Unity 6.0 (6000.0)
言語 : 日本語
URP でのローコードのカスタムポストプロセスエフェクトの作成
URP の全画面パスレンダラー機能のリファレンス

URP でのボリュームサポートによるカスタムポストプロセスエフェクトの作成

このページでは、Volume (ボリューム) サポートによりカスタムのポストプロセスエフェクトを作成する方法について説明します。

URP には、カスタムのポストプロセスエフェクトのテンプレートが用意されています。テンプレートの実装は、カスタムエフェクトのコードを挿入するための Renderer Feature と、Volume コンポーネントと沿う語作用するためのコードを実装するスクリプトで構成されています。

テンプレートを使用してエフェクトを作成するには、以下のメニュー項目を選択します。

  • Assets > Create > Rendering > URP Post-processing Effect (Renderer Feature with Volume)

Unity は Assets フォルダーに 2 つの新しいスクリプトを作成します。Renderer Feature テンプレートを含むスクリプトと、Volume コンポーネントのスクリプトです。

テンプレートには、画面上の色を反転させるエフェクトの実装例が含まれています。

Renderer Feature では、カスタムエフェクト用のカスタムマテリアルや、エフェクトロジックを実装するレンダーパスを、Create メソッドで定義します。

Renderer Feature スクリプトには、ScriptableRenderPass の実装が含まれています。

カスタムエフェクトのシェーダープロパティは、レンダーパスコードの以下の領域に設定します。

#region PASS_SHARED_RENDERING_CODE

レンダーパスには、以下の 2 つの領域が含まれています。プロジェクトで互換性モードが無効になっている場合、Unity は PASS_RENDER_GRAPH_PATH 領域を選択してレンダーグラフ API を使用し、そうでない場合は PASS_NON_RENDER_GRAPH_PATH 領域を使用します。

#region PASS_NON_RENDER_GRAPH_PATH
#region PASS_RENDER_GRAPH_PATH

Volume コンポーネントにエフェクトプロパティを設定するには、AddRenderPasses メソッドの以下の行を変更します。

NewPostProcessEffectVolumeComponent myVolume = VolumeManager.instance.stack?.GetComponent<NewPostProcessEffectVolumeComponent>();
if (myVolume == null || !myVolume.IsActive())
    s_SharedPropertyBlock.SetFloat("_Intensity", myVolume.intensity.value);

追加リソース

URP でのローコードのカスタムポストプロセスエフェクトの作成
URP の全画面パスレンダラー機能のリファレンス