初めまして、taxiです。
この記事は、Shuriken(UnityのParticleSystem)に使い慣れたエフェクターが、VisualEffectGraphになんとかなじむことを目的にした記事です。
以前、VisualEffectGraphを使い始めようしたときに、いきなりNodeを操作する画面に飛ばされ、「これは何からいじったらいいんだ・・・。」「これはShurikenでいうと、どの機能のことだ・・・?」と結構詰まった経験があります。
そこで、今回の記事ではShurikenユーザーの方に向けて、ShurikenからVisualEffectGraphに入る人ならここはつまりそうだなというものを紹介していきたいと思います。
全体で説明するShurikenの項目はこちらです。(今回は、SpeedとVerocityの関係を中心に扱っています。)
・Main module
・Shape
・Velocity over LifeTime
・Size by Speed
・Triggers
・Sub Emitters
また、これらを「Shurikenの項目 → VisualEffectGraphの項目」の形式で説明していきます。
Main module
「Looping チェックボックスなし → Single Burst」
Spawn コンテキストは、その名の通り「エフェクト発生時」の数などを設定するコンテキストです。
デフォルトの状態では「Constant Spawn Rate」が設定されており、その名の通り一定の数のエフェクトを出し続ける状態のことです。
ShurikenでいうRoop状態です。
これをRoopさせたくない場合(爆発などの一瞬で終わる系のもの)は、Spawn コンテキスト から「Single Burst」を使うと、呼び出したときの一瞬のみエフェクトが発火します。
(また、これらはEmissionにもかかわってくるので後述します)
「Start Speed → Set Velocity」
Shurikenで扱っていたStart Speedは、VisualEffectGraphではすべてVelocityで管理されます。
Velocityは、Initialie コンテキスト、Update コンテキストの中で主に設定します。
試しに、Initializeコンテキストの中で「Velocity」ブロックを検索してみましょう。
すると、非常に多くのVelocity関連のNodeが出てきます。
VisualeEffectGraph 初見の時はここで「どれを使えばいいんだ・・・」となりました。
なので、基本的な動きの場合には一番シンプルな「Set Velocity」を使えばいいと思います。
試しに、Initilize コンテキストの中で、「Set Velocity」を使ってみましょう。
「Set Velocity Random」Nodeを削除し、「Set Velocity」Nodeを追加しさらに、数値を(X = 1, Y = 0, Z = 0)に設定します。
すると、エフェクトが発生されると、発生されたエフェクトごとに、X軸に対して1の速度が設定されます。
また、徐々に加速させたい場合は、Update コンテキストの中で、「Add Velocity」Nodeを使います。また、数値を(X = 1, Y = 0, Z = 0)に設定します。
すると、以下のような速い流れのエフェクトとなります。
Update コンテキストの中では、毎フレームNodeの影響が及ぼされ、かつ、「Add Velocity」は、先ほどの「Set Velocity」とは違い、速度を「追加」していくNodeなので、このような結果になります。
最後に
思ったよりも長くなりそうなので、今回はこの辺りでまでにしておきます。
次回は、TriggersやSub Emittersのあたりを紹介できたらと思います。