TopDownEngine 射撃時に飛び出る薬きょうの仕組みの確認

前回は、Unity の見下ろし型ゲームの作成支援アセット「TopDown Engine」のサンプル KoalaRifle のアニメーションを状態によって切り替える Animation Controller と、それぞれのアニメーションの設定について紹介しました。

前回の記事:TopDownEngine サンプル銃のアニメ―ション設定の確認 | Compota-Soft-Press

今回は、KoalaRifle プレハブのパーティクルで発砲させて、薬きょうを放出するアニメーションの実装について調べます。
※ Unity のバージョン 2021.3.25f1、 TopDown Engine のバージョンは 3.2 です。

Particle System で画像をマテリアルで指定する仕組み

薬きょうの絵が描かれたマテリアル (Sprite/Default シェーダー) を設定したゲームオブジェクト Shells の Particle System では、射撃の際の薬きょう(スプライト画像)が毎回少しずつランダムに放物線を描いて落下させています。

Unity TopDownEngine サンプル KoalaRifle プレハブの Shells では ParticleSystem でランダムな位置に薬きょうを落下させています.

薬きょうマテリアルのアセットパス

前述の薬きょうの画像はどこに保存されているのかを確認します。
Shells ゲームオブジェクトを選択すると Inspector ウィンドウの下側にマテリアルが表示されます。
その右上のメニューを開き Select Material を選択すると、Project ウィンドウ内でそのマテリアルが選択されて表示されます。

Unity TopDownEngine サンプル KoalaRifle プレハブの Shells の薬きょうマテリアルはInspectorウィンドウの下側に表示されています。メニューの Select Material を選択します。.

Project ウィンドウで選択状態の薬きょうのマテリアルが確認できました。

Unity TopDownEngine サンプル KoalaRifle プレハブの Shells の薬きょうマテリアルが Project ウィンドウで選択状態で確認できました

Project ウィンドウでそのマテリアルを選択すると Inspector ウィンドウでそのマテリアルの設定も確認できます。

Unity TopDownEngine サンプル KoalaRifle プレハブの Shells の薬きょうマテリアルを選択するとその詳細を Inspector ウィンドウで確認できます.

Particle Systems の Renderer モジュールの設定

Shells ゲームオブジェクトの Particle System の Renderer モジュールの設定を開くと、その中の Material プロパティに先ほどの薬きょうのマテリアル(Sprite/Default)が設定されています。

Unity TopDownEngine サンプル KoalaRifle プレハブの Shells の ParticleSystem の Renderer の設定の中でマテリアルが指定されています..

Particle System コンポーネントは設定項目が多いため、ジャンルごとにモジュールと呼ばれる単位で設定項目がまとめられています。
参照:パーティクルシステム – Unity マニュアル

Renderer モジュールでは、画像やメッシュを指定します。
そして、それらが他の Particle System モジュールの機能によってどのような変化を許可するかを設定します。
参照:Renderer モジュール – Unity マニュアル

Renderer Mode プロパティ

Renderer Mode では、以下の引用の通り、Billboard, Stretched Billboard, Horizontal Billboard, Vertical Billboard, Mesh, None の 6 つのモードが選択できます。

How Unity produces the rendered image from the graphic image (or Mesh). For more information, see Render Mode and Billboard render modes.

Unity がグラフィック イメージ (またはメッシュ) からレンダリング イメージを生成する方法。詳細については、「レンダリング モード」と「ビルボード レンダリング モード」を参照してください。

Billboard

Unity renders the particles as billboards and they face the direction you specify in Render Alignment.

Unity はパーティクルをビルボードとしてレンダリングし、レンダリング アライメントで指定した方向を向きます。

Stretched Billboard

The particles face the Camera with various possible scaling options applied.

パーティクルは、さまざまなスケーリング オプションが適用された状態でカメラに面します。

Horizontal Billboard

パーティクルの平面は XZ 軸に広がる「床」平面と平行になります。

Vertical Billboard

パーティクルはワールドの Y 軸方向に直立していますが、カメラの方を向きます。

Mesh

Unity renders the particle from a 3D Mesh instead of a Billboard. For more information on the specific settings for the Mesh Render mode, see the Details section below.

Unity は、ビルボードではなく 3D メッシュからパーティクルをレンダリングします。メッシュ レンダリング モードの特定の設定の詳細については、以下の「詳細」セクションを参照してください。

None

Unity doesn’t render any particles. This can be useful alongside the Trails module, if you want to only render the trails and hide any default particle rendering.

Unity はパーティクルをレンダリングしません。これは、軌跡のみをレンダリングし、デフォルトのパーティクル レンダリングを非表示にしたい場合に、Trails モジュールと併用すると便利です。
Renderer モジュール – Unity マニュアル ※ 整形済みテキスト内は、Google 翻訳による日本語文です。

Unity 2018 版では、表内も全て翻訳されていて、詳細のセクションでは以下のように Renderer Mode について説明しています。

Render Mode は、いくつかの 2D ビルボードのグラフィックスモードとメッシュモードの中から選べます。3D のメッシュを使用すると、パーティクルが岩などの固形のゲームオブジェクトを表すときに、より本物らしく見えます。また、雲、火の玉、水などの量感も加えることができます。パーティクルシステムに使用する場合は、メッシュの読み取り/書き込みを有効にする必要があります。エディター内でメッシュを割り当てる場合は、Unity が処理できますが、ランタイムに異なるメッシュを割り当てたい場合は、設定を手動で行う必要があります。

2D のビルボードグラフィックスが使用されるとき、さまざまなエフェクトに異なるオプションを使用できます。

  1. Billboard モード は、雲のようにどの方向から見ても同じ様子の塊を表現するパーティクルに使用するのに適しています。
  2. Horizontal Billboard モードは、パーティクルが地面を覆う時(例えば、標識や、魔法の呪文エフェクトなど)や、地面に対して平行に飛んだり浮かんだりする平らなオブジェクト(たとえば、手裏剣など)の場合に使うことができます。
  3. Vertical Billboard モードではそれぞれのパーティクルを XZ 平面に対して直立させ垂直にし、Y 軸に沿って回転させることができます。これは正射投影カメラを使用して、パーティクルの大きさを一定に保ちたい時に便利です。
  4. Stretched Billboard モードは従来のアニメーターが使用してきた「伸縮」技術と同様の方法でパーティクルの見た目の速度を強調します。Stretched Billboard モードでは、パーティクルはカメラの方を向いて整列し、速度で揃えられます。これは、Velocity Scale の値にかかわらず発生します。例え、Velocity Scale が 0 に設定されていても、このモードのパーティクルは速度に合わせて揃います。

Normal Direction は平らな四角のビルボード上に、球状のシェーディングを作成するのに使用します。これは、パーティクルにライティングを適用するマテリアルを使用するとき、3D パーティクルの形状を作成するのに役立ちます。この設定は、ビルボードのレンダリングモードでのみ使用されます。

Renderer モジュール – Unity マニュアル

Shells ゲームオブジェクトでは Vertical Billboard を選択しています。
Unity 2021 版の説明では、
パーティクルはワールドの Y 軸方向に直立していますが、カメラの方を向きます。
と書かれていました。
Y 軸はサンプル Koala Dungeon の場合、見下ろしたマップの上方向と同じです。

Unity TopDownEngine サンプル KoalaDungeon の Y 軸方向は画面の上方向です.

銃の中の薬きょう (Shells) のゲームオブジェクトの Particle System は Y 軸方向(画面の上側)に向かって立っていて、カメラの方を向いている状態です。

その Particle System にとってどちらが上方向なのかを指定するために Vertical Billboard を Renderer Mode で選択して、 Y 軸方向が上方向であると指定しています。
薬きょうはその方向と正反対の方に落下します。
薬きょうの画像はカメラの方を向いているので、薬きょう画像を真正面から見ることができます。

Unity TopDownEngine サンプル KoalaRifle プレハブの Shells の ParticleSystem は Y 軸方向を上として薬きょうの画像を落下させます.画像はカメラの方を向いています..
テストプレイ時に KoalaRifleAmmoBased 銃と弾を持ち、 Hierarchy ウィンドウで Shells を選択した後 Scene ウィンドウの Particles の Play ボタンを押した直後の映像。

Normal Direction

Normal Direction は法線の方向を示し、 1.0 の場合はパーティクルのグラフィックの法線はカメラの方を向くようになります。

Normal Directionパーティクルのグラフィックに使われる、ライティングの法線のバイアス。値 1.0 はカメラ位置の法線を指します。0.0 はスクリーンの中心に向かう法線を指します(Billboard モードのみ)。
Renderer モジュール – Unity マニュアル Unity 2018.4 版。

Material

パーティクルの描画に使用するマテリアルを指定します。
Shells ゲームオブジェクトでは、射撃をした際に飛び出す薬きょうのマテリアル(Sprite/Default)が指定されています。

Materialパーティクルのレンダリングに使用するマテリアル
Renderer モジュール – Unity マニュアル Unity 2018.4 版。

Renderer モジュールには他にも 10 個以上のプロパティがありますが、今回の薬きょうの画像や、上下の向きの設定などにかかわるものは説明していて、他のものは特に影響がないと判断し、Renderer モジュールのプロパティの説明はここまでにします。

まとめ

今回は、Unity の見下ろし型ゲームの作成支援アセット「TopDown Engine」のサンプル KoalaRifle 銃のプレハブの下位のゲームオブジェクト Shells で、 Particle System を用いて、射撃した際に飛び出る薬きょうのアニメーションの画像の設定について紹介しました。
Particle System はプロパティが多く、モジュールごとに分けられていることもわかりました。

次回は、今回調べたことを活かして、マテリアルを自作の薬きょうの画像に変える手順を紹介します。

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