Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【Unity】Visual Effect GraphのPointCacheを使って少しリッチに表現してみる

本記事ではVFXGraphを使って馬のメッシュから発生するパーティクル表現を作っていきます。

メッシュを用意

今回は以前Unity Asset Storeで購入していたLowPolyAnimatedAnimalsの中にある馬メッシュを使わせてもらいます。

今回はこの馬のメッシュからパーティクルを発生させていくために、ポイントキャッシュ(PointCache)を使っていきます。

※ポイントキャッシュとは、頂点座標や法線情報が焼き込まれたテクスチャです。

VFXGraph付随のPoint Cache Bake Toolを使用

任意のメッシュからポイントキャッシュを作成するツールはVFXGraphをインストールすると付いてきます。

image

Window > Visual Effects > Utilities > Point Cache Bake ToolからPoint Cache Bake Toolを開きます。

Meshにポイントキャッシュにするメッシュをセットします。

ここで言うメッシュは、画像のように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 MapAttribute Mapに接続します。

すると、このように馬メッシュ内の各座標が各パーティクルの座標にアサインされ、その座標からパーティクルが発生するようになります。

重要なポイントは今回作られたポイントキャッシュの座標は頂点座標ではないということです。
ポイントキャッシュ作成時に座標が補間される形でベイクされているため今回のようなローポリモデルでもイイ感じになります。これが頂点座標だけだとスカスカな見た目の馬になったでしょう。

という事でポイントキャッシュ凄く便利です。

最後に

一応Update Particle Contextノード以降のキャプチャも貼っておきます。

環境

  • Unity2020.1.6f1
  • macOS Catalina 10.15.5
  • Visual Effect Graph 8.2.0

参考

VFX Graph でなんか作る(4月16日号) - Unityステーション

ohbashunsuke
組織においてはチーム開発力が必須! Unityで個人開発しかしたことのない若手向けに現場からチーム開発のノウハウをお届けするアカウント。 職種を越えた動きが求められるチーム開発。元デザイナー経験を生かしクリエーターと連携したエンジニアリング情報を提供します。 株式会社サイバーエージェント ゲーム部門所属
https://www.shibuya24.info/
engineerlife
技術力をベースに人生を謳歌する人たちのコミュニティです。
https://community.camp-fire.jp/projects/view/280040
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