Unity

UnityでGAF pro(Flash To Unity)を使ってみた

GAFとは


GAFとはFlashで作成したswfをUnity、cocos2d-x、starlingなどで使用することを可能にするフォーマットです。
Flashの知識はあるけど、Unityのパーティクルの知識がないので、エフェクトはFlashで作りたい・・・という方々にはオススメです。

FREE版もありますが、今回はUnityのアセットストアよりGAF pro(Flash To Unity)を購入し、使用してみたいと思います。

値段


現在(2018年)の値段は$95です。

使用方法

swfファイルの作成


元となるswfファイルを用意します。
swfの作成方法は割愛させていただきます。

変換


GAF pro(Flash To Unity)をUnityプロジェクトにImportすると、UnityエディターのメニューにGAFというタブが追加されます。


GAF→Converterを選択します。


すると、GAFのConverterウィンドウが表示されます。


用意したswfファイルをドラッグ、もしくは直接ファイルを選択します。


次にGAFの保存先を指定します。
ここではGAF_Outputというフォルダを作って、その中に保存しています。


これでGAFを変換する準備が出来ましたので、CONVERTボタンを押します。


コンバート中はローディングの表示がされます。


変換が成功すると指定したフォルダに上記のような形でGAFのファイルが生成されます。


ただし、この状態ではPrefabが生成されていませんので、Prefabを生成します。
やり方は、GAF ConverterウィンドウのCREATE PREFABボタンを押します。

Resources Locationの変更

生成された.assetファイルを選択すると、Resources LocationがデフォルトだとGAF/Resources/Cache/になっているので、こちらのパスを同じ階層(Assets/GAF_Output)に変更します。
変更した後に、Rebuild GAF Resourcesのボタンを押すと、同じ階層に[フォルダ名]~というファイルが作成されます。
※Rebuild GAF Resourcesのボタンを押さなくても、Resource locationを変更した際に自動的に作成されている場合もあります。

GAFResoureceLoaderを作成する

自前のResourceLoaderを作成します。
※クラス名は好きにして問題ありません。

PrefabにGAFResoureceLoaderをアタッチ


CREATE PREFABボタンを押して生成されたPrefabに対し、上記で作成したGAFResoureceLoaderをアタッチします。
外部公開しているプロパティ「textureInternalResource(GAFTexturesResourceInternal)」にRebuild GAF Resourcesで生成された[フォルダ名]~を設定します。

PrefabのResouce managementの設定


Resouce managementTargetに上記で設定したGAFResoureceLoaderをアタッチします。
するとMedhodを選べるようになりますので、script内のpublicメソッドであるgetResourceを選択します。

(任意)加算設定

こちらは設定するかしないかは自由ですが参考までに。


加算をしたい場合は、マテリアルを選択し、ShaderをMobile→Particles→Additiveに設定します。

再生

これでGAFの設定は一通り終わったので、後は再生するだけです。

再生の方法はscriptから指定する場合や、あらかじめSceneに配置する場合など、自分が好きなように再生してみてください。


Prefabのインスタンス化と同時にGAFも再生したい場合はPrefabのSettingsで、「Play automatically」にチェックを入れておくことで、自動的に再生されます。

まとめ

使い方は慣れるとそこまでムズカシイものではないと思います。
Flashで作ったリソースを無駄にせずにUnityに取り込みたいという方は是非使ってみる価値はあると思います。

ただ、実際に運用していく中で色々と問題が起こったりもしました。
そちらについては別の機会に記事にまとめてみようと思います。

GAF Pro: Flash to Unity