ゲーム開発備忘録

ゲームプログラマー UE4・5向けの記事を書いておりますので見ていただけるとありがたいです。

【UE4・UE5】〈Tips〉日本一わかりやすくNiagaraでスパーク(火花)エフェクトを作ってみる

目次

 

はじめに

 

今回はUE4,5のエフェクトシステムのナイアガラの基本的な作り方と実装方法を紹介します。

 

▼この記事でできること

 

解説

⓪ナイアガラの概要

ナイアガラはエミッタとシステムで構成されます。

 

エミッタで基本的なエフェクトを作成し、システムで複数のエミッタを組み合わせることで再利用可能なエフェクトを作成できます。

 

①ナイアガラエミッタの作成

コンテンツ右クリックからNiagaraエミッタを選択します。

 

新規エミッタを選択

 

テンプレートが複数用意されています。

 

スパークは一定地点からはじけるようなエフェクトにしたいのでDirectional Burstをベースに作っていきたいと思います。

 

ナイアガラエミッタの頭文字 NE_を付けて

NE_Sparkという名前にしました。

 

②環境設定

エミッタを開くとプレビュー画面があるのですが、この背景だと見えづらいので変更します。

 

ウィンドウ→プレビューシーン設定を開きます。

 

環境→ShowEnv~のチェックを外し

Colorを黒にします。

 

プレビュー背景が黒くなりエフェクトが見やすくなりました。

 

③ナイアガラエミッタの編集

 

エフェクトはモジュールの組み合わせでできています。

モジュールを変更することで挙動を大きく変えることができ、右のチェックボックスから有効無効を変更できます。


1.いっぱいパーティクルを出してみる

SpawnBurstIn~で生成量と生成する時間を調整できます。

極端に大きい値を入れて生成量が変化するのを確認しましょう。

 

 

値をランダムにすることもできます。

右の▼からRandomRangeIntを選択してみましょう。

 

最小値と最大値が編集できるようになりました。

 

このように定数ではなく値をランダムにすることで、同じエフェクトでもゲームっぽさを軽減することができます。

 

2.もっと拡散するようにする

パーティクルのスポーンにAddVelocityというモジュールがあります。

これはスポーン時に加える力なので、初速を決めるモジュールです。

既にランダム化されているようなので、値を調整してみましょう。

 

タイムラインのタブから~秒後の位置を見ることができます。

長いエフェクトだと、確認に時間がかかってしまうので積極的に活用してみましょう。

 

拡散方向はConeのタブから変更できます。

斜め上方向に拡散してほしいのでZに1、Angleを90にしてみましょう。

 

Axisはプレビュー画面のアイコンを参考に調整しましょう。

▼編集前

▼編集後

 

3.光の筋を変形させる

リファレンスの火花を観察すると速度が速いと長い光の筋ですが速度が落ちると短く、粒子状になるようです。

このような速度に応じて形状を変化させたいときは、パーティクル更新のScaleSpriteSizebySpeedモジュールを使います。

 

速度が速いときはXを1.5にしてより光の筋のように見せます。

 

4.カラーを変更してみる

火花といったらオレンジ色なので着色してみましょう。

スポーン時のカラーを変更してみます。

より火花っぽくなりましたね

 

少し物足りないのでScaleColorで少し赤く発光させてみましょう。

 

▼編集前

▼編集後

 

5.当たり判定を追加する

粒子に当たり判定を持たせるためにコリジョンモジュールを追加します。

パーティクル更新にCollisionを追加します。

 

これでエミッタの準備完了です。

 

④ナイアガラシステムの作成

エミッタ単体では使用できないためシステムを作成します。

エミッタを右クリックしてシステムを作成します。

 

ナイアガラシステムの頭文字NS_をつけてNS_Sparkとしました。

 

システム化されたNiagaraはレベル上に配置できます。

ドラッグアンドドロップで配置してみましょう。

 

一度しか再生されないのでシステム側でループ再生できるようにします。

NS_Sparkを開いてエミッタの更新からLoopBehaviorをInfiniteに変更します。

 

レベルに戻るとパーティクルが出続けると思います。

Durationで間隔を短くできるので試してみましょう。

 

 

⑤おまけ、ブループリントから生成する

こちらの記事の最後でこのエフェクトを着弾したときに生成するようにしていました。

namiton.hatenablog.jp

 

Niagaraを生成するにはSpawnSystem系のノードを使います。

レイのヒット時のNormal方向からエフェクトがスポーンするようにしています。汎用性が高いのでどんどん使っていきましょう。

 

最後に

UE4やUE5向けの記事を書いています。

皆様の応援が投稿のモチベーションになりますので

コメントやTwitterのフォローなどしていただけるとありがたいです。

それではよきゲーム開発を。