4
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

【VFX Graph】Point Cacheを利用して形状に添わせたエフェクトを作成する

概要

メッシュデータから Point Chache(ポイントキャッシュ) を作成し、頂点データから VFXGraph のエフェクトを作成するサンプルです。

最終的に球に沿ってパーティクルを発生させて以下のような爆破効果を作ります。

output.gif

VFXGraphの初期配置に関しては、以下記事を参照してください。

■ Unity 2019.4 で VFXGraph を使ってみる (HDRP)
https://qiita.com/beckyJPN/items/31274d76059b373f2941

環境

OS:Windows 10
Unity:2019.4.0f1

メッシュからPoint Chacheの作成

まずは Point Chache を作成します。
以前は別途ツールが必要だったらしいですが、現在は標準ツールとして組み込まれているようです。

  • Windowメニュー > Visual Effects > Utilities > Point Cache Bake Tool image.png

上記を選択すると、 Point Chache を作成するツールが表示されます。
対象とするメッシュを選択したいので Mesh の丸い部分をクリック。
image.png

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

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

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

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

VFXGraphの設定

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

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

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

先程の Sphere を選択しましょう。
image.png

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

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

Blockが追加されたら、先程作成した Point CacheAttributeMap:positionSet Position from MapAttribute Map を接続します。

これで、パーティクルの位置がメッシュに沿って発生するようになります。
image.png

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

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

Output Particle QuadMain Texture を変更します。
image.png

今回は Default-Particle を使用します。
image.png

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

Constant Spawn RateRate100Initialize ParticleCapacity1000 としました。
image.png

これで、だいぶ球体感が出てきました。
image.png

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

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

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

次に、右下の調節バーを選択肢、同様に HDR をクリック
image.png

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

以上の設定で、爆破っぽいエフェクトが作成できました。
output.gif

おわりに

今回の記事は、VFXGraphの設定記事でも参照した、以下動画の最初の部分を参考に記事としたものです。
動画ではBlenderのモデルからPoint Cacheを作成されています。

以下動画も合わせて確認すると、VFXGraphの導入が捗るのではないかと思いますので、ぜひ一度視聴される事をおすすめします!

■ VFX Graph でなんか作る(4月16日号) - Unityステーション
https://youtu.be/6Ff7S4ocNGs?t=1340
VFX Graph でなんか作る(4月16日号) - Unityステーション

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
4
Help us understand the problem. What are the problem?