(UE4)EmberGen→UE4にインポート-フリップブック編-(EmberGen)
*概要
EmberGenで作成したシミュレーションをUE4にインポートする
*作業環境
UE4:4.26
EmberGen:v0.7.5.2
OS:Windows10
EmberGen、UE4どちらも勉強中のため、
もし間違った認識などあればご指摘いただけると助かります。
EmberGenの爆発をUE4に
執筆時点で一番最適な手段は、
シミュレーションをテクスチャ化し、フリップブックで再生する方法かと思います。
今回はフリップブックの作成手順を学んでいきます。
EmberGenのエクスポート方法
現状、EmberGenをUE4でリアルタイムにシミュレートする手段は無く、
エクスポートしたものをインポートする必要があります。
EmberGenは静止画ファイル、もしくはVDBという形式でエクスポートできます。

EmberGenのエクスポートはノードから行います。
画像のように、ImageとVDBでノードが分かれていますが、
フリップブックを書き出す場合はImageを選びます。

Export:Imageノードの詳細です。
ModeからFlipBookとSequenceを選択できますが、
UE4で扱うには、FlipBookの方を選びましょう。
フリップブックの使い方
フリップブックとはパラパラマンガという意味で、
一枚の画像データからテクスチャアニメーションを作成して使うことができます。

フリップブックは左上のフレームから開始されます。
First Frameは何フレーム目から書き出すか、
Num Framesは書き出すフレーム数です。

RenderノードのCapture TypesでRender Allを選ぶと、
全てのレンダーパスが書き出されます。
ほとんどの場合アルファが必要だと思うので、
Alphaにもチェックを入れましょう。

ノードを上記のように繋げて、エクスポートします。

このようなテクスチャシートが書き出されました。
解像度はデフォルトで2048×2048px、
フレームは8×8分割なので、1フレーム256pxになります。
これをUE4にインポートしてマテリアルを作成しましょう。
以下、UE4のワークスペースになります。

Blend ModeはMaskedにしておきます。
テクスチャをアニメートさせるためには、
FlipBookノードを使用します。

使い方はかなり簡単です。
まずは、以下のように組みましょう。

Number of Rows/Columnsには、EmberGenで書き出した時と同じ値を入力します。
これだけで、すでにアニメーションが始まります。

再生速度を変えたい場合、Timeノードに任意の数値をかけてAnimation Phaseに繋げます。

あとはEmissiveの数値等を調整し、最終的に以下のようになりました。

結果はこんな感じです。

あとはspriteノードでビルボードにしてもいいかもしれません。
フリップブックの難点
解像度
フリップブックの解像度を上げるには、
テクスチャシート自体の解像度を上げるか、
総フレーム数を減らすしかありません。

どちらも8×8の64フレームです。
どちらの手段もあまり実用的では無いと思いますし、
もっと良いやり方が他にある気がするのですが分からず…
何か知ってる方がいましたら、ご教授いただけると幸いです。
参考
・EmberGen Tutorial #0005: Creating Flipbooks For Games
・フリップブック アニメーションをレンダリングする
・UE4 MaterialのFlipBookノードについて
Discussion