Niagaraの応用練習(1) ライン模様 

Niagaraの応用練習(1)

UE4確認バージョン  4.20.0

※なおこの段階ではNiagaraはアーリーアクセスなので

※今後内容がかわるかもしれないのでご注意ください

 ライン模様 

基礎編ばかりだと流石にあきるでしょうし、

機能の説明で、「で?それどう使うの?」

と言う方もおられるでしょうし、

今まで説明した機能の応用で、

ラインで模様を書いてみようと思います。

今回やった結果を貼ると。

f:id:CrabPunch:20180729104606p:plain

 

 動画版がこちら 

 

 

 前置き

 詳細な作り方を説明するまえに、大雑把な説明だけ

最初に書こうかと思います。

プログラムやマテリアル、エフェクトは

既存のものを真似てから勉強にもなるかと思いますが、

自分自身でのどのようなものを作りたいか

構想してからそのものがつくれればより楽しいかと思います。

考え方を読んでわからない場合に詳細は足しておきます。

 

作り方(概要)

・ラインの表示はRibbonRenderで行う(入門4の応用)

・親Emitterで円の動きをするModuleを作る(入門7と9と10の応用)

・親の動きを子EmitterのRibbonにて追従する(入門10の応用)

※ここまでくればほぼ完成のようなもの

 

・あとは円の動きを再生しながら、一定の確率で円の半径を大きくしていく

以上おしまい。

 

 

 

 

作り方(詳細)

 手順1 パラメーターを用意する

 用意するパラメーターは7個で

・Particles.CircleTime

パーティクルの円の経過時間のためのカウンターです。

・Particles.CircleSpeed

円の描画速度。360度を基準に角度で速度を表しています。

5というのは5度づつ円が進むという意味です。

(デフォルトは5度)

・Particles.CircleLv

円の大きさの段階

・Particles.CircleLvPer

円 大きくなる確率0-100%(デフォルトは5%)

・Particles.CircleInitLength

円の初期の半径

・Particles.CircleAddLength

円の初期の半径に対してParticles.CircleLvに応じて

半径を大きくする値。

・Particles.CircleDir

円の回転方向が時計周りか、反時計周りか

  

 

f:id:CrabPunch:20180729110603p:plain

 

f:id:CrabPunch:20180729110735p:plain

 

 手順2 Moduleの作成

パーティクルの円の動きをするためのModuleを自作します。

場所はParticleUpdateに「UpdateCircle」をいう自作Moduleを追加しましょう。

f:id:CrabPunch:20180729111940p:plain

 outputとinput

f:id:CrabPunch:20180729112408p:plain

 

f:id:CrabPunch:20180729112336p:plain

全体図

f:id:CrabPunch:20180729113709p:plain

 円の位置計算

f:id:CrabPunch:20180729114320p:plain

 確率

f:id:CrabPunch:20180729114345p:plain

最終の繋がり

f:id:CrabPunch:20180729114415p:plain

 

 

 手順3 EmitterにModule追加

上記のUpdateCircleを親Emitterに追加して

子EmitterにてRibbon描画すれば、ほぼ完成です。

 

 手順4 SystemにEmitterを追加

上記で作ったEmitterをSystem2つ追加して、片方だけParticles.CircleDirを逆設定すれば

右回りと左回りそれぞれが表現できます。

f:id:CrabPunch:20180729115131p:plain