2014年8月12日火曜日

FXMakerことはじめ

Unity アセット真夏のアドベントカレンダー 2014 Summer!
こちら8/12の担当をさせて頂くことになりました。
昨日の記事はmohammedariさんのVRで女の子に歯磨きするまでにやったことでした。

先日のアセットまみれのLT大会ではなんだこれ of the Todayを担当し、
便利でも有効でもないアセットを紹介しましたが今回はこちら

FXMakerを紹介したいとおもいます。

 FXMakerとは?

FXMakerとは簡単に言ってしまえばエフェクト作成ツールです。
値段が高いためかネット上を検索してもあまり情報はなく、使われているイメージは薄いですがとんでもなく作り込まれたGUIなどが光るアセットです。

肝心のエフェクトについてですが現在主流のShurikenに加えてLegacyなシステムにも対応しており、それらをより直感的に編集しやすくなっています。
また、汎用的なコンポーネントも複数含まれております。例えば
NCCurveAnimation
こちらでは基本的なTransformやColorなどのパラメータをカーブで指定することができるコンポーネントです。
ほかにもNcDuplicatorやNcAutoDestructなどなんとなくこう使えばいいのでは?ってものが用意されています。

エフェクトを作成するまで

FxMakerには編集用の専用シーンが存在します。
アセットをインポート後 IGSoft_Tools > sceneFXMaker のシーンを開き、実行してください



 すると

こんな感じのシーンが表示されます。
このシーンでエフェクトの編集を行います。

とりあえずエフェクトを出す

画面上部のビューではエフェクト作成用のProjectFolderを設定することができます。
ここではProjectFolderとGroupでエフェクトを整理することができます。
今回は新しく作成するので 1Project の Group1 を使用します。

UnityのProjectとしては IGSoft_Resources/Projects/1Project/Group1のフォルダに今後作業したものが保存されるようになります。

続いて画面左のPrefabListのビューを見てください。
ここでは先ほど指定したProject/Groupのフォルダに入っているエフェクト一覧が表示されます。今回は新規のものになるので空になっています。
新しいエフェクトを作成するには左上のNewボタンを押します。


するとこのようなウインドウが出てくるので、ここでテンプレートを指定できます。
 今回はEmptyを指定してください。

今度は画面右側のProjectHierarchyビューを確認してください。このビューはUnityでいうHierarchyビューとInspectorの合体したビューになります。今回は新規でEmptyなエフェクトがあることが確認できると思います。
 では、NewEffectの右にある [P] のボタンをクリックしてみましょう。
すると
 上のようなウインドウが表示されるはずです。ここでは現在FXMakerが管理しているエフェクトの一覧を参照することができ、先ほどのNewEffectに追加することができます。
試しに一つ選択してみましょう。

画面中央に選択したエフェクトが表示されることが確認できると思います。先ほどのウインドウは下部にあるCloseボタンで閉じてください。

なんとなく炎魔法っぽいエフェクトを作る

とりあえず基本的な操作はここまでで、実際にエフェクトを作成しましょう。
それではRPGでつかえる炎魔法のようなエフェクトを作成してみましょう
今回のエフェクトはFXMakerのサンプルを組み合わせるだけで作成することができます。
まずは先ほどの手順でEmptyを作成します。ちなみに


こちらのテキストボックスで名前を変更できます。(ちなみにテキストボックスの挙動に癖があるので注意してください)
今回はFireMagicにしました。続けてPrefabHierarchyビューから[P]を押し、EffectSample/Sampleのground13を選択します
何となく魔法陣のようなエフェクトが表示されるはずです。
PrefabHierarchyを見ると

このような構造になっていると思います。
続けてFireMagicの [E] ボタンを押してください。
このようなウインドウが表示されます。ここでは先ほど説明したスクリプトなどのコンポーネントをアタッチすることができます。
今回はNcEffectのNcAttachPrefabを選択し、Add Componentボタンを押してください。
NcAttachPrefabは既に作成されたエフェクトを実行時にInstantiateするコンポーネントです
FireMagicにTransformに加えて新たにNcAttachPrefabのコンポーネントが追加されていることが確認できるはずです。ここでNcAttachPrefabをクリックしUnityのInspectorを確認してみましょう、いくつか設定できるパラメータがあると思います。
とりあえずパラメータは弄らずに下部にある SelectPrefab ボタンを押します。プレハブ一覧が表示されると思うので、今回は EffectSample/Sample の explosion15 を選択しましょう。
すると目標のエフェクトに近いものが表示されるはずです。ですが



このままでは魔法陣と炎のエフェクトが同時に作られてしまいちょっと見た目がダサくなってしまっています。今回は炎のエフェクトを遅れて発生させましょう。
NcAttachPrefabを選択しInspectorを確認、fDelayTimeというパラメータがあるはずです。
これは名前の通りディレイをかけられるパラメータで、今回は0.3を指定しました。すると


いい感じのエフェクトができたと思います。
ゲーム中に組み込んでみる
ほかにもこんな感じに




まとめ

FXMakerを使用すればとりあえずそれっぽいエフェクトが簡単に作れます。
元々入っているサンプルでも面白いものが作れるのでちょっと高いですが試してみる価値はありそうです。今回紹介していませんが作成したエフェクトをスプライトアニメーションに変換したりスライダーによるエフェクトスピードの調整などまだまだたくさんの機能がありますので、そちらについては後日機会があれば...

明日はやまださんによる「ユニティちゃんにAssetStoreで販売しているモーションをアタッチしよう!」となります。