このシリーズの記事一覧 (クリックで開閉)
【 ナイアガラ超基礎 】
例えば次のような場合にダイナミックインプットを使う
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=100Sineを入れてScale=100100(になっているが正面からみるだけの場合は0と変わりない)既に複雑でなにをやっているかわからないので、ここでは
「ダイナミックインプットの中にダイナミックインプットを入れることができる」
ということだけ覚えておこう。
チェーンの形状をしているのはこのように「繋いでいける」からだと思われる(私の予想)
ちなみにこの結果は次のようになる。
シューティングゲームでよくある敵が使ってくるヤツだ。
何度も言うが今はサインコサインは覚えなくて良い。
最後に非常によく使うものをもうひとつ紹介する。
検索で「curve」で現れるFloat from Curve
ここではパーティクル更新のカラーをbreakしてRに設定している。
カーブは時間に応じて設定したカーブの値に変化するというシンプルなものでこの設定だと1秒後にRの値が0~500に増加するようになっている。
このカーブは非常によく使うのでとりあえず最初は覚えておきたい。
線を右クリックすると新しい頂点が追加できる。
また各点をクリックしてドラッグしても良いし時間と値に直接数字を入れても良い。
ざっくりだが、結果は次のようになる。
発射されたパーティクルは時間が立つごとに赤に変わっていく。
Curveは非常によく使うので初めに覚えておくにはベストかと思う。
Make Vector」や「Make Linear Color」などそれぞれに対応したインプットを使うCurve系はよく使うダイナミックインプットは沢山の種類があるため一部しか紹介していない。
この先例を見ながらひとつずつ覚えていったほうが良いので紹介はここまでとする。
少し慣れが必要な機能だがUnreal Engine自体に実装されてそれほど時間が経っていない。
今後更に使いやすくなっていくはず。
今後の記事では積極的に使っていきたい。
