TopDownEngine薬莢PatricleSystem調査4/7

前回は、Unity の見下ろし型ゲームの作成支援アセット「TopDown Engine」のサンプルの銃 KoalaRifle を参考にして、銃を撃ったときの薬きょうパーティクルが飛び出す際の器となり、放出の動きをその器に沿わせたり発生範囲を決める Shape モジュールについて差分を中心に調べて、変化を確認しました。

前回の記事:TopDownEngine薬莢PatricleSystem調査3/7 | Compota-Soft-Press

Unity Particle System Shape モジュールを既定値からTopDownEngine サンプル KoalaRifle の Shells の同モジュールと同じに変更した結果 Edited SS1

今回は、Unity の Particle System コンポーネントのうち、TopDown Engine のサンプル KoalaRifle の Shells で変更されていた Limit Velocity over Lifetime モジュールのサンプルとの差分を調べ、パーティクルの速度(例では落下速度)を時間経過で制御する方法について紹介します。
※ Unity のバージョン 2021.3.25f1、 TopDown Engine のバージョンは 3.2 です。

前回までの結果

Particle System コンポーネントの

  • メインモジュールで重力や速度・角度のランダムさを設定し
  • Emission モジュールで放出するパーティクル(薬きょう画像)のタイミングや個数を設定し
  • Shape モジュールでは放出の際に用いる器の形(円錐:Cone)を上向きに設定することで、1回の動作で1個のパーティクルが上方向に放出されるように設定し

薬きょうが放物線を描いて落下するようになりました。

Limit Velocity over Lifetime モジュール

このモジュールの公式サイトの説明です。
パーティクルの速度の変化を指定できます。

このモジュールでは、生存期間にわたってパーティクル速度がどのように減衰するかを制御します。

Limit Velocity Over Lifetime モジュール – Unity マニュアル
Unity Particle System コンポーネントの既定値とShellsの値の比較 Limit Velocity over Lifetimeモジュール

このモジュールは既定値では無効化されていて、Shells で有効化されています。

Speed1 → カーブパーティクルの速度制限を設定します。
Dampen0 → 1速度の制限範囲を超えると、パーティクルの速度を減衰します。
Limit Velocity over Lifetime モジュールの既定値と Shells の値の差分。※3列目の説明文は Limit Velocity Over Lifetime モジュール – Unity マニュアル の引用です。

※カーブのフィールドの編集については後述します。

速度の変化を比較するために一時的に Particle System コンポーネントのメインモジュールの初期速度と角度を一定にします。しかし、何回か放出すると角度が異なります。
そこで、Shape モジュールも Burst Spread で発生場所をわずかですが均一にずらしたり、器の形状で影響を受けていると推測し、全体を無効にしました。

メインモジュールStart Speed5 ~ 7 → 5
メインモジュールStart Rotate-20 ~ 20 → 20
Shape モジュール全体ON → OFF
一時的に既定値に戻した Particle System のプロパティ

この状態で、このモジュールの既定値(無効)と Shells の設定を行った状態(有効で、Speed のカーブや減衰を設定)を比較すると、既定値は落下し続けますが、Shells の設定では Speed をカーブによって急変させていて途中で停止しました。
これは薬きょうが地面に落ちて止まった表現だと思います。

Unity Particle System コンポーネント Limit Velocity over Lifetime モジュールの既定値(無効)とShellsの設定(有効にして速度の変化をカーブで指定)の違い

速度の違いなどを比較するために、先ほど一時的に変更していた他のモジュールの値を元に戻して、このモジュールを設定したあとの動作を確認しましょう。

このモジュールの Speed の変化を設定する前は、落下し続けていましたが、一定時間経過後に Speed を 0 にするカーブの設定で、一定時間経過後にパーティクルの移動(落下)が停止するようになりました。

Unity Particle System コンポーネントの Limit Velocity over Lifetime も Shells と同じ設定に変更した結果 Edited SS1

カーブのフィールドの編集

Limit Velocity over Lifetime モジュールの Speed は数値やカーブを右側の▼ボタンから選択できます。
今までも同様のものはありましたが、今回初めて TopDown Engine の Particle System コンポーネントのサンプルの値としてカーブが出てきたので、その編集について紹介します。

サンプルのカーブをコピーして貼り付けたい場合は、カーブのフィールドを右クリックすると Copy , Paste のメニュー項目が表示されるので、コピー・ペーストしたいカーブのフィールドでメニューを選択しましょう。

Unity プロパティの型が Curve の場合は Inspcetor ウィンドウで右クリックして表示されるメニューでコピーとペーストができます.

フィールドのカーブも線が表示されていますが、細かく、時間軸などもはっきりわかりません。

カーブのデータを詳しく見たり編集する場合は、Particle System コンポーネントのカーブの場合、Inspector ウィンドウの一番下にある Particle System Curves の二重線をクリックすることで、編集画面が表示されます。

あとは、編集したいカーブのフィールドを Particle System の中で選択すると、その編集画面にカーブが拡大されて表示されます。

Unity Particle System コンポーネントのカーブのフィールドの開き方

今回はここまで

今回は Unity の Particle System コンポーネントの Limit Velocity over Lifetime モジュールを有効化して、パーティクルの速度の変化を速度と時間のカーブで設定して、途中でパーティクルが停止する処理を実装しました。
Particle System のプロパティのカーブのフィールドの編集画面の開き方やコピー&ペーストの手順についても説明しました。
見下ろし型ゲームの作成支援アセット「TopDown Engine」のサンプル KoalaRifle の薬きょうアニメーションを実装している Shells ゲームオブジェクトの設定を参考にしました。

参照サイト Thank You!

記事一覧 → Compota-Soft-Press

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました