#memo

indiedev太郎

SubUV用テクスチャの作成とその設定

https://i.gyazo.com/1eb2b57c8139f66e86f822d33b12ab81.gif


UE4のパーティクルシステム、たまにしか触らないので忘れてしまう…
ナイアガラはUE4.11でつくみたいな記憶があったけど、今触ったら普通にカスケードであった

SubUVってやつがいわゆる連番の画像をアニメーションしてくれるやつなので、それ用に画像を作っていく

まず適当に手書きエフェクトを用意する
これをSubUV用に並び替える

https://i.gyazo.com/42c39562ed155d28a5e56d2c8740c836.png

元画像のキャンバスサイズを拡張する、これは8枚のアニメなので横2、縦4にしているけれど、あとでUE側でこの比率を設定するので別に4x2でも1x8でも良い
並べる順番は左上が0でその右が1、行の終わりまで来ると一段下がる
大量に作成するならアクションなりで自動化しておいたほうが楽

この画像をテクスチャとして読み込んでマテリアルを作成する、テクスチャを右クリックするとマテリアル作成とかの他にSubUV用のアニメを作成するみたいなものがあるけれど、いまいちよくわからなかった…

次にパーティクルを新規で作成して、設定をしていく

https://i.gyazo.com/044fc657ac2a7c785faf226069a48458.png


Requiredでやること
・さっき作ったマテリアルを設定する
・SubUVの設定をする、補間方法をLinearに、自分がキャンバスサイズを拡大した割合で横縦の比率をいれる
・EmitterLoopを1に
→0だと無限ループ、作業中は0にしておいたほうがレベルで確認しやすい

Spawnでやること
・Rateの方は0にする
・Burstで0.0で1つスポーンさせる

Lifetimeでやること
・Lifetimeを設定する、ここで設定した秒数がアニメの再生開始から終わりまでの時間になる
→ちなみに、Requiredの方にEmitterDurationがあるけれど、これはエミッターの寿命で、Lifetimeが1秒、EmitterDurationが5秒なら、1秒アニメーション、4秒なにもないみたいな感じになる

InitialSizeでやること
・いい感じの大きさになるようにStartSizeを設定する
→実際にレベルに配置してそっちで確認したほうがわかりやすい

SubImageIndexでやること
・SubImageIndex>Distribution>Pointsを設定する
→Invalが切り替わるタイミングで、OutValがどの画像を表示させるか
→InValは実際の秒数じゃなくて、LifeTimeで設定した数値を1とした倍率
→なので、8枚のアニメーションがあるならそれぞれ0, 0.125, 0.25 .. にする(リニアなタイミングのばあい)
→OutValはSubUVの番号を渡す、最初から順に表示するなら0, 1, 2 ...

https://i.gyazo.com/661a1f755c4a1b37b917282cdab5ab9e.png

おわり


参考
Unreal Engine | SubUV モジュール
SubUV Particle (Tutorial) - Epic Wiki