このシリーズの記事一覧 (クリックで開閉)
【 ナイアガラ超基礎 】
例えば次のような場合にダイナミックインプットを使う
SpawnRate
を「最初は少なく、徐々に大きくしたい」といった場合Velocity
の方向をランダムに変えたい他にも様々な使い方があるが、上の例のように「プロパティの値を逐次変化させる」ものがダイナミックインプットである。
※原点とパーティクルの距離に応じて処理を変化させる記事は別途あるので次を参照
【UE5 ナイアガラ】パーティクルを「距離」で変化させる方法 | 謎の技術研究部
私のWEBサイトでは「ダイナミックインプット」と呼んでいるが、これは英語の機能名をカタカナにしただけである(Dynamic Inputs)
日本語版では「動的入力」というワードが採用されているがいまいちピンとこないので今後もダイナミックインプットと呼ぶことにする。
初心者向けということで、基本概念+よく使いそうなものだけに絞って解説。
難しいダイナミックインプットに関してはこの記事では取り扱わない。
例をみて解説する。
まずはSpawn Rate
にAdd Velocity
をつけただけの例を作る。
Velocity
のX=100
として左側に球が流れるだけのもの。
このVelocity
に乱数を追加してみたい。
まずはプロパティ右側にあるのチェーンのようなマークをクリックする。
注意:ここではUnreal Engine 5
を利用している。古いバージョンではチェーンのマークではないが同じ位置にあるはずだ。
検索窓が現れるので
ここに「random」と入れて検索しRandom Range Vector
を選ぶ。
するとプロパティの入力にRandom Range Vector
が設定され入力フォームの形式が変わっている事がわかる
Random Range Vector
はMinimum
を最低値、Maximum
を最大値としてその間の値をランダムに出力するダイナミックインプットだ。
このダイナミックインプットはXYZそれぞれ別々で入力ができる。
ひとまず最初の例として、Xは100のまま固定、Y軸がブレるようにしてみた。
結果は次のようにY軸方向がランダムになっているのが分かる。
これでダイナミックインプットの設定の方法はわかったと思う。
ここからはなぜ「チェーンのマーク」になっているのかを考えてみる。
先程の例で今度は「break」と検索してMake Vector
を選ぶ。
元々XYZがひとまとまりの入力だったが、別々に分割されていることが分かると思う。
そして注目すべきは右側のチェーンマークがXYZそれぞれに「更に適用」できるということだ。
上の例ではMake Vector
で直接検索してももちろん良いが、注意点がある。
今回は値がXYZ値だったのでbreakで検索するとMake Vector
が出てくるが、
Color
のモジュールでbreakを検索するとMake Linear Color
が現れる。
つまり、適用するプロパティの入力数に応じて別々のbreak用のインプットとなるので注意。
したがって値を分けるダイナミックインプットを使う時は常に「break」で検索するのが良い。
これはrandomなどで検索したときも同じでモジュールによって名称が変わる可能性があるので注意しよう。
では実際にこのXYZで分割された値にさらにダイナミックインプットを入れ子にしてみる。
ダイナミックインプット唯一の欠点は数珠つなぎにしていくと「見にくくなる」という点。
今回は次の作業を行っている
Cosine
を入れてScale=100
Sine
を入れてScale=100
100
(になっているが正面からみるだけの場合は0と変わりない)既に複雑でなにをやっているかわからないので、ここでは
「ダイナミックインプットの中にダイナミックインプットを入れることができる」
ということだけ覚えておこう。
チェーンの形状をしているのはこのように「繋いでいける」からだと思われる(私の予想)
ちなみにこの結果は次のようになる。
シューティングゲームでよくある敵が使ってくるヤツだ。
何度も言うが今はサインコサインは覚えなくて良い。
最後に非常によく使うものをもうひとつ紹介する。
検索で「curve」で現れるFloat from Curve
ここではパーティクル更新のカラーをbreakしてR
に設定している。
カーブは時間に応じて設定したカーブの値に変化するというシンプルなものでこの設定だと1秒後にR
の値が0~500
に増加するようになっている。
このカーブは非常によく使うのでとりあえず最初は覚えておきたい。
線を右クリックすると新しい頂点が追加できる。
また各点をクリックしてドラッグしても良いし時間
と値
に直接数字を入れても良い。
ざっくりだが、結果は次のようになる。
発射されたパーティクルは時間が立つごとに赤に変わっていく。
Curve
は非常によく使うので初めに覚えておくにはベストかと思う。
Make Vector
」や「Make Linear Color
」などそれぞれに対応したインプットを使うCurve
系はよく使うダイナミックインプットは沢山の種類があるため一部しか紹介していない。
この先例を見ながらひとつずつ覚えていったほうが良いので紹介はここまでとする。
少し慣れが必要な機能だがUnreal Engine自体に実装されてそれほど時間が経っていない。
今後更に使いやすくなっていくはず。
今後の記事では積極的に使っていきたい。