【Niagara】スクラッチパットで三角関数を使った発生位置の制御
Verは4.26です
【初めに】
発生位置に三角関数を使うやり方
以前にも似たような内容は書きましたが
こちらの記事は
既存の「Niagara Dynamic Imput Script」
が主体のやり方だったので、別の手法のやり方として
とくに以前のVerではなかったスクラッチパットの機能のおかげで
作りつつ、アセットにもできるような機能も増えたので
今後はスクラッチパットで作る機会も増えそうなのでこの機会に
【スクラッチパットについて】
いわゆるモジュールを作るのと同じノードベースで作れる機能ではありますが。
こちらは、Niagaraのエミッターやシステム編集中でも新しく作り
それをそのまま適応するのもそうですが
アセットとして出力することもできます
試しで作ってみて、汎用性があったらアセット化して
そうでない場合はそのエミッターやシステム内でのみ使う、という選択が可能です。
【下準備】
今回はあくまでスクラッチパットの機能の記事なので
エミッターはテンプレートのこれから作っていきます。
上に動く動きがついているので、それでわかりにくい場合はチェックを外していきます。
座標は最後に上書きすればいいので、必須ではありません。
【実際に作っていきます】
パーティクルのスポーンのところの+ボタンから
下の方にある「新しいスクラッチパットモジュール」をクリックして追加します。
そうすると、このようなものが生成されるはずです
その後、必要な情報を入れるためのFloatのパラメータを二つ生成します
名前は任意でいいですが、今回は「Length」と「Rot」としました。
作ったパラメータ二つをマップ取得に登録します。
右下の+ボタンから追加できます。
Rotの出力からSin(Degrees)とCosine(Degrees)に接続します。
その後Vectorに変換します。
このVectorのノードは3を押しながら右クリックでショートカットで作成できます。
普通にVectorと検索しても出すことができます。
あとは出力したVectorとLengthと名づけたFloatのパラメータをMultplyで乗算します。
最後のMapSetは、座標としてそのまま使う場合はパーティクルのPositionに
ほかに計算をする場合は、自身で任意のパラメータに接続してください。
当然ですが、直接Positionに繋ぐ場合は、レベルの中心位置基準になるので注意してください。
最後に、エミッター側で数値を入れておきましょう
発生位置を変えていきたい場合は
NormalizeLoopAgeなどと乗算すれば完成です
Velocityなどの移動のモジュールを無効にすれば
このように発生位置がわかりやすくなると思います。
今回はここまでとなります。
今回は分かりやすそうなテーマとしてSinとCosをつかったうずまきの形状にしましたが
四則演算などでできる形状であれば恐らく基本出来ると思います。