どーも、ぐるたか@guru_takaです。
Unity の Visual Effect Graph(以降、VFX Graph)にて、Point Cashe(ポイントキャッシュ)を使い、メッシュをパーティクル化する方法を紹介します。
・Visual Effect Graph:10.4.0
目次
Point Cache とは?
Point Cache とは、VFX Graph における機能の1つで、各頂点におけるポジションや法線の情報を格納できます。拡張子は .pcache
です。
VFX Graph にデフォルトで搭載されたツールを使うことで、メッシュから Point Cache を生成可能。位置などの情報を VFX Graph で簡単に扱うことができ、面白い表現ができます!
全体の流れ
本記事では Point Cache を用いて、Kele くんをパーティクル化します。
全体像は以下の通りです!
STEP.1:Cube の Point Cache を生成
まず Widnows
> Visual Effect
> Utilities
> Point Cache Bake Tool
をクリックしましょう。
続いて、Point Cache を生成したいメッシュを選択し、適当な場所に保存してください!
以上で Point Cache の生成が完了になります。
STEP.2:VFX Graph と Cube の Point Cache を連携
後は生成した Point Cache を基に、各頂点をパーティクル化する VFX Graph の Asset を作成するだけです!ノードの構成は下図になります。
ポイントは以下3つです!
- Point Cache で得られた各頂点のポジション情報は Attribute Map に格納
- Attribute Map とは、パーティクルの固有値(ポジションなどの情報)が格納された Texture2D(データバッファ)
- ポジション情報が格納された Attribute Map を Position Map にパス
Point Cache は、頂点数、各頂点におけるポジション/法線の情報が格納された Attribute Map(≒Texture2D) で構成されています。
そのため、VFX Graph で各頂点のポジション情報を扱いたい場合は、ポジションの情報が格納された Attribute Map を Position Map に渡せば OK です!
最後に
以上です。Point Cache を使用することで、VFX Graph での表現の幅が広がります!
また、動的に Point Cache(厳密には Attribute Map)を生成することも可能で、下記事に詳細をまとめています。
【Unity】VFX Graph で 動的に Attribute Map を生成し、Position Map にセットする方法
アニメーションで動くメッシュに対し、VFX Graph で装飾するなど、応用範囲がより広がります。こちらも、参考になれば幸いです!
コメントを残す