【Unity】UnityへFGAをインポートしてVisual Effect GraphのVectorFieldとして使う方法

.fgaに焼いたVectorFieldをUnityへインポートする

VectorFieldとは、ざっくり言えばパーティクルに速度を与えるために事前計算した力場のようなものです。

UnityではVisual Effect Graphの"Vector Field Force"ブロックとして実装されています。(あと2018.3のShurikenパーティクルシステムにもあるはず) f:id:fortysan:20181107042018p:plain

Visual Effect Graphのサンプルで言うと、Unityのロゴが出るサンプルで利用されています。 f:id:fortysan:20181107041939p:plain

UE4では、Vector Fieldモジュールとして実装されており、.fgaという拡張子のファイルでインポートすることができるのですが、Unityの場合3Dテクスチャに変換する必要があり、標準で.fgaからUnityの3Dテクスチャへインポートする手段が(現在のところ)ありません。

Mega Flow等有料のアセットを買ってインポートしてもいいのですが、.fgaのインポーターができてしまったので、インポーターの公開とその使い方を書こうと思います。

Vector Fieldの焼き方は前の記事などを参考にしてみてください。

Unity向け.fgaインポーター

github.com

リポジトリをクローンしてプロジェクトに入れるか、または.unitypackageを提供しているので、これをプロジェクトへインストールしてください。 MITライセンスです。

使い方

インストール後は、Window/Visual Effects配下にFGA Importerが現れます

f:id:fortysan:20181107043036p:plain

Import FGA を押すとインポート元VectorField(.fga)と変換先の3DTextureアセット(.asset)を聞かれるので、任意の場所を指定してください。

焼けたら、Visual Effect GraphのVector Field Forceブロックの"Vector Field"へ入れて利用することができます。

その他

バグとか見つけたら、Githubのissueの方へお願いします。