UnityのVisual Effect Graphのブロックの説明

今回はUnityのVisual Effect Graphのブロックの詳細を見ていきたいと思います。

個々のブロックはUnityのWikiやサンプルを見たり、自分で実際に使って確認していますが、使い方がわからないものも多々あるのでご了承ください。(-_-)

Visual Effect Graphの設定と使い方については

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

Visual Effect Graphのコンテキストとノードの詳細については

UnityのVisual Effect Graphのノード、コンテキストの個々の詳細を見ていきたいと思います。

を参照してください。

スポンサーリンク

ブロック

ブロックはコンテキストに設定してパーティクルに効果を加える事が出来ます。

ブロックは選択したコンテキストによって設定出来るものが変わってきますので、Empty Particle Systemで作成される空のコンテキストフローにしたがって作成出来るブロックを見ていきます。

Spawnで設定出来るブロック

まずはSpawnコンテキストで設定出来るブロックを見ていきます。

Spawnコンテキストで設定出来るブロック

Constant Spawn Rate

Constant Spaw RateはRateで指定した数のパーティクルをコンスタントに生成します。

Constant Spawn Rateブロック

Periodic Burst

Periodic Burstは周期的にパーティクルを発生させます。

Periodic Burstブロック

Spawn ModeはConstantでコンスタントに、Randomでランダムにパーティクルを生成します。
Delay Modeの設定はSpawn Modeと同じでパーティクルの生成間隔のモードです。
Countは1回で生成するパーティクルの数。Spawn ModeをRandomにした場合はランダム値の範囲を指定し、その間で1度に生成するパーティクルの数がランダムに決定されます。
Delayはパーティクル生成の間隔。Delay ModeをRandomにした場合はランダム値の範囲を指定します。

Simple Burst

Simple Burstは1回だけパーティクルを発生させます。

設定する項目はPeriodic Burstと同じです。

Variable Spawn Rate

Variable Spawn RateはRateにパーティクル生成の割合(最小と最大)、Periodで割合の補間の数値を指定するようですが、ちょっとわかりません。

Variable Spawn Rateブロック

Attribute

SpawnのAttributeは

Set SpawnEvent 属性

という形でスポーンイベントの属性を設定するようですが、詳しい説明や使用しているサンプルが見当たらなかったのと、自分でも試してみましたがよくわからないので今のところわかりません。

VisualEffectGraphのAttribute項目

Custom

Customを見ていきます。

VisualEffectGraphのCustom

Loop And Delay

Loop And DelayはLoop Coundでループする回数、Loop Delayでパーティクルを生成する回数、Delayで一回のループから次のループへの時間間隔を設定すると思われます。

VisualEffectGraphのLoop And Delayブロック

例えばConstant Spawn Rateを10にして毎秒10個のパーティクルを生成するブロックを設定していた場合にLoop And DelayのLoop Countで2、Loop Delayで4、Delayで1を設定していた場合は、

最初に40個のパーティクルを生成し、その後1秒待って二回目のループで40個のパーティクルを生成します。

Set Spawn Time

Set Spawn Timeはスポーン時間を設定します。

VisualEffectGraphのSet Spawn Timeブロック

Spawn Over Distance

Spawn Over Distanceはよくわかりません。

VisualEffectGraphのSpawn Over Distanceブロック

VFX Custom Spawner Sample

VFX Custom Spawner Sampleはよくわかりません。

VFX Custom Spower Sample

VFX Custom Spawner Test

VFX Custom Spawner Testはよくわかりません。

VFX Custom Spawer Test

Initializeで設定出来るブロック

Initializeコンテキストに設定出来るブロックを見ていきます。

Initializeコンテキストに設定出来るブロック

Attribute

Attributeを見ていきます。

Initializeコンテキストに設定出来るAttribute項目

Curve

Curveを見ていきます。

Initializeコンテキストに設定出来るCurve項目

CurveのAttributeについて見ていきます。

CurveのAttributeはインスペクタやVFX上で項目を変化させて設定するものが変わるだけなので一括で説明します。

VFX上ではSample Modeで何によって抽出するかを変えることが出来ます。

Overlifeはパーティクルの寿命、BySpeedはパーティクルの速度、Randomはランダムな位置のアニメーションカーブ等の値、RandomConstantPerParticleはRandomと同じですがパーティクル全体が同じランダム値を使用、Cusotomはカスタム時間になります。

VisualEffectGRaphのCurveのAdd系

インスペクタは

InitializeのCurveのAdd系のブロックのインスペクタ

上のように表示され、Attributeで属性を変えることが出来ます。

ここでAge(パーティクルの年齢)やVelocity(パーティクルの速度)等に変更出来ます。

InitializeコンテキストのCurveのAdd系のインスペクタのAttribute

Compositionは値をどのように属性に加えるかです。

Overwriteは上書き、Addは抽出した値を現在の値に足し、Multiplyは抽出した値を現在の値に掛け、Blendは現在の値を抽出した値にブレンドします。

Sample ModeはVFX上の設定と同じです。

InitializeコンテキストのCurveのAdd系のComposition

Derived

Derivedを見ていきます。

Initializeコンテキストで設定できるDerived項目

Calculate Mass from Volume

Calculate Mass from Volumeは体積から質量を計算します。

VisualEffectGraphのCalculate Mass from Volume

Map

Mapを見ていきます。

Mapは指定したテクスチャから情報を抽出し属性に提供します。

MapはCurveと同じでVFX上でSample Mode、インスペクタ上でAttributeとCompositionを変更することが出来るので一括で説明していきます。

Initializeコンテキストで設定出来るMap系のブロック

Sample Modeで抽出方法を選択します。

Index Relativeは抽出するピクセルから正規化した位置からRelative Posで指定した位置を提供します。
Indexは抽出したピクセルインデックスを提供します。
Sequentialは指定されたインデックスでインデックスが粒子IDであるものを提供します。
Sample2DLODは位置とLODで2Dテクスチャをサンプリングします。
Sample3DLODは位置とLODで3Dテクスチャをサンプリングします。
Randomはランダムに取得します。
RandomUniformPerParticleはランダムに取得し、すべてのパーティクルで同一のランダム値になります。

AttributeとCompositionはCurveと同じなので省略します。

Set

Setを見ていきます。

Initializeコンテキストで設定出来るAttributeのSet系

Set系はインスペクタでAttribute、Composition、Source、Randomを設定出来ます。

VisualEffectGraphのAdd Ageブロック

AttributeとCompositionはCurveと同じです。

SourceのSlotの場合はVFX上で設定、Sourceに設定するとVFX上でInheritとなります。

Inheritの使い方については

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

の「Visual Effect GraphとTimelineを使う」の項目を参照してください。

Kill

Killを見ていきます。

Kill(AABox)

Kill(AABox)はCenterで中心位置、SizeでBoxのサイズを指定しそのボックスの内外かどうかでパーティクルを消滅させることが出来ます。

VisualEffectGraphのKill(AABox)ブロック

ModeがSolidの時はパーティクル発生時にボックス内部だった時に消滅し、Invertedは反転なのでボックス外でパーティクルが発生した時に消滅します。

Kill(Sphere)

Kill(Sphere)はCenterで中心位置、Radiusで半径を指定した球の内外かどうかでパーティクルを消滅させます。

その他の設定項目はKill(AABox)と同じです。

Position

Positionを見ていきます。

Positionはパーティクルを発生する位置を設定出来ます。

InitializeコンテキストのPosition項目

Positionは形状が違うだけで設定は同じなので一括で説明します。

VisualEffectGraphのPosition(AABox)ブロック

Position Modeは

Surfaceは表面から均等に
Volumeは体積から均等に
ThicknessAbsoluteは絶対的な厚さの面から均等に
ThicknessRelativeは形のサイズに対して厚い面から均等に

Position Sequential(Circle)、Position Sequential(Line)は円上、線上に順番にパーティクルを発生させます。

Position Sequential(ThreeDimensional)はOriginで最初の位置、Axis X、Axis Y、Axis Zで軸に対する移動値、Count X、Count Y、Count Zの数だけパーティクルを生成します。

Project On Depth

Project On Depthはよくわかりません。

VisualEffectGraphのProject On Depth

Velocity

Velocityを見ていきます。

InitializeコンテキストのVelocity項目

Add Velocity(Direction)

Add Velocity(Direction)は指定した方向にパーティクルの速度を足します。

Speed ModeはConstantでコンスタントに、Randomの場合はMin SpeedとMax Speedの間のランダム値をスピードに設定します。
Directionで方向、Speedで速さ、Direction Blendでどの程度方向を考慮するかを指定出来ます。

VisualEffectGraphのAdd Velocity(Direction)ブロック

インスペクタでCompositionを変更するとOverwrite(Set)、Add、Multiply、Blendを変更出来ます。

Add Velocity(Random Direction)

Add Velocity(Random Direction)はランダムな方向に速さを加えます。

Add Velocity(Speed)

Add Velocity(Speed)は速さを加えます。

Add Velocity(Spherical)

Add Velocity(Spherical)はCenterで球状の方向を指定し、その方向にSpeedの速さを加えます。

Add Velocity(Tangent)

Add Velocity(Tangent)はStartからEndで指定した位置に線を引き、その接線に向かった方向に速さを加えます。

Updateで設定出来るブロック

Updateコンテキストで設定出来るブロックを見ていきます。

Initializeコンテキストと同一の項目

Updateコンテキストで設定出来るブロックのAttribute、Kill、Position、VelocityはInitializeコンテキストと同じでタイミングだけ異なるので省略します。

Collision

Collisionを見ていきます。

UpdateコンテキストのCollision項目

Collider

Collider系は形状を選択し、パーティクルが衝突するようにします。

VisualEffectGraphのCollider(AABox)ブロック

ModeのSolidはそのままの形状、Invertedは反転したもの
Radius ModeのNoneは衝突自動判定の半径を使用せず、From SizeはSizeから、Customは自分で設定します。
Rough Surfaceは粗い設定を利用するかどうかでRoughness項目が追加され設定出来ます。
Elasticityは反発力
Frictionは摩擦
Lifetime Lossは衝突したことでパーティクルの生存期間を減らす量の割合

Collider(Depth)とCollider(Signed Depth Field)はよくわかりません。

FlipBook

FlipBookを見ていきます。

VisualEffectGraphのFlipBook項目

Flipbook Player

Flipbook PlayerはFlipBookを用いたパラパラ漫画のインデックスの更新をします。

Frame Rateで指定したフレームレートでFlipBookのインデックスを更新します。

VisualEffectGraphのFlipbook Playerブロック

Flipbook PlayerとFlipBookの使い方については

UnityのVisual Effect Graphのノード、コンテキストの個々の詳細を見ていきたいと思います。

の「Cube Output」項目を参照してください。

Force

Forceを見ていきます。

VisualEffectGraphのForce項目

Conform to Signed Distance Field

Conform to Signed Distance Fieldはよくわかりません。

Conform to Sphere

Conform to Sphereは球に接触すると接触面に付こうとする力を働かせます。

VisualEffectGraphのConform to  Sphereブロック

Attraction Speedは引き付けるスピード
Attraction Forceは引き付ける力
Stick Distanceは引き付ける力を働かせる表面からの距離
Stick Forceは表面とStick Distanceの間のパーティクルに働く力

Force

Forceは設定した方向に力を加えます。

VFXのForceブロック

ModeのAbsoluteは抵抗力なしに絶対的な力を加え、Relativeは相対的な力を加えます。
Velocityは速度
Dragはパーティクルに適用される抵抗力で他の力に抵抗します。

Gravity

Gravityは重力を加えます。

VFXのGravityブロック

Linear Drag

Linear DragはDrag Coefficient(抗力係数)と質量を考慮した線形抵抗をパーティクルに加えます。

Use Particle Sizeにチェックを入れるとパーティクルサイズのXの使用を可能にします。

VFXのLinear Dragブロック

Turbulence

Turbulenceはノイズ乱流をパーティクルに適用します。

VFXのTurbulenceブロック

ModeはAbsoluteで絶対、Relativeで相対
Field Transformはノイズに適用するTransform
Num Octavesはノイズに使用するオクターブ数
Roughnessは粗さ
Intensityは強さ
Dragは抵抗力の係数

Vector Field Force

Vector Field Forceはよくわかりません。

Implicit

ImplicitのAngularEulerIntegrationとEulerIntegrationはよくわかりません。

Outputコンテキストで設定出来るブロック

Outputコンテキストで設定出来るブロックを見ていきます。

Outputコンテキストで設定出来るブロック

InitializeやUpdateコンテキストと同一の項目

InitializeやUpdateコンテキストとAttribute、Kill、Position(Tile/Warp Positions以外)は同じ内容なので省略します。

Orientation

Orientationを見ていきます。

VFXのOutputのOrientation項目

Connect Target

Connect Targetはターゲットに接続し向く方向を変えます。

VFXのConnect Targetブロック

Orientationは方法でCameraはカメラの方向、Directionは指定した方向、LookAtPositionは指定した位置を向くようにします。
TargetPositionはターゲットとする位置でこの部分に向かってパーティクルを拡大・縮小をします。
LookDirectionは見る方向を指定します(OrientationがDirectionのみ)。
LookAtPositionは見る位置を指定します(OrientationがLookAtPositionのみ)。
Pivot Shiftでパーティクルのピポッドの相対位置を設定します。

Orient : Along Velocity

Orient : Along Velocityはパーティクルの正規化された速度に対応するY軸を使用してカメラの方向に回転します。

Orient : Face Camera Plane

Orient : Face Camera Planeはカメラ平面の方向に向けます。

Orient : Face Camera Position

Orient : Face Camera Planeはカメラの位置を向きますが、円形に自分自身を向けます。

PlaneとPositionの違いを確認するにはCube Outputを使うとわかりやすいかもしれません。

Orient : Fixed Axis

Orient : Fixed AxisはUpで指定した軸に回転します。

Orient : Fixed Orientation

Orient : Fixed OrientationはFontで前軸、Upで上軸を指定し方向付けをします。

Orient : Look At Line

Orient : Look At LineはStartとEndで指定した位置に線を引きそこを軸にして回転します。

Orient : Look At Position

Orient : Look At Positionは指定した位置を向けさせます。

Output

Outputを見ていきます。

VFXのOutput項目

Camera Fade

Camera Fadeはパーティクルがカメラからフェードします。

VFXのCamera Fadeブロック

Fade ModeのColorは色、Alphaは透明度、ColorAndAlphaは色と透明度のモードです。

Faded Distanceは設定した値より遠い場合はパーティクルがカメラから完全にフェードします。

Visible Distanceは設定した距離より短い時はパーティクルが完全に表示されます。

Subpixel Anti-Aliasing

Subpixel Anti-Aliasingは小さい粒子が1ピクセルより小さくなるのを防いで1ピクセルに固定します。

VFXのSubpixel Anti-Aliasingブロック

Size

Sizeを見ていきます。

VFXのSize項目

Screen Space Size

Screen Space Sizeはパーティクルのサイズをスクリーンサイズに合わせて比率を変えます。

VFXのScreen Space Sizeブロック

Size Modeの

PixelAbsoluteはSizeXを任意の解像度で実際のピクセルサイズと合わせます。
PixelRelativeResolutionはSizeXを指定した解像度にサイズを合わせます。
RatioRelativeToHeightは画面の高さを基準にしてSizeXのサイズを決定します。
RatioRelativeToWidthは画面の幅を基準にしてSizeXのサイズを決定します。
RatioRelativeToHeightAndWidthは画面の幅に対するSizeXと画面の高さに対するSizeYのサイズを決定します。

終わりに

ブロックに関しては機能がよくわからないものが多かったです。

まぁ普通は全部の機能を見ていこう!なんて思わないとは思いますが・・・・Unityのサンプルを見て勉強しなきゃいけないですね。(-_-)

参考サイト

UnityWiki-VFXBlocks-

スポンサーリンク

記事をシェアして頂ける方はこちら

フォローして頂くとやる気が出ます