TopDownEngine 薬きょうの Patricle System の調査1/7

前回は Unity の見下ろし型ゲームの作成支援アセット「TopDown Engine」の銃のサンプル KoalaRifle プレハブを参考にして、飛び出す薬きょうのゲームオブジェクトを自作の消しゴム銃にコピーし、その薬きょうの画像を差し替える手順を紹介しました。

前回の記事:TopDownEngine 射撃時に飛び出る薬きょう画像の変更 | Compota-Soft-Press

TopDownEngine サンプル KoalaRifle の Shells GO の Material を変更するとアイコン画像が更新されました.SceneのParticlesのStartボタンを押すと差し替えられた画像が飛び出しました.

今回は、Unity ParticleSystem の Renderer モジュールで設定された薬きょうの画像マテリアル(Shader : Sprite/Default)が、ある程度ランダムに放物線を描いて落下する設定について紹介します。
※ Unity のバージョン 2021.3.25f1、 TopDown Engine のバージョンは 3.2 です。
※サンプルは、見下ろし型ゲームの作成支援アセット「TopDown Engine」のサンプル KoalaDungeon を用いています。

薬きょうの動きの設定項目の特定方法

Particle System コンポーネントはさらにモジュール単位に分けるほどプロパティの数が多く、すべてを一度に理解するのは筆者には難しいです。
そこで、既定値との差分だけをピックアップして、特に

  • 薬きょうを放出させて
  • 放物線上に落下させて
  • 一定時間消える

設定について、値を変更して確認します。

具体的には KoalaRifle プレハブからコピーした Shells ゲームオブジェクトの Particle System コンポーネントの値と、

その Shells ゲームオブジェクトと同列に Create Empty で作成した空のゲームオブジェクトに Particle System コンポーネントを追加した既定値のコンポーネントの値を比較します。

Shells GO と同列に作った PSDefault 空のGOに Particle System コンポーネントを付加します.

以前に薬きょう画像のマテリアルを設定する場所を調べた際に紹介した Renderer モジュールの

Render Mode プロパティを Billboard から Vertical Billboard に

Material プロパティを None (Material) から自作の薬きょう画像のマテリアル(Sprites/Default)

に変更しました。
これは、デフォルトでマテリアルの画像がどのように発生・動作するかを調べるためと、サンプルの設定内容に変更していく際にどのように変化するかを確認するためです。

Unity Particle System コンポーネントの Renderer モジュールの Render Mode と Material を変更します.

Renderer の前述のプロパティだけを変化させて動作させると、薬きょうというよりは湧き上がる蒸気のような動きが確認できました。

Particle System コンポーネントの既定値との比較

Particle Sysmte コンポーネントのメインモジュールからモジュール単位で、既定値と Shells のプロパティの差分を確認します。

メインモジュール

メインモジュールの公式の説明です。

Particle System モジュールにはシステム全体に影響するグローバルプロパティがあります。このプロパティのほとんどは、新たにつくられたパーティクルの初期の状態を制御します。

Particle System メインモジュール – Unity マニュアル
Unity Particle System コンポーネントの既定値とShellsの値の比較 メインモジュール
Duration5 → 20 システムが実行する時間の長さ
LoopingON → OFF有効にすると、システムが継続時間の終了時に再び開始し、そのサイクルを継続的に繰り返します。
Start Lifetime5 → 20パーティクルの最初の生存期間
Start Speed5 →
5 ~ 7
任意の方向への各パーティクルの初速
Start Rotaion0 →
-20 ~ 20
各パーティクルの最初の回転角度
Gravity Modifier0 → 1Physics ウィンドウで設定する重力値をスケールします。値を 0 にすると重力が無効になります。
Simulation SpaceLocal →
World
パーティクルを親オブジェクトのローカル空間でアニメーションするか(親オブジェクトと一緒に動きます)、ワールド空間でアニメーションするか、または、カスタムのオブジェクトに関連させるか (選択したカスタムのオブジェクトと一緒に動きます) を制御します。
Culing ModeAutomatic →
Always Simulate
パーティクルがオフスクリーンのときにパーティクルシステムのシミュレーションを一時停止するかどうかを選択します。オフスクリーンがもっとも効率的な場合にカリングを行いますが、オフスクリーンでのワンショットエフェクトのために、シミュレーションを継続した方が良い場合があります。
メインモジュールの既定値と Shells の値の差分。※3列目の説明文は Particle System メインモジュール – Unity マニュアル の引用です。

薬きょうを落下させるアニメーション時間を Duration で 5 から 20 にのばし、ループをしないように変更しています。
パーティクルの最初の生存期間をアニメーション時間の Duration と同じ 20 に変更して、パーティクルの初速は 5 ~ 7 ( Unit per Sec) の範囲内でランダムな値を設定しています。

プロパティの右側の ▼ボタンを押すと、設定方法が選択できるプロパティがあります。
Random Between Two Constants を選ぶと、フィールドが 2 つになり、そこで指定した 2 つの値の間のランダムな値が設定されるように指定できます。

Unity Particle System コンポーネントんプロパティの設定方法で Random Between Two Constants を選ぶと2つの値の間でランダムな値が割り当てられます.

初速と同様に回転角度も -20 ~ 20 度の範囲でランダムに指定しています。

重力を通常の強さで有効にして落下するようにしています。
薬きょうがキャラの動きに合わせてついてくるのは不自然なので、パーティクル(薬きょう画像のマテリアル)が影響を受ける空間は、キャラ(ローカル)ではなくワールドに変更されています。

非表示中もアニメーションをするように指定を変更し、非表示の部分が表示されたときにタイミングのずれを感じないようにしています。

これらのメインモジュールの設定を、 Shells の値に変更した結果です。

Unity Particle System メインモジュールの値を Shells と同じ値に変更後の動作 Edited SS1

変更前の既定値では、ふわふわと上に漂うパーティクルでしたが、 Gravity Modifier で重力の影響を 0 から 1 に変えたことで薬きょうが落下する放物線を描くようになりました。
Start Speed, Start Rotateion の範囲指定で、個々のパーティクルが指定された範囲内で速度や角度にばらつきが与えられるようになりました。

今回はここまで

今回は、Unity の見下ろし型作成支援アセット「TopDown Engine」のサンプルの銃 KoalaRifle プレハブで射撃時に薬きょうを飛び出させて落下させるアニメーションを行っている Shells ゲームオブジェクトの Particle Systems のメインモジュールの値を既定値と比較しました。
重力の影響や、速度や角度を指定範囲内でランダムにすることで少しばらつきがある放物線上の落下アニメーションができるようになりました。

参照サイト 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をコピーしました