概要
メッシュデータから Point Chache(ポイントキャッシュ) を作成し、頂点データから VFXGraph のエフェクトを作成するサンプルです。
最終的に球に沿ってパーティクルを発生させて以下のような爆破効果を作ります。
VFXGraphの初期配置に関しては、以下記事を参照してください。
■ Unity 2019.4 で VFXGraph を使ってみる (HDRP)
https://qiita.com/beckyJPN/items/31274d76059b373f2941
環境
OS:Windows 10
Unity:2019.4.0f1
メッシュからPoint Chacheの作成
まずは Point Chache を作成します。
以前は別途ツールが必要だったらしいですが、現在は標準ツールとして組み込まれているようです。
上記を選択すると、 Point Chache を作成するツールが表示されます。
対象とするメッシュを選択したいので Mesh の丸い部分をクリック。

今回は、デフォルトで用意されている Sphere を選択します。

Save to pCache file... ボタンをクリックするとファイルを出力できます。

適当に名前を付けて保存してください。
今回の例では Sphere.pcache としました。

保存を押すと、Assetにpcacheファイルが追加されます。

VFXGraphの設定
次はVFXGraphに出力したpcacheファイルを適用していきます。
まず、何もない部分で右クリックでメニューを表示し、 Create Node を選択します。

Nodeの追加ウィンドウが開くので、検索バーに point と入力。
Point Cache が絞り込まれると思うので選択して作成します。

作成すると以下のようなノードが作成されます。
こちらに先ほど作成した Point Chache のアセットを適用するため、丸い部分をクリックします。

次に、Initialize部分にPointChacheをもとに位置情報を設定できる Set Position from Map を追加します。
Initialize Particle の下の方で右クリックメニューを表示。
Create Block を選択します。

Block追加のメニューが表示されるので setpositionfrom と検索バーに入力し、 Set Position from Map を選択しましょう。

Blockが追加されたら、先程作成した Point Cache の AttributeMap:position と Set Position from Map の Attribute Map を接続します。
これで、パーティクルの位置がメッシュに沿って発生するようになります。

デフォルトの設定だと、 Velocity の効果により湯気のように上に登っていく状態となるので、 Set Velocity Random のチェックを外して無効化します。
ブロックごと削除してしまっても構いません。

この状態でシーンを見てみると、パーティクルが球に沿って発生している状態となっています。
ただし、デフォルトのテクスチャだと様子が分かりづらいので変更しましょう。

Output Particle Quad の Main Texture を変更します。

もう一度シーンを見てみると、さっきよりはちょっと状況がわかりやすくなったかと思います。
ただ、数が少なすぎて球体感がよくわからないので、パーティクルの数を増やしましょう。

Constant Spawn Rate の Rate を 100 、 Initialize Particle の Capacity を 1000 としました。

更に爆発感を出すためカラーのクリックします。
Set Color over Life の Color を調整しましょう。

HDR Gradient Editor が表示されるので、まず左下の調節バーを選択して、 HDR と書かれた部分をクリックします。

HDR Color 設定ウィンドウが表示されます。
以下のように設定しました。
R:255 G:0 B:0 Intensity:3

こちらは以下のように設定しました。
R:255 G:255 B:0 Intensity:1

おわりに
今回の記事は、VFXGraphの設定記事でも参照した、以下動画の最初の部分を参考に記事としたものです。
動画ではBlenderのモデルからPoint Cacheを作成されています。
以下動画も合わせて確認すると、VFXGraphの導入が捗るのではないかと思いますので、ぜひ一度視聴される事をおすすめします!
■ VFX Graph でなんか作る(4月16日号) - Unityステーション
https://youtu.be/6Ff7S4ocNGs?t=1340






