以下の内容はhttps://indie-du.com/entry/2019/03/06/190000より取得しました。


Post Processing Stack V2の効果をスクリプトから動的に変更する

GitHubの公式リポジトリにやり方書いてあったので試した。

Manipulating the Stack · Unity-Technologies/PostProcessing Wiki · GitHub

すでにPostProcess設定済みの前提での解説す。

操作に必要なクラス

PostProcessingStackV2 のクラス定義はここにまとまっている

Namespace UnityEngine.Rendering.PostProcessing | Package Manager UI website

各PostProcess効果ごとに定義されているクラス

DepthOfFieldBloom など、そのものズバリな名称になっています。
スクリプトから設定値を上書きする際に、それぞれのクラスを使います。

・DepthOfField
Class DepthOfField | Package Manager UI website

・Bloom
Class Bloom | Package Manager UI website

PostProcessManager

効果を上書きするために必要なクラスです。
QuickVolume メソッドに前述のPostProcess効果ごとのクラスのインスタンスを渡し、値を上書きします。

Class PostProcessManager | Package Manager UI website

サンプルコード

シーン開始後1秒後にDepthOfFieldの値を変更するスクリプトです。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering.PostProcessing;

public class PostProcessManipulator : MonoBehaviour
{

    // Post Process Volume がついているGameObject
    [SerializeField]
    GameObject postProcessGameObject;

    void Start()
    {
        Invoke("FixDOF", 1f);
    }

    void FixDOF() {
      var dof = ScriptableObject.CreateInstance<DepthOfField>();
      dof.focusDistance.Override(4);
      PostProcessManager.instance.QuickVolume(postProcessGameObject.layer, 1, dof);
    }
}

結果

f:id:sugar_affordance:20190306123815g:plain

イジョ!

・使ったモデル




以上の内容はhttps://indie-du.com/entry/2019/03/06/190000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14