前回は、Unity の見下ろし型ゲーム作成支援アセット「TopDown Engine」の銃のサンプル KoalaRifle を参考にして、銃を撃ったときに飛び出す薬きょうのタイミング・個数などを設定する Emission (放出) モジュールの設定を変更して、 0 秒時点で 1 個の薬きょうが飛び出すことを確認しました。
前回の記事:TopDownEngine 薬きょうの Patricle System の調査2/7 | Compota-Soft-Press
今回は、Unity の Particle System コンポーネントの Shape モジュールのサンプルとの差分を調べ、パーティクル(薬きょう画像)を放出する際の器の形状の設定について紹介します。
※ Unity のバージョン 2021.3.25f1、 TopDown Engine のバージョンは 3.2 です。
前回までの結果
前回までに既定値の Particle System の値のうち、メインモジュールと Emission (放出) モジュールの値を、 TopDown Engine のサンプルの銃 KoalaRifle の Shells (薬きょうのアニメーション)の設定に合わせて、その変更の影響を調べました。
Emission モジュールでは、放出という名前の通り、パーティクルをどのタイミングで何個程度放出するかを設定していました。
サンプルの Shells では、薬きょうが必ず 0 秒時点で 1 個放出されるように設定していました。
Shape モジュール
Particle System コンポーネントの Shape モジュールの公式の説明の引用です。
このモジュールは Shape プロパティで選択した形状に応じて、残りのプロパティが変化します。
今回の例では Cone の形状の設定を比較します。
このモジュールは パーティクル を放出する体積や面、および開始速度の方向を定義します。 Shape プロパティは放出ボリュームの形状を定義し、残りのモジュールプロパティは選択した形状に応じて変化します
Shape モジュール – Unity マニュアル
Angle | 25 → 20 | 円錐の角度。0 は円柱形を、90 ではディスクのような平らな形になります。 |
Radius | 1 → 0.1 | 形状の円の半径 |
Arc | 以降の 2 項目を変更 | 放出の形状を作る円弧 |
Arc Mode | Random → Burst Spread | 円弧の周囲にどのようにパーティクルを生成するかを定義します。Random に設定すると、パーティクルは円弧の周囲にランダムに生成されます。 Loop に設定するとパーティクルは円弧の周囲に順番に生成され、各サイクルが終了すると開始からまた繰り返します。 Ping-Pong は、連続する各ループの終了時に前回と反対方向に向かって発生する以外は Loop と同じです。最後に、Burst Spread モードではパーティクルの生成を形状の周りに均等に行うことができます。これを使うと、パーティクルが不均等に固まってしまうこともありうるデフォルトのランダム挙動よりも、パーティクルを均等に広げることができます。Burst Spread は burst emissions と一緒に使用すると最も効果的です。 |
Arc Spread | 0 → 0.1 | パーティクルが生成される円弧の周囲の離散間隔を制御します。例えば 0 の値を指定すると、円弧の周りのどこにでもパーティクルが生成され、0.1 の値を指定すると、形状の周囲に 10% の間隔をあけてパーティクルが生成されます。 |
Rotation.X | 0 → -90 | パーティクルの生成に使用するエミッターの形状を回転します。 |
Align To Direction | OFF → ON | パーティクルの最初の移動方向に基づいてパーティクルを整列させます。これは、衝突時に車の車体から飛び散る車の塗料の塊をシミュレーションする場合などに便利です。方向が適切でない場合は、Main モジュールの Start Rotation の値を適用して方向をオーバーライドすることもできます。 |
見た目でわかりやすくするために、一時的に、今まで既定値から Shells の値に変更してきた一部を戻しました。
メインモジュール | Gravity Modifier | 1.0 → 0 |
Emission モジュール | Rate over Time | 0 → 10 |
Shape モジュールによってパーティクルがどのような器に沿って放出されるかを指定できることがわかりました。
一時的に変更していたメインモジュールと Emission モジュールの値を元に戻します。
これにより再び重力が有効になり、Particle System の Play 1 回ごとに 1 個のパーティクルが放出されるように設定が戻りました。
メインモジュール | Gravity Modifier | 0 → 1.0 |
Emission モジュール | Rate over Time | 10 → 0 |
メインモジュール、Emission モジュールに続いて、 Shape モジュールも Shells の値に変更することで、薬きょうのパーティクルが Shape で指定した上向きの円錐 (Cone) の先端から円錐にそって飛び出すようになりました。
今回はここまで
今回は、Unity の見下ろし型ゲームの作成支援アセット「TopDown Engine」のサンプルの銃 KoalaRifle を参考にして、銃を撃ったときの薬きょうパーティクルが飛び出す際の器となり、放出の動きをその器に沿わせたり発生範囲を決める Shape モジュールについて差分を中心に調べて、変化を確認しました。
参照サイト Thank You!
- Unity のリアルタイム開発プラットフォーム | 3D/2D、VR/AR のエンジン
- TopDown Engine | システム | Unity Asset Store
- Shape モジュール – Unity マニュアル
記事一覧 → Compota-Soft-Press
コメント