VisualEffectGraphのサンプルを眺めてみる
VisualEffectGraphのサンプルを探す
いきなりですが、VisualEffectGraphのサンプルがScriptableRenderPipelineのリポジトリのvfx/2018.3
ブランチのTestProjects
配下に存在するので、中を開けて使えそうなTipsを掘り出してみようと思います。
あとフォーラムにもいくつか有志が作ったエフェクトがあるようです。
Particleを床に敷き詰める
適当な範囲で床にパーティクルを敷き詰める方法ですが、RandomNumberとAppendVectorで初期位置を決めて敷き詰めるだけです。 AABoxとかは使わない。 また、Remapなどを併用すると簡単にサイズを変えることができます。
これとノイズを併用するとこんな事ができます。Lineの波、的な…
Graphはこんな感じです。
パーティクルと指定位置の距離を取る
生成した各Particleの位置を取るには、AttributeのPositionを参照します。
座標同士の距離を取るには、Distanceを使います。
利用できるAttributeには例として、以下のようなものがあります。(ソース)
主にParticleの位置、速度、色、サイズ、経過時間、残り時間、回転などです。
他にはLineOutputを利用する場合のみには線の向かう方向、パーティクルの前フレームでの位置、TextureSheetAnimationの指定位置などがあるようです。
メッシュの形にParticleを出す
任意のメッシュの表面や体積などからパーティクルを放出するには、Point Cacheを利用します。 先日の剣の消失エフェクトなどもこれで作ってます。
あと剣の出現/消失エフェクトを付けた。これはVFXGraphをTimelineから動かしてます。 pic.twitter.com/E2UsPrKodx
— 40 (@dr40san) October 30, 2018
今回はHoudini使いによく焼かれたり切り刻まれたりするPigHeadパイセンにご登場いただきます。
メッシュをFBXか何かでUnityへインポートしたあと、Window/Visual Effects/Utilities/Point Cache Bake Tool
を開きます。
Save to pCache file...
を押すと、Unity用のPoint Cacheアセットを出力することができます。これをVFXEditor内で使うには、"Point Cache"ノードと、"Set Position from Map"ノードを利用します。
Sci-Fi Pig...
ここで作成したPoint CacheはUnity専用で現状他DCCでは利用できませんが、エクスポートツールの実装が予定されいるようです。
とりあえずここまで。
次はVectorFieldやDistance Fieldあたりの焼き方を模索しようかなと思います。