single.php

Unreal Engine Naiagaraで雪を降らせる方法

ゲーム開発を試してみようと思い立ち、Unreal Engine 5をインストールして開発する過程で調べてみた部分を備忘録的に投稿します。今回は「Naiagara」を利用してレベル上に雨を降らせる方法を紹介します。

Naiagaraで雪を降らせる

オープンワールド形式のゲームで実装されている天候変化には雨や雪が降ることがあります。Unreal Engineには、複数のマテリアルの挙動をまとめて管理する「Naiagara」システムで簡単に追加できます。

先回は、こんな感じで雨を降らせる方法を紹介しました。

今回は、少し設定を変更して雪のように見える「Naiagara」の作成を紹介します。

レベルに雪に降らせる仕組み

Unreal Engineの「Naiagara」では、こんな感じで雨を作ることができます。

形状をランダムに生成した「マテリアル」を所定の範囲のスポーンして重力で落下させます。スポーン後にレベルに接触したら削除(デストロイ)します。

詳しい内容は、先回の別記事をご覧ください。

雨よりも、短く、大きめのマテリアルを、少な目にスポーンさせます。重力は少な目に設定してゆっくり落下させます。

レベルに接触した時点で、削除するのは雨と同じようなに設定します。

雨粒と違って地面に当たって弾ける表現はせずに、雪粒が接触した後は落下地点に一定時間表示させて消します。

実際には、雪が接触した後にレベルが濡れたり積もる表現も必要になりますが今回はサンプルということで、こんな感じで作成していきます。

雪になるマテリアル

最初に「Naiagara」で利用するための「マテリアル」を作成していきます。

1.[コンテンツドロワー]に[MT_Snow]マテリアルを作成します。

2. 追加された[MT_Snow]を開き、周囲がボヤけるグラフを組みます。(詳しい手順は、別記事をご覧ください)

ここまでの作業で雪粒を表現するマテリアルが出来上がりました。

雪を降らせる「Naiagara」

次にマテリアルをスポーンして落下させる「Naiagara」を作成していきます。

1.[コンテンツドロワー]を開いて[Naiagara システム]を追加して名前を “NS_Snow” に変更します。

2.[NS_Snow]を開いて雨の時と同じ様に[NE_Snow]ノードを作成します。(詳しい手順は、別記事をご覧ください)

ここからは雪のように見える設定変更の部分だけを紹介していきます。

3.[Spawn Rate]の値を雨よりも少なく “500” くらいに設定します。

4.[Color Mode]は、透明度を下げて白色に近づけます。

5. [Initialize Particle]の[Sprite Size]は雨よりも短く、太くなるように設定します。

6.[Gravity Force]の[Gravity]はゆっくり落下するように “-150” くらいに設定します。

7. 落下後の表示ように[NE_Melt]を追加して[Initialize Particle]の[Lifetime Mode]を “0.1” に設定します。

8.[Sprite Renderer]には雪粒と同じマテリアル[MT_Snow]を設定します。

レベルに配置して雪を降らせる

作成した「NS_Snow」をレベルに配置して雪を降らせてみます。

[コンテンツドロワー]を開いて[NS_Snow]をドラッグアンドドロップして適当な高さまで位置を調整します。

すると、こんな感じで雪が降りだします。予想よりも量が多い場合には[Spawn Rate]で加減します。

視点を移動させると、こんな感じで大きさがランダムで生成された雪粒が降ってくるのが分かります。

落下後は、少しだけ雪粒が留まってから消えるので地面で融けているように錯覚します。

ゲームを実行してキャラクターを近づけると、雪の中で寒そうに見えたら完成です。

ここまでの作業で雪粒を降らせる「Naiagara システム」が出来上がりました。

まとめ

今回も長い手順になりましたが、Unreal Engineでアクションゲームで見かける雪を表現する機能を作る手順について書きました。

今回は雨を降らせる「Naiagara」と同様で、落下速度やスポーンするマテリアルの形状を少し修正することで雪粒を降らせることができました。

Unreal Engineのゲーム開発で雨や雪などをレベルに表示させたい人の参考になれば幸いです。

スポンサーリンク

最後までご覧いただき、ありがとうございます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です