前回は、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 では、射撃の際の薬きょう(スプライト画像)が毎回少しずつランダムに放物線を描いて落下させています。
薬きょうマテリアルのアセットパス
前述の薬きょうの画像はどこに保存されているのかを確認します。
Shells ゲームオブジェクトを選択すると Inspector ウィンドウの下側にマテリアルが表示されます。
その右上のメニューを開き Select Material を選択すると、Project ウィンドウ内でそのマテリアルが選択されて表示されます。
Project ウィンドウで選択状態の薬きょうのマテリアルが確認できました。
Project ウィンドウでそのマテリアルを選択すると Inspector ウィンドウでそのマテリアルの設定も確認できます。
Particle Systems の Renderer モジュールの設定
Shells ゲームオブジェクトの Particle System の Renderer モジュールの設定を開くと、その中の Material プロパティに先ほどの薬きょうのマテリアル(Sprite/Default)が設定されています。
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 のビルボードグラフィックスが使用されるとき、さまざまなエフェクトに異なるオプションを使用できます。
- Billboard モード は、雲のようにどの方向から見ても同じ様子の塊を表現するパーティクルに使用するのに適しています。
- Horizontal Billboard モードは、パーティクルが地面を覆う時(例えば、標識や、魔法の呪文エフェクトなど)や、地面に対して平行に飛んだり浮かんだりする平らなオブジェクト(たとえば、手裏剣など)の場合に使うことができます。
- Vertical Billboard モードではそれぞれのパーティクルを XZ 平面に対して直立させ垂直にし、Y 軸に沿って回転させることができます。これは正射投影カメラを使用して、パーティクルの大きさを一定に保ちたい時に便利です。
- Stretched Billboard モードは従来のアニメーターが使用してきた「伸縮」技術と同様の方法でパーティクルの見た目の速度を強調します。Stretched Billboard モードでは、パーティクルはカメラの方を向いて整列し、速度で揃えられます。これは、Velocity Scale の値にかかわらず発生します。例え、Velocity Scale が 0 に設定されていても、このモードのパーティクルは速度に合わせて揃います。
Normal Direction は平らな四角のビルボード上に、球状のシェーディングを作成するのに使用します。これは、パーティクルにライティングを適用するマテリアルを使用するとき、3D パーティクルの形状を作成するのに役立ちます。この設定は、ビルボードのレンダリングモードでのみ使用されます。
Renderer モジュール – Unity マニュアル
Shells ゲームオブジェクトでは Vertical Billboard を選択しています。
Unity 2021 版の説明では、
「パーティクルはワールドの Y 軸方向に直立していますが、カメラの方を向きます。」
と書かれていました。
Y 軸はサンプル Koala Dungeon の場合、見下ろしたマップの上方向と同じです。
銃の中の薬きょう (Shells) のゲームオブジェクトの Particle System は Y 軸方向(画面の上側)に向かって立っていて、カメラの方を向いている状態です。
その Particle System にとってどちらが上方向なのかを指定するために Vertical Billboard を Renderer Mode で選択して、 Y 軸方向が上方向であると指定しています。
薬きょうはその方向と正反対の方に落下します。
薬きょうの画像はカメラの方を向いているので、薬きょう画像を真正面から見ることができます。
Normal Direction
Normal Direction は法線の方向を示し、 1.0 の場合はパーティクルのグラフィックの法線はカメラの方を向くようになります。
Renderer モジュール – Unity マニュアル Unity 2018.4 版。
Normal Direction パーティクルのグラフィックに使われる、ライティングの法線のバイアス。値 1.0 はカメラ位置の法線を指します。0.0 はスクリーンの中心に向かう法線を指します(Billboard モードのみ)。
Material
パーティクルの描画に使用するマテリアルを指定します。
Shells ゲームオブジェクトでは、射撃をした際に飛び出す薬きょうのマテリアル(Sprite/Default)が指定されています。
Renderer モジュール – Unity マニュアル Unity 2018.4 版。
Material パーティクルのレンダリングに使用するマテリアル
Renderer モジュールには他にも 10 個以上のプロパティがありますが、今回の薬きょうの画像や、上下の向きの設定などにかかわるものは説明していて、他のものは特に影響がないと判断し、Renderer モジュールのプロパティの説明はここまでにします。
まとめ
今回は、Unity の見下ろし型ゲームの作成支援アセット「TopDown Engine」のサンプル KoalaRifle 銃のプレハブの下位のゲームオブジェクト Shells で、 Particle System を用いて、射撃した際に飛び出る薬きょうのアニメーションの画像の設定について紹介しました。
Particle System はプロパティが多く、モジュールごとに分けられていることもわかりました。
次回は、今回調べたことを活かして、マテリアルを自作の薬きょうの画像に変える手順を紹介します。
参照サイト Thank You!
- Unity のリアルタイム開発プラットフォーム | 3D/2D、VR/AR のエンジン
- TopDown Engine | システム | Unity Asset Store
- パーティクルシステム – Unity マニュアル
- Renderer モジュール – Unity マニュアル Unity 2021 版。表内が一部英語。
- Renderer モジュール – Unity マニュアル Unity 2018 版。表内がすべて日本語訳。
記事一覧 → Compota-Soft-Press
コメント