本記事ではVFXGraphを使って馬のメッシュから発生するパーティクル表現を作っていきます。
メッシュを用意
今回は以前Unity Asset Storeで購入していたLowPolyAnimatedAnimalsの中にある馬メッシュを使わせてもらいます。
今回はこの馬のメッシュからパーティクルを発生させていくために、ポイントキャッシュ(PointCache)を使っていきます。
※ポイントキャッシュとは、頂点座標や法線情報が焼き込まれたテクスチャです。
VFXGraph付随のPoint Cache Bake Toolを使用
任意のメッシュからポイントキャッシュを作成するツールはVFXGraphをインストールすると付いてきます。
Window > Visual Effects > Utilities > Point Cache Bake Tool
からPoint Cache Bake Tool
を開きます。
ここで言うメッシュは、画像のようにHorse_Rig.fbx
の中のactor:Horse
を使います。
そしてSave to PCache file...
をクリックしてポイントキャッシュファイルを保存します。
ポイントキャッシュをVFXGraphで使う
VFXGraphエディタ上で右クリックしてCreate Node
からPoint Cache
を選択してPoint Chacheノードを作成します。
もしVFXGraphエディタの開き方が分からない方はこちらを参考にどうぞ
【Unity】そろそろVFXGraphを始めてみる
Assetに先程作成したポイントキャッシュファイルをセットします。
するとノードの接続プロパティが表示されます。
Point CacheノードのAttributeMap:Positionプロパティ
をSet Position from Map
のAttribute Map
に接続します。
すると、このように馬メッシュ内の各座標が各パーティクルの座標にアサインされ、その座標からパーティクルが発生するようになります。
重要なポイントは今回作られたポイントキャッシュの座標は頂点座標ではないということです。
ポイントキャッシュ作成時に座標が補間される形でベイクされているため今回のようなローポリモデルでもイイ感じになります。これが頂点座標だけだとスカスカな見た目の馬になったでしょう。
という事でポイントキャッシュ凄く便利です。
最後に
一応Update Particle Contextノード以降のキャプチャも貼っておきます。
環境
- Unity2020.1.6f1
- macOS Catalina 10.15.5
- Visual Effect Graph 8.2.0