UnityのVisual Effect Graphのノード、コンテキストの説明

前回

UnityのVisual Effect Graphの設定と使い方
Unityで視覚的にエフェクトを作成できるVisual Effect Graphの設定方法と使い方をみていきます。

でVisual Effect Graph(VFX)の設定と使い方についてやりましたが、記事が長くなったので、ノード、コンテキストの説明はこの記事で書くことにしました。

コンテキストに設定するブロックに関してはまた別記事に書いていきます。(^_^;)

説明の順序はVisual Effect Graphのウインドウ内の何もない所でSpaceキーを押した時に出てくる項目を上から見ていっています。

Visual Effect GraphのCreate Text Nodeで表示されるコンテキストメニュー

スポンサーリンク
スポンサーリンク
  1. Context
    1. Output系コンテキストほとんどで共通のインスペクタ項目
    2. Cube Output
    3. Decal Output
    4. Event
    5. Initialize
    6. Line Output
    7. Lit Cube Output
    8. Lit Mesh Output
    9. Lit Quad Output
    10. Lit Sphere Output
    11. Mesh Output
    12. Point Output
    13. Quad Output
    14. Spawn
    15. Static Mesh Output
    16. Update
  2. Operator
    1. Attribute
      1. Age Over Lifetime
      2. Get Attribute
        1. Get Attribute age
        2. Get Attribute alive
        3. Get Attribute alpha
        4. Get Attribute angle
        5. Get Attribute angularVelocity
        6. Get Attribute axisX
        7. Get Attribute axisY
        8. Get Attribute axisZ
        9. Get Attribute color
        10. Get Attribute direction
        11. Get Attribute lifetime
        12. Get Attribute mass
        13. Get Attribute oldPosition
        14. Get Attribute particleId
        15. Get Attribute pivot
        16. Get Attribute position
        17. Get Attribute scale
        18. Get Attribute seed
        19. Get Attribute size
        20. Get Attribute spawnTime
        21. Get Attribute targetPosition
        22. Get Attribute texIndex
        23. Get Attribute velocity
    2. Bitwise
      1. And
      2. Complement
      3. Left Shift
      4. Or
      5. Right Shift
      6. Xor
    3. BuiltIn
      1. DeltaTime
      2. LocalToWorld
      3. Main Camera
      4. SystemSeed
      5. TotalTime
      6. WorldToLocal
    4. Color
      1. Color Luma
      2. HSV to RGB
      3. RGB to HSV
    5. Inline
      1. AABox
      2. AnimationCurve
      3. ArcCircle
      4. ArcCone
      5. ArcSphere
      6. ArcTorus
      7. bool
      8. Camera
      9. Circle
      10. Color
      11. Cone
      12. Cubemap
      13. CubemapArray
      14. Cylinder
      15. Direction
      16. FlipBook
      17. float
      18. Gradient
      19. int
      20. Line
      21. Matrix4×4
      22. Mesh
      23. OrientedBox
      24. Plane
      25. Position
      26. Sphere
      27. Texture2D
      28. Texture2DArray
      29. Texture3D
      30. Torus
      31. Transform
      32. uint
      33. Vector
    6. Logic
      1. And
      2. Branch
      3. Compare
      4. Nand
      5. Nor
      6. Not
      7. Or
      8. Probability Sampling
      9. Switch
    7. Math
      1. Arithmetic
        1. Absolute
        2. Add
        3. Divide
        4. Fractional
        5. Lerp
        6. Modulo
        7. Multiply
        8. Negate
        9. One Minus
        10. Power
        11. Reciprocal
        12. Sign
        13. SmoothStep
        14. Square Root
        15. Step
        16. Subtract
      2. Clamp
        1. Ceiling
        2. Clamp
        3. Discretize
        4. Floor
        5. Maximum
        6. Minimum
        7. Round
        8. Saturate
      3. Constants
        1. Epsilon
        2. Pi
      4. Coordinates
        1. Polar to Rectangular
        2. Rectangular to Polar
        3. Rectangular to Spherical
        4. Spherical to Rectangular
      5. Geometry
        1. Area(Circle)
        2. Change Space
        3. Distance(Line)
        4. Distance(Plane)
        5. Distance(Sphere)
        6. Transform(Direction)
        7. Transform(Matrix)
        8. Transform(Position)
        9. Transform(Vector)
        10. Volume(Axis Aligned Box)
        11. Volume(Cone)
        12. Volume(Cylinder)
        13. Volume(Oriented Box)
        14. Volume(Sphere)
        15. Volume(Torus)
      6. Remap
        1. Remap
        2. Remap[0..1] => [-1..1]
        3. Remap[-1..1] => [0..1]
      7. Trigonometry
        1. Cosine
        2. Sine
        3. Tangent
      8. Vector
        1. Append Vector
        2. Cross Product
        3. Distance
        4. Dot Product
        5. Length
        6. Look At
        7. Normalize
        8. Rotate2D
        9. Rotate3D
        10. Sample Bezier
        11. Squared Distance
        12. Squared Length
        13. Swizzle
      9. Wave
        1. Sawtooth Wave
        2. Sine Wave
        3. Square Wave
        4. Triangle Wave
      10. Sequential 3D
      11. Sequential Sphere
      12. Sequential LIne
    8. Noise
      1. Cellular Noise
      2. Perlin Curl Noise
      3. Perlin Noise
      4. Value Curl Noise
      5. Value Noise
      6. VoroNoise2D
    9. Random
      1. Random Number
    10. Sampling
      1. Sample Curve
      2. Sample Gradient
      3. Sample Texture2D
      4. Sample Texture2DArray
      5. Sample Texture3D
      6. Sample TextureCube
      7. Sample TextureCubeArray
    11. Time
      1. Periodic Total Time
      2. Total Time
    12. Utility
      1. Point Cache
  3. System
    1. Empty Particle System
    2. Simple Particle System
    3. Simple Static Mesh
    4. Simple Swarm Particle System
  4. Misc
    1. Group Node
  5. 終わりに
  6. 参考サイト

Context

まずはContextの項目から見ていきます。

VisualEffectGraphのノードのContext項目

同じ設定項目がある場合は説明を省略していきます。

Output系コンテキストほとんどで共通のインスペクタ項目

Output系のコンテキストのほとんどで共通に設定できる項目でVisual Effect Graphのコンテキスト内では設定出来ませんが、Cube Output等を選択した状態でインスペクタで設定出来る項目もあります。

CubeOutputコンテキストのインスペクタ

CullModeはカリングの設定でDefaultはデフォルトの設定、Frontは視点側のポリゴンをレンダリングしない、Backは視点の反対側を描写しない、Offはカリングを行わないです。
注:CubeOutputコンテキストでは立方体なのでCullModeの確認が難しいので他のOutputコンテキストを利用するとわかりやすいです(正しパーティクルの向きを視点の向きに変更するブロックを使わない事)。
Z Write Modeはパーティクルのピクセルをデプスバッファに保存するかどうかで、Defaultはデフォルト値、Offは行わない、Onは行うです。
Z Testはオブジェクトを描画する時の設定で、Defaultはデフォルト、Lessは表示されてるオブジェクトより手前、Greaterは奥、L Equalは手前か同じ時、G Equalは奥か同じ時、Equalは同じ時、Not Equalは違う時、Alwaysは常にレンダリングします。
Sortはパーティクルの並べ替えを行います。Autoは自動、Offは並べ替えをしない、Onは並べ替えをする。
Indirect Drawは間接的に描画呼び出しを行うかどうかみたいです(意味はわからない)。
Cast Shadowsはパーティクルが影を落とすかどうかです。
Pre RefractionはHDRPのPre Refractionレンダーキューに描画するかどうか。

CullやZWrite、ZTestに関してはUnityマニュアルの

ShaderLab :Culling と Depth Testing - Unity マニュアル
カリングは、視点から見えない反対側を向いたポリゴンをレンダリングしないという最適化手法です。すべてのポリゴンは表と裏側があり、オブジェクトのほとんどが閉じている事実を利用します。もしキューブがあった場合、視点と反対側を見ることはない(必ず視点の側を向いている面がある)ので、反対側の面は描画する必要がありません。このため...

を参照してください。

Cube Output

Cube OutputコンテキストはCube(立方体)のパーティクルを出力します。

CubuOutputコンテキスト

Blend Modeはブレンドの仕方の設定で

Additiveは色を追加するブレンド方法でアルファ値はブレンドする前に乗算されます。
Alphaはテクスチャのアルファ部分を透明にするブレンド方法です。
Maskedはブレンドせず、ピクセルカリング(ピクセル毎に取り出す)を行う為にアルファのしきい値を使用します。
AlphaPremultipliedはAdditiveブレンドとAlphaブレンドの両方を使用することが出来ます。
Opaqueはブレンドせずアルファも使用しません。

UVModeはUVがどのように処理されるかで

SimpleはUVを変更せずそのまま
FlipbookはFlip Book Sizeを指定してパラパラ漫画のように処理します。
FlipbookBlendはFlipbookと同じですが、texIndex(パラパラ漫画の1コマとして使用する部分の番号)の小数部に応じてセル間をブレンドするようです。
ScaleAndBiasはUVScaleとUVBiasの値でタイリングを行います(こちらも動作せず)。

Use Soft Particleにチェックを入れるとパーティクルデプスとシーンデプスのテストを行う事が出来ます。
Main Textureはパーティクルに使用するテクスチャの設定です。

FlipbookとFlipbookBlendで1枚のテクスチャをFlip Book Sizeで分割してパラパラ漫画のようにアニメーションをさせますが、このtexIndexの値を更新するのがUpdateコンテキストで設定するFlipbook Playerブロックで、そこでフレームレートを指定し切り替える頻度を変更します。

以下はわかりやすくする為にCube OutputではなくQuad Outputを使用しています。

Flipbookの出力をする為の設定

Flip Book Sizeでxとvを2にしたので設定したテクスチャから4コマ作成されそれが順番に表示されます。

使用したテクスチャは以下のようなものです。

Flipbookに使用したテクスチャ

パーティクルが生存している期間はUpdateコンテキストのFlipbook Playerのフレームレートでコマが変換されアニメーションされています。

Flipbookの出力のサンプル

ほとんどのOutputコンテキストはここの設定項目と同じ為、以下同様の内容のものは省略していきます。

Decal Output

Decal Outputコンテキストは転写して出力するみたいです(よくわかりません)。

VisualEffectGraphのDecalOutputコンテキスト

Event

Eventはパーティクルの生成と停止をさせるコンテキストです。

VisualEffectGraphのEventコンテキスト

既存のイベントはOnPlayやOnStopで、スクリプトのVisualEffectのPlayとStopメソッドにそれぞれ対応していますが、独自のイベント名を設定しSendEventメソッドでそのイベントを送る事も出来ます。

イベントはスクリプトから発生させてEventコンテキストがトリガーとなりパーティクルの生成と停止をする事が出来ます。

例えばOnPlayイベントでパーティクルの生成を開始し、MyEventという名前のイベントでパーティクル生成の停止をする場合は

Eventコンテキストを二つ作成してそれぞれのイベント名をOnPlayとMyEventに変更し、SpawnコンテキストのStartとStopに繋げます。

SpawnコンテキストのStartとStopにEventコンテキストを繋げる

Visual Effectゲームオブジェクトに新しいスクリプトEventTestスクリプトを作成し取り付けます。

VisualEffectコンポーネントを使う為にusingディレクティブでUnityEngine.Experimental.VFXを指定します。

ゲームオブジェクト開始時にVisualEffectのSendEventメソッドでMyEventを送りパーティクルの生成を停止します。

Updateメソッドではマウスの右ボタンを押したらパーティクルの停止、マウスの中ボタンを押したらパーティクルの生成をするようにしています。

VisualEffectのStopメソッドを呼び出すとOnStopイベントが発生しますが、今回のパーティクルではMyEventイベントでパーティクルの生成を停止させているのでパーティクルは停止しません。

Initialize

Initializeコンテキストはパーティクルの初期化をするコンテキストです。

VisualEffectGraphのInitializeコンテキスト

Capacityはパーティクルの最大量です。
Boundsで中心とサイズを設定し、この範囲がカメラの描画範囲を超えたらパーティクルが見えなくなります(シーンビューの場合は見えている範囲外になった時)。

Line Output

Line Outputコンテキストは線を出力します。

VisualEffectGraphのLineOutputコンテキスト

Target From Attributesにチェックを入れると設定したTarget Offsetをターゲットに線を引きます。
インスペクタでUse Native Linesというチェックがありますがこれはよくわかりません。

Lit Cube Output

Lit Cube Outputコンテキストは光の影響を受けるCubeを出力します。

VisualEffectGraphのLit Cube Outputコンテキスト

Smoothnessで滑らかさ
Metallicで金属度合い
Base Color Mapでベースとなるカラーマップテクスチャを指定します。

インスペクタで設定出来る項目では

Material Typeで素材のタイプを指定。Standardで標準、Specular Colorで鏡面反射色、Translucentで半透明、Simple Litでシンプルな光の影響を受ける、Simple Lit Translucentはシンプルな光の影響を受ける半透明物質。
Use Base Color Mapはベースとなるカラーマップの設定です。Noneは設定なし、ColorはRGB値、AlphaはA値、Color And AlphaでRGBA値を使用します。
Diffusion Profileは拡散の設定値(Translucent関連のみ表示される)
Multiply Thickness With Alphaはアルファの厚さを有効にするかどうか(Translucent関連のみ表示される)
Use Mask Mapはマスクマップを使用するかどうか、チェックを入れるとコンテキスト内に項目が表示されます。
Use Normal Mapはノーマルマップを使用するかどうか、チェックを入れるとコンテキスト内に項目が表示されます。
Use Emissive Mapは放射性マップを使用するかどうか、チェックを入れるとコンテキスト内に項目が表示されます。
Color Modeは色の設定。Noneは何も設定しない、Base Colorはベースカラーのみ使用、Emissiveは放射のみ、Base Color And Emissiveはベースカラーと放射両方使用。
Use Emissiveは放射カラーを使用するかどうか、チェックを入れるとコンテキスト内に項目が表示されます。
Double Sidedは両面を表示するかどうか
Enable Shadowsは影を有効にするか(Lit関連のみ表示)
Enable Specularは鏡面反射光を有効にするかどうか(Lit関連のみ表示)
Enable Cookieはライトに設定したクッキーを有効にするかどうか(Lit関連のみ表示)
Enable Env Lightは拡散環境光を有効にするかどうか(Lit関連のみ表示)

Lit Mesh Output

Lit Mesh Outputコンテキストは光の影響を受けるテクスチャ付きのメッシュを出力します。

VisualEffectGraphのLitMeshOutputコンテキスト

Meshにはパーティクルに表示するメッシュを指定します。
Sub Mesh Maskはよくわかりません。

インスペクタで設定出来る項目では

Only Ambient Lightingにチェックを入れると環境光のみ作用します。

ほとんどの項目がLit Cube Outputコンテキストと同じです。

Lit Quad Output

Lit Quad Outputは光の影響を受けるQuadの出力をします。

VisualEffectGraphのLit Quad Outputコンテキスト

ほとんどがLit Cube Outputコンテキストと同じで、インスペクタにひとつだけNormal Bendingという違う項目が表示されます。

こちらにチェックを入れるとLit Quad OutputコンテキストにBend Normal Factor項目が表示され数値を変更する事でノーマルマップの屈折を行います。

Lit Sphere Output

Lit Sphere Outputは光の影響を受ける球を出力します。

VisualEffectGraphのLit Sphere Outputコンテキスト

Smoothnessは滑らかさ
Metallicは金属度合い

Mesh Output

Mesh Outputはメッシュを出力します。

VisualEffectGraphのMesh Outputコンテキスト

設定出来る項目の説明はCube Outputをご覧ください。

Point Output

Point Outputコンテキストは点のパーティクルを出力します。

VisualEffectGraphのPoint Outputコンテキスト

設定項目の説明はCube Outputをご覧ください。

Quad Output

Quad OutputはQuad(四面)を出力します。

VisualEffectGraphのQuad Outputコンテキスト

設定項目の説明はCube Outputをご覧ください。

Spawn

Spawnコンテキストはパーティクルを生成します。

VisualEffectGraphのSpawnコンテキスト

StartとStopにはイベントコンテキストを繋げ、イベントが発生した時にSpawnコンテキストを実行と停止が出来ます。

SpawnコンテキストはSpawnEventを出力し、Initializeコンテキスト等の入力に繋げることが出来ます。

Static Mesh Output

Static Mesh Outputはシェーダーを使用してメッシュを出力します。

VisualEffectGraphのStatic Mesh Outputコンテキスト

Shader項目で設定したシェーダーのプロパティが項目として表示されるので、選択したシェーダーによって項目が変わります。

Update

Updateコンテキストはフレームレートで実行されるコンテキストでパーティクルが更新されます。

VisualEffectGraphのUpdateコンテキスト

Operator

Operatorを見ていきます。

VisualEffectGraphのOperator項目

Operator内でも細かく分岐されています。

Attribute

Attributeを見ていきます。

VisualEffectGraphのAttribute項目

Age Over Lifetime

Age Over Lifetimeは生存期間内の年齢を0~1の間で取得出来ます。

VisualEffectGraphのAge Over Lifetimeノード

Get Attribute

Get Attributeノード系は値の取得をすることが出来ます。

Get Attribute 取得する属性

となるものは選択した状態でインスペクタで属性を変更出来ます。

Visual Effect GraphのGet Attributeノード

上はGet Attribute ageの画像ですが、選択した状態でインスペクタで属性を変えることが出来ます。

Get Attribute系のグラフ上での設定項目はLocationが共通なので、この後はそれぞれ何を取得出来るか?だけで画像は省略します。

Location項目は

Currentで現在のシミュレーションの値を取得します。その属性を使用していない場合はデフォルト値が返るようです。
Sourceはパーティクルの生成をしたイベントの事で、Initializeコンテキストのみで使用できるようです。

Sourceに関しては今のところ使い道がわからないのでスルーしておきます。

Get Attribute age

パーティクルの年齢を取得します。

Get Attribute alive

生存しているかどうかのboolを取得します。

Get Attribute alpha

アルファ値を取得します。

Get Attribute angle

角度を取得します。

Maskにxyzを記述する事で対応した軸のみを表示することが出来ます。

Get Attribute angularVelocity

角速度を取得します。

Maskにxyzを記述する事で対応した軸のみを表示することが出来ます。

Get Attribute axisX

軸をX軸にした角度を取得します。

Get Attribute axisY

軸をY軸にした角度を取得します。

Get Attribute axisZ

軸をZ軸にした角度を取得します。

Get Attribute color

色を取得します。

Get Attribute direction

方向を取得します。

Get Attribute lifetime

生存期間を取得します。

Get Attribute mass

質量を取得します。

Get Attribute oldPosition

以前の位置を取得します。

Get Attribute particleId

パーティクルIDを取得します。

Get Attribute pivot

ピポット点を取得します。

Maskにxyzを記述する事で対応した軸のみを表示することが出来ます。

Get Attribute position

位置を取得します。

Get Attribute scale

スケールを取得します。

Maskにxyzを記述する事で対応した軸のみを表示することが出来ます。

Get Attribute seed

シード(種)を取得します。

Get Attribute size

サイズを取得します。

Get Attribute spawnTime

生成された時間を取得します。

Get Attribute targetPosition

ターゲット位置を取得します。

Get Attribute texIndex

texIndex(パラパラ漫画の1コマとして使用する部分の番号)を取得します。

Get Attribute velocity

速度を取得します。

Bitwise

Bitwiseについて見ていきます。

VisualEffectGraphのBitwise項目

設定項目はほとんどがXとYのみで、ComplementだけX項目になりますが、ほぼ同じなので画像はAddだけになります。

And

AndはAとBの入力のビット単位の論理積(両方1ならば1を返しそれ以外は0を返す)を出力します。

Aに6(2進数で110)Bに5(2進数で101)を入力すると出力は4(2進数で100)となります。

Complement

ComplementはXで指定した値をビット反転するようです。

例えばXに36(100100)を入力すると

Left Shift

Left ShiftはAで指定した値をBで指定したビット数分左シフトします(マイナス数値が使えないのでおそらく論理シフト)。

例えばAに6(2進数で110)でBに2を指定すると110を2ビット左にシフトするので、11000になり、結果として2⁴ + 2³ = 24となります。

Or

OrはAとBの入力のビット単位の論理和(どちらかが1ならば1を出力、共に0ならば0を出力)を出力します。

Aに6(2進数で110)Bに5(2進数で101)を入力すると出力は7(2進数で111)となります。

Right Shift

Right ShiftはAで指定した値をBで指定したビット数分右シフトします(マイナス数値が使えないのでおそらく論理シフト)。

例えばAに6(2進数で110)でBに2を指定すると110を2ビット右にシフトするので、001になり、結果として2⁰ = 1となります。

Xor

Xorはビット単位の排他的論理和を出力します(お互いのビットが違う場合は1、同じ場合は0)。

例えばAに36(2進数で100100)、Bに28(2進数で011100)を入力すると56(2進数で111000)が出力されます。

BuiltIn

BuiltInを見ていきます。

VisualEffectGraphのBuiltIn項目

DeltaTime

DeltaTimeはコンテキスト実行時のDeltaTimeを出力します。

Visual Effect GraphのDeltaTimeノード

おそらく前回のUpdateコンテキスト実行から現在のUpdateコンテキストが実行されるまでの時間。

LocalToWorld

LocalToWorldはローカル軸からワールド軸へと変換した行列を出力します。

VisualEffectGraphのLocalToWorldノード

Main Camera

Main Cameraはメインカメラの情報を出力します。

VisualEffectGraphのMainCameraノード

SystemSeed

SystemSeedは現在のシードを出力します。

VisualEffectGraphのSystemSeedノード

TotalTime

TotalTimeは最後のPlayイベントからの経過時間を出力します。

Visual Effect GraphのTotalTimeノード

WorldToLocal

WorldToLocalはワールド軸からローカル軸へと変換した行列を出力します。

VisualEffectGraphのWorldToLocalノード

Color

Colorについて見ていきます。

VisualEffectGraphのColor項目

Color Luma

Color Lumaは指定した色から輝度を出力します。

VisualEffectGraphのColor Lumaノード

HSV to RGB

HSVからRGBへと変換し出力します。

VisualEffectGraphのHSV to RGBノード

RGB to HSV

RGBからHSVへと変換し出力

VisualEffectGraphのRGB to HSVノード

Inline

Inlineについて見ていきます。

VisualEffectGraphのInline項目

AABox

AABox(Axis-Aligned-Box)はCenterで中心位置、Sizeでボックスのサイズを指定し出力します。

VisualEffectGraphのAABoxノード

AnimationCurve

AnimationCurveはグラフを使って値を変化させ出力します。

VisualEffectGraphのAnimationCurveノード

ArcCircle

ArcCircleはCenterで中心位置、Radiusで半径、Arcで角度(ラジアンで指定)を指定して円を出力します。

VisualEffectGraphのArcCircleノード

ArcCone

ArcConeはCenterで中心位置、Radius0で下部分の円の半径、Radius1で上部分の円の半径、Heightで高さ、Arcで角度を指定し円錐?を出力します。

VisualEffectGraphのArcConeノード

ArcSphere

ArcSphereはCenterで中心位置、Radiusで半径、Arcで角度を指定し球を出力します。

VisualEffectGraphのArcSphereノード

ArcTorus

ArcTorusはCenterで中心位置、Major Radiusで全体の半径、Minor Radiusでドーナツの半径、Arcで角度を計算しドーナツデータの出力をします。

VisualEffectGraphのArcTorusノード

bool

boolは真偽値を出力します。

VisualEffectGraphのboolノード

Camera

Cameraはカメラデータを設定し出力します。

VisualEffectGraphのCameraノード

Circle

CircleはCircleデータを設定し出力します。

VisualEffectGraphのCircleノード

Color

ColorはColorデータを設定し出力します。

VisualEffectGraphのColorノード

Cone

ConeはConeデータを設定し出力します。

VisualEffectGraphのConeノード

Cubemap

CubemapはCubemapを指定し出力します。

VisualEffectGraphのCubemapノード

CubemapArray

CubemapArrayはCubemapArrayを指定し出力します。

VisualEffectGraphのCubemapArrayノード

Cylinder

CylinderはCenterで中心位置、Radiusで半径、Heightで高さを指定し円柱を作成し出力します。

VisualEffectGraphのCylinderノード

Direction

Directionは方向を設定し、出力します。

VisualEffectGraphのDirectionノード

FlipBook

FlipBookはflipBook(パラパラ漫画)用のデータを設定し出力します。

VisualEffectGraphのFlipbookノード

float

floatは浮動小数点値を設定し出力します。

VisualEffectGraphのfloatノード

Gradient

Gradientはグラディエーションカラーを設定し出力します。

VisualEffectGraphのGradientノード

int

intはint値を設定し出力します。

VisualEffectGraphのintノード

Line

LineはStartでスタート位置、Endでエンド位置を設定し線を出力します。

VisualEffectGraphのLineノード

Matrix4×4

Matrix4×4は4×4の行列を設定し出力します。

VisualEffectGraphのMatrix4×4ノード

Mesh

Meshはメッシュを指定し出力します。

VisualEffectGraphのMeshノード

OrientedBox

OrientedBoxはCenterで中心位置、Anglesで角度、Sizeでサイズを指定してCubeを作成し出力します。シーン上でハンドルを操作して回転させることが可能です。

VisualEffectGraphのOrientedBoxノード

Plane

PlaneはPositionで位置、Normalで面の向きを指定したPlaneを作成し出力します。

VisualEffectGraphのPlaneノード

Position

Positionは位置を設定し出力します。

VisualEffectGraphのPositionノード

Sphere

SphereはCenterで中心位置、Radiusで半径を設定し円を出力します。

VisualEffectGraphのSphereノード

Texture2D

Texture2Dはテクスチャを指定し出力します。

VisualEffectGraphのTexture2Dノード

Texture2DArray

Texture2DArrayはTexture2DArrayを指定し出力します。

VisualEffectGraphのTexture2DArrayノード

Texture3D

Texture3DはTexture3Dを指定し出力します。

VisualEffectGraphのTexture3Dノード

Torus

TorusはCenterで中心位置、Major Radiusでドーナツ全体の半径、Minor Radiusでドーナツの半径を指定しドーナツを出力します。

VisualEffectGraphのTorusノード

Transform

TransformはTransform情報を設定し出力します。

VisualEffectGraphのTransformノード

uint

uintは符号なしintを設定し出力します。

VisualEffectGraphのuintノード

Vector

Vector系はまとめて記述します。(^_^;)

VisualEffectGraphのVector系ノード

VectorとVector3は同じ?でXYZの値を設定し出力します。

Vector2はXYを設定し出力します。

Vector4はXYZWを設定し出力します。

Logic

Logicを見ていきます。

VisualEffectGraphのLogic項目

And

Andは入力Aと入力Bの論理積を出力します。

VisualEffectGraphのAndノード

Branch

BranchはPredicateにチェックが入っていればtrueに設定した値、チェックが入っていなければfalseに設定した値を出力します。

Visual Effect GraphのBranchノード

Compare

CompareはConditionで指定した比較方法でLeftとRightに指定した値を比較し、真偽値を出力します。

VisualEffectGraphのCompareノード

ConditionはEqualで同値、NotEqualで同値ではない、LessはLeftが小さい時、LessOrEqualはLeftがRightと同じか小さい時、GreaterはLeftがRightより大きい時、GreaterOrEqualはLeftがRightと同じか大きい時にtrue、それ以外はfalseを返します。

Nand

Nandは入力AとBの否定論理積を出力します。

VisualEffectGraphのNandノード

論理積の反転したものが出力されるので、AとBが共にtrueの時はfalse、それ以外はtrueを返します。

Nor

Norは入力AとBの否定論理和を出力します。

VisualEffectGraphのNorノード

AとBが共にfalseの時だけtrue、それ以外はfalseを出力します。

Not

Notは入力Aの否定を出力します。

VisualEffectGraphのNotノード

Or

Orは入力AとBの論理和を出力します。

VisualEffectGraphのOrノード

Probability Sampling

Probability Samplingの

SeedでPerParticleでパーティクル毎、PerComponentでコンポーネント事。
Constantにチェックを入れるとコンスタンツに変更されます。
Entry Countに設定した数分のWeightとデータが表示されます。

おそらく確率によって使用するデータを変更する時等に使えると思います。

VisualEffectGraphのProbability Samplingノード

Weightの数値が大きければ大きいほどそのデータを利用する確率が高くなります。
Hashはハッシュ値の設定?

Probability Samplingの右上の歯車をクリックするとデータの選択が出来ます。

Probability Samplingの歯車を押す

選択出来るデータはVector3やColor等があり、選択した後に再度歯車を押すと最初のデータが表示されます。

Switch

Switchはデータをスイッチさせるノードです。

VisualEffectGraphのSwitchノード

Entry Countでデータ数を設定。
Test Valueでは選択するデータの数値
Value0~が設定するデータになります。
DefaultはTest Valueで指定したデータのインデックスがない場合に出力する値になります。

上の画像の例でいえば、Test Valueを0としている為Value0のデータであるRGBが0.5のデータが出力されます。

Probability Samplingと同じようにSwitchで扱うデータは右上の歯車を押して変更する事が出来ます。

Math

Mathを見ていきます。

VisualEffectGraphのMath項目

Arithmetic

Arithmeticを見ていきます。

Visual Effect GraphのArithmetic項目

ここからは設定する項目が2入力または3入力でほぼ同じ為、画像は省略します。(´Д`)

Add等は入力ポートを増やすことが出来4入力以上の計算もすることが出来ます。

またノードの右上にある歯車を押すことで設定するデータ型を入力毎に変更する事が出来ます(入力AとBは別のデータ型にする)。

VisualEffectGraphのAddノードで入力毎にデータを変える

データを選択する他に入力データのタイトルも変更出来ます。

Absolute

Absoluteは設定した数値の絶対値を出力します。

Add

Addは設定した入力A、Bを足して出力します。

Divide

Divideは入力Aを入力Bで割った値を出力します。

Fractional

Fractionalは設定した値の小数部分を出力します。

Lerp

Lerpは入力X、Yに設定した数値の割合をSに設定します。割合は0~1の間で割り当てられ、それを超えた場合は比率で増減します。

例えば入力Xに10、入力Yに0を設定して、Sに0.3を設定すると7が出力されます。

Modulo

Moduloは入力Aを入力Bで割った余りを出力します。

Multiply

Multiplyは入力Aに入力Bを掛けます。

Negate

Negateは設定した数値を反転しマイナスにし出力します(マイナスの場合はプラスに)。

One Minus

One Minusは1から設定した数値を引いて出力します。

Power

Powerは入力Aの入力B乗を計算します。

例えば入力Aが2で入力Bが4の場合は2の4乗を計算するので16が出力されます。

Reciprocal

Reciprocalは1を入力値で割った値(逆数)が出力されます。

例えば入力が10であれば1/10で0.1が出力されます。

Sign

Signは入力した値が正なら1、負なら-1を出力します。

SmoothStep

SmoothStepは入力Xから入力YへSで設定した数値でスムーズに移行が行われ出力されます。

Square Root

Square Rootは入力した値の平方根を計算し出力します。

Step

StepはValueで設定した値がThresholdで設定した値を超えた時は1、それ以下の時は0を出力します。

Subtract

Subtractは入力AからBを引いて出力します。

Clamp

Clampを見ていきます。

VisualEffectGraphのClamp項目

こちらも画像は省略します。

Ceiling

Ceilingは設定した数値以上の最大の整数を出力します。

Clamp

ClampはInputに設定した値をMinとMaxの間の数値に制限して出力します。

Discretize

Discretizeは入力Aの値を入力Bで与えたステップで離散化し出力します。

Floor

Floorは設定した値以下の整数を出力します。

Maximum

Maximumは入力値で最大の値を出力します。

Minimum

Minimumは入力値で最小の値を出力します。

Round

Roundは設定した値に一番近い整数を出力します(小数点以下を四捨五入)。

Saturate

Saturateは入力値を0~1の間に制限します。

Constants

Constantsを見ていきます。

VisualEffectGraphのConstants項目

Epsilon

Epsilonはイプシロン(計算機で取り扱える最小値)を出力します。

VisualEffectGraphのEpsilonノード

Pi

Piはπ、2π、π/2、π/3を出力出来ます。πは円周率です。

VisualEffectGraphのPiノード

Coordinates

Coordinatesを見ていきます。

VisualEffectGraphのCoordinates項目

Polar to Rectangular

Polar to Rectangularは極座標から長方形を出力します。

VisualEffectGraphのPolar to Rectangular

Angleで角度Distanceで距離を指定し、そこから座標が求まります。

Rectangular to Polar

Rectangular to Polarは長方形から極座標を出力します。

VisualEffectGraphのRectangular to Polarノード

XY座標からAngleとDistanceが求まります。

Rectangular to Spherical

Rectangular to Sphericalは長方形から球形を出力します。

VisualEffectGraphのRectangular to Sphericalノード

Spherical to Rectangular

Spherical to Rectangularは球形から長方形を出力します。

VisualEffectGraphのSpherical to Rectangularノード

Geometry

Geometryを見ていきます。

VisualEffectGraphのGeometry項目

個々の設定値は見てすぐわかるものばかりなので画像は省略します。

Area(Circle)

Area(Circle)は設定した円の面積を出力します。

Change Space

Change SpaceはLocalとWorldを切り替えます。

Distance(Line)

DistanceはPositionで指定した点からStartからEndに引いた線までの距離と最短位置を出力します。

Distance(Plane)

Distance(Plane)はPositionで指定した点からPlaneまでの距離と最短位置を出力します。

Distance(Sphere)

Distance(Sphere)はPositionで指定した点からSphereまでの距離と最短位置を出力します。

Transform(Direction)

以下Transform系ですが参考サイトのUnityWiki等を調べましたがよくわかりませんでした。

Transform(Direction)はTransformの情報にDirectionで設定した方向へ移動させたベクトルを出力します。

Transform、Direction共にWとLを切り替える事が出来、ワールド軸とローカル軸の変換が出来ます。

Transform(Matrix)

Transform(Matrix)はTransformの情報にMatrixの情報を使って行列を出力します(よくわかりません)。

Transform(Position)

Transform(Position)はTransform情報からPositionの位置分動かした先のベクトルを出力します。

Transform(Direction)と同じようにTransform、Positionのワールド軸とローカル軸をW、Lを切り替えることで行えます。

Transform(Vector)

Transform(Vector)はTransform情報にVector情報を足したベクトルを出力します。

Transform(Direction)と同じようにTransform、Positionのワールド軸とローカル軸をW、Lを切り替えることで行えます。

Volume(Axis Aligned Box)

Volume(Axis Aligned box)は設定したボックスの体積を出力します。

Volume(Cone)

Volume(Cone)は設定した円錐の体積を出力します。

Volume(Cylinder)

Volume(Cylinder)は設定した円柱の体積を出力します。

Volume(Oriented Box)

Volume(Oriented Box)は方向付けされたボックスの体積を出力します。

Volume(Sphere)

Volume(Sphere)は設定した球の体積を出力します。

Volume(Torus)

Volume(Torus)は設定したドーナツの体積を出力します。

Remap

Remapを見ていきます。

VisualEffectGraphのRemap項目

Remap

RemapはClampにチェックを入れるとNew Range MinとNew Range Maxの間の数値に出力を制限することが出来ます。
Old Range MinとOld Range Maxは割合であるInputの制限値で、
New Range MinとNew Range Maxは出力の制限値になります。

VisualEffectGraphのRemapノード

Remap[0..1] => [-1..1]

Remap[0..1] => [-1..1]は0~1の値を-1~1の値に変換します。

Clampにチェックを入れていれば-1~1の値に制限されますが、チェックしない場合は(input * 2)- 1の計算になります。

Remap[-1..1] => [0..1]

Remap[-1..1] => [0..1]は―1~1の値を0~1の値に変換します。

Clampにチェックを入れていれば0から1の値に制限されますが、チェックしない場合は(input * 0.5)+ 0.5の計算になります。

Trigonometry

Trigonometryを見ていきます。

VisualEffectGraphのTrigonometry項目

Cosine

Cosineはコサインのラジアン値を出力します。

Sine

Sineはサインのラジアン値を出力します。

Tangent

Tangentはタンジェントのラジアン値を出力します。

Vector

Vectorを見ていきます。

VisualEffectGraphのVector項目

Append Vector

Append Vectorは任意の数のスカラーやベクトルから多成分ベクトルを作成します。

使い方はわかりません。

Cross Product

Cross Productは二つのベクトルの外積を出力します。

Distance

Distanceは二つのベクトルの距離を出力します。

Dot Product

Dot Productは二つのベクトルの内積を出力します。

Length

Lengthはベクトルの長さを出力します。

Look At

Look AtはFromで指定した位置からToで指定した位置を見たTransform情報を出力します。

Upは表の向きを表しています。

例えばFromを(0, 0, 0)、Toを(1, 0, 0)とし、Upを(0, 1, 0)とすると出力されるTransformは

Position(0, 0, 0)、Angles(0, 90, 0)、Scale(1, 1, 1)となります。

Normalize

Normalizeはベクトルを正規化します。

Rotate2D

Rotate2DはPositionの位置をRotation Centerを中心にAngle角度回転した位置を出力します。

Rotate3D

Rotate3DはPositionの位置をRotation Centerを中心にRotation Axisを軸にしてAngle角度回転した位置を出力します。

Sample Bezier

Sample BezierはABCDに設定した位置をの補間位置をTで指定して出力する事が出来ます。

VisualEffectGraphのSampleBezier

Tが0ならAの場所、1ならDの場所になり、その間は補間位置が出力されます。

Squared Distance

Squared Distanceは2点間の距離の2乗を出力します。

Squared Length

Squared Lengthはベクトルの長さの2乗を出力します。

Swizzle

SwizzleはVector4のベクトルからMaskで指定したxyzwの入力に応じて対応するベクトルを出力します。

Maskにxyzだけを書くとVector4からVector3に変換します。

Wave

Waveを見ていきます。

VisualEffectGraphのWave項目

Sawtooth Wave

Sawtooth WaveはInputで入力Frequencyで周波数、Minで最小値、Maxで最大値を設定し、のこぎり波を出力します。

VisualEffectGraphのSawtooth Waveノード

Sine Wave

Sine WaveはInputで入力Frequencyで周波数、Minで最小値、Maxで最大値を設定し、サイン波を出力します。

Square Wave

Square WaveはInputで入力Frequencyで周波数、Minで最小値、Maxで最大値を設定し、方形波を出力します。

Triangle Wave

Triangle WaveはInputで入力Frequencyで周波数、Minで最小値、Maxで最大値を設定し、三角波を出力します。

Sequential 3D

Sequential 3Dに関してはわかりませんでした。

VisualEffectGraphのSequential 3D

Sequential Sphere

Sequential Sphereに関してはわかりませんでした。

VisualEffectGraphのSequential Circle

Sequential LIne

Sequential LineはStartでスタート位置、Endでエンド位置を設定した線を引き、Countで割合の分割数を指定し、indexでその番号を指定します(indexは0から)。

VisualEffectGraphのSequential Line

例えば上の例で言うとindexが0の時はXYZが(0, 0, 0)、indexが9の時は(-1, 5, 0)が出力されます。

Noise

Noiseを見ていきます。

VisualEffectGraphのNoise項目

Noize項目はDimensionsとTypeを変更するだけで設定する項目はほとんど同じです。

VisualEffectGraphのCellular Noise 1D

Cellular Noise

Cellular Noise系は市松のノイズを出力します。

Dimensionsで次元、Typeでノイズのタイプを指定します。
Coordinateは座標
Frequencyは周波数
Octavesはノイズレイヤーの数
Roughnessは粗さ
Lacunarityはフラクタルの空間の密度
Rangeは幅

を指定します。

Cellular Noise 2D、Cellular Noise 3Dは座標軸が増えただけで設定は同じです。

Perlin Curl Noise

Perlin Curl Noise系はパーリンノイズとカール(巻く)したものを出力します。

Perlin Curl Noise 3Dは軸が増えただけです。

設定項目はほとんどCellular Noise 1Dと同じです。

Amplitudeは振幅を設定します。

Perlin Noise

Perlin Noise系はパーリンノイズを出力します。

設定はCellular Noiseと同じです。

Value Curl Noise

Value Curl Noise系はバリューノイズとカールしたものを出力します。

設定値はPerlin Curl Noiseと同じです。

Value Noise

Value Noise系はバリューノイズを出力します。

設定値はCellular Noiseと同じです。

VoroNoise2D

VoroNoise2Dはボロノイのノイズを出力します。

Coordinateで座標
Amplitudeで振幅
Frequencyで周波数
Warpはセルの形の歪みの設定
Smoothnessはセル間の端のスムーズ差の設定

Random

Randomを見ていきます。

VisualEffectGraphのRandom項目

Random Number

Random Numberはランダムな数値を出力します。

VisualEffectGraphのRandom Numberノード

SeedのPerParticleはパーティクル毎、PerComponentはコンポーネント毎。
Constantにチェックを入れるとコンスタントに実行します。
Minは最小値
Maxは最大値
Seedはランダムの種の設定

Sampling

Samplingを見ていきます。

VisualEffectGraphのSampling項目

Sample Curve

Sample Curveはアニメーションカーブで値、Timeで抽出する時間を設定し、Timeにおけるアニメーションカーブの値を出力します。

VisualEffectGraphのSample Curveノード

Sample Gradient

Sample GradientはGradientにグラディエーションカラーを設定し、Timeで抽出するカラーを選択し出力します。

VisualEffectGraphのSample Gradientノード

Sample Texture2D

Sample Texture 2DはTextureに設定したテクスチャをUVで設定した位置とMip Level(ミップマップレベル)で抽出した値を出力します。

VisualEffectGraphのSample Texture 2Dノード

Sample Texture2DArray

Sample Texture2DArrayはSample Texture 2Dとほとんど同じで、Sliceでテクスチャを切り取ったインデックス番号を指定し二次元配列を抽出し出力します。

Sample Texture3D

Sample Texture3DはSample Texture2Dの3D版です。

Sample TextureCube

Sample TextureCubeはSample Texture2DのCube版です。

Sample TextureCubeArray

Sample TextureCubeArrayはSample Texture2DArrayのCube版です。

Time

Timeを見ていきます。

VisualEffectGraphのTime項目

Periodic Total Time

Periodic Total TimeはRangeで与えられた範囲内をPeriodで指定した時間で取得し出力します。

VisualEffectGraphのPeriodic Total Timeノード

例えばRangeのxに0、vに1、Periodに5を設定すると、5秒間で0~1へと値が遷移します。

Total Time

Total Timeはパーティクル毎にランダム化されたデルタタイムの割合で合計時間を出力するそうです。(^_^;)

VisualEffectGraphのTotal Timeノード

Utility

Utilityを見ていきます。

VisualEffectGraphのUtility項目

Point Cache

Point Cacheはパーティクルの位置や属性等を保存する時に使用します。

VisualEffectGraphのPoint Cacheノード

Point Cacheに設定するアセットはUnityメニューのWindow→Visual Effect Graph→Utilities→Point Cache Bake Toolから作成出来ます。

Point Cache Bake Toolの開き方

Point Cache Bake Toolを選択するとウインドウが開きます。

Point Cache Bake Toolウインドウ

上はBake ModeをMeshにしてMeshにCapsuleを指定した時の画像です。

Save to pCache file…ボタンを押すとPoint Cacheノード用のアセットファイルを作成する事が出来ます。

Point Cacheノード用のアセットファイル

ファイルが出来たらPoint Cacheノードにドラッグ&ドロップするか、Asset右側の◎を押して作成したファイルを選択します。

Point Cacheの使い方についてはUnity BlogのSample #2にあります。

Visual Effect Graph Samples – Unity Blog
Visual Effect Graph empowers you to author next-generation visual effects through its node-based behaviors and GPU-based compute power. For starters, we re...

System

Systemを見ていきます。

VisualEffectGraphのSystem項目

Empty Particle System

Empty Particle Systemは空のコンテキストの流れを作成します。

VisualEffectGraphのEmpty Particle System

Simple Particle System

Simple Particle Systemはコンテキストのフローと各コンテキストにシンプルなブロックを設定したものを作成します。

VisualEffectGraphのSimple Particle System

Simple Static Mesh

Simple Static MeshはStatic Mesh Outputにシンプルな設定を施したものを作成します。

VisualEffectGraphのSimple Static Mesh

Simple Swarm Particle System

Simple Swarm Particle SystemはシンプルなSwarm(群れ)のパーティクルを発生するコンテキストとブロックを作成します。

VisualEffectGraphのSimple Swarm Particle System

Simple Swarm Particle Systemで作成されたデフォルトのパーティクルは

VisualEffectGraphのSimpleSwarmParticleSystemのデフォルトのパーティクル

上のような感じでそのままですごいエフェクトになってますね。(^^)/

Misc

Miscを見ていきます。

VisualEffectGraphのMisc項目

Group Node

Group Nodeはノードをグループ分けする時に使用します。

VisualEffectGraphのGroup Nodeノード

グループ名はタイトル部分をダブルクリックして編集する事が出来ます。

Gropu Nodeを選択した状態でSpaceキーまたは右クリックからCreate Nodeでグループに属するノードの作成が出来ます。

他のやり方としては、例えばEmpty Particle System全体をグループ分けしたい時に、Empty Particle Systemで作成されたノードを全部選択した状態で右クリックからGroup Selectionを選択すればグループ分けされます。

終わりに

Visual Effect Graphの現時点(2019/04/02時点)の全てのノードを見てきました。

途中から画像の省略やら説明の省略やらがだいぶありますが・・・・(^_^;)

こういった全部の機能を見ていく記事は今後やめようかな・・・非常に時間がかかる・・・(´Д`)

参考サイト

UnityWiki-VFXContext

UnityWiki-VFXOperators

コメント

タイトルとURLをコピーしました