VisualEffectGraphのサンプルを眺めてみる

VisualEffectGraphのサンプルを探す

いきなりですが、VisualEffectGraphのサンプルがScriptableRenderPipelineのリポジトリvfx/2018.3ブランチのTestProjects配下に存在するので、中を開けて使えそうなTipsを掘り出してみようと思います。

あとフォーラムにもいくつか有志が作ったエフェクトがあるようです。

 

Particleを床に敷き詰める

適当な範囲で床にパーティクルを敷き詰める方法ですが、RandomNumberとAppendVectorで初期位置を決めて敷き詰めるだけです。 AABoxとかは使わない。 また、Remapなどを併用すると簡単にサイズを変えることができます。 f:id:fortysan:20181031235650p:plain

これとノイズを併用するとこんな事ができます。Lineの波、的な… f:id:fortysan:20181101004117g:plain

   Graphはこんな感じです。 f:id:fortysan:20181101004155p:plain

パーティクルと指定位置の距離を取る

生成した各Particleの位置を取るには、AttributeのPositionを参照します。

座標同士の距離を取るには、Distanceを使います。

利用できるAttributeには例として、以下のようなものがあります。(ソース)

 f:id:fortysan:20181101004613p:plain

主にParticleの位置、速度、色、サイズ、経過時間、残り時間、回転などです。

他にはLineOutputを利用する場合のみには線の向かう方向、パーティクルの前フレームでの位置、TextureSheetAnimationの指定位置などがあるようです。

 

メッシュの形にParticleを出す

任意のメッシュの表面や体積などからパーティクルを放出するには、Point Cacheを利用します。 先日の剣の消失エフェクトなどもこれで作ってます。

今回はHoudini使いによく焼かれたり切り刻まれたりするPigHeadパイセンにご登場いただきます。 f:id:fortysan:20181101011123p:plain

メッシュをFBXか何かでUnityへインポートしたあと、Window/Visual Effects/Utilities/Point Cache Bake Toolを開きます。

f:id:fortysan:20181101011931p:plain

Save to pCache file...を押すと、Unity用のPoint Cacheアセットを出力することができます。これをVFXEditor内で使うには、"Point Cache"ノードと、"Set Position from Map"ノードを利用します。

 f:id:fortysan:20181101012705p:plain

Sci-Fi Pig... f:id:fortysan:20181101012758p:plain

ここで作成したPoint CacheはUnity専用で現状他DCCでは利用できませんが、エクスポートツールの実装が予定されいるようです。  

とりあえずここまで。

次はVectorFieldやDistance Fieldあたりの焼き方を模索しようかなと思います。