【Unity】VFXグラフのパラメータを使う

投稿者: | 2021-05-01

VFXグラフのパラメータをインスペクタやスクリプトで変更してみました。

パラメータを作るにはBlackboardの+ボタンをクリックします。Blackboardが表示されてないときは、右上のボタンで切り替えられます。

+ボタンを押すとメニューが出るので、作りたいパラメータの型を選びます。

また、既にあるノードを右クリックして「Convert to Property」を選択する方法もあります。

作られたパラメータはBlackboardに表示されています。ラベルをクリックすると名前を変えられます。

このラベルを何も無いところにドラッグアンドドロップするとオペレーターが作られます。

外部から変更するときは、Exposedのチェックを入れます。Valueにはデフォルトの値を設定できます。

できたVFXグラフを選択した状態で、Visual Effectオブジェクトを作ります。

すると、インスペクタのAsset TemplateにこのVFXグラフが既にアタッチされています。公開したパラメータも見えます。

Projectウィンドウからドラッグアンドドロップでアタッチすることもできます。

パラメータの横のチェックボックスを入れると、値をオーバーライドします。

チェックを切るとデフォルトの値に戻ります。

このVisual Effectを何度か複製しました。空のゲームオブジェクトを作ってスクリプトをつけます。

スクリプトでは、VisualEffect.SetVector4メソッドを使って値を設定します。パラメータはオブジェクトごとに別々の値を持てます。

using UnityEngine;
using UnityEngine.VFX;

public class VFXTest : MonoBehaviour
{
    [SerializeField] VisualEffect[] vfxs;

    // Start is called before the first frame update
    void Start()
    {
        foreach(var vfx in vfxs)
        {
          
            vfx.SetVector4("color", new Vector4(Random.Range(0f,1f), Random.Range(0f, 1f), Random.Range(0f, 1f), 1f));
        }
    }

}

複製した全てのVisual Effectオブジェクトをアタッチしています。

プレイボタンを押すと、オブジェクトごとに色が変わりました。

コメントを残す

メールアドレスが公開されることはありません。