Unity ParticleSystem 粒子画像の水平反転と放出方向の変更

今回は、 Unity で細かな粒子をたくさん放出させられる Particle System粒子1つ1つの画像を水平反転させて表示させる設定と、粒子群を放出させる向きを反転させる設定を紹介します。

Unity 波しぶきの右側を作成して、両側から波しぶきがたつようになりました。SS1

※ Unity のバージョンは 2021.3.25f1 Personal <DX11> です。
※表示されている 3D モデルは無料アセット「Old Sea Port」を使用しています。

サンプルの Particle System は波しぶき (左側)

サンプルは、以前に作成した波しぶき(左側)の Particle System です。
これの粒子(水滴)の画像を左右に反転し、放出される方向も左右に反転させることで、波しぶき(右側)の Particle System を作成します。

以前の記事:

左側にうっすらと表示されている水滴の半透明の画像群は、左側を向いている水滴なので、これを右側に水平反転します。

Unity Particle System Shape モジュール(Cone)のAngle と Radius を減少させて位置を調整して粒子をまとめて放出した波しぶきの例SS1

粒子群が放出される方向を左後方から右後方に変えます。

Unity Scene ウィンドウの移動回転ツールで Particle System ゲームオブジェクトの位置を調整します.

波しぶき(左側)の Particle System をプレハブ化

反対側の波しぶき(右側)の Particle System は、作成済みの波しぶき(左側)の Particle System のプレハブインスタンスとして作成します。

Unity 波しぶき(左側)のPartcleSystemをプレハブにします.

プレハブインスタンスとして作成する理由は、後で波しぶきのパラメータを調節する際に、プレハブの Overrides の機能で、片方の波しぶきの変更を、もう片方の Particle System にも一括で反映させるためです。
コピーしただけのゲームオブジェクトでは、 Overrides が使えず、パラメータを調節する際に、二つの波しぶきに同じ変更をそれぞれ行わなければならず効率がよくありません。

プレハブインスタンスの関連記事

Prefab Instance については、以下の記事をご覧ください。

Unity 複製とプレハブインスタンス の違い
ゲームエンジン Unity のシーンに複数の同じ敵キャラなどのゲームオブジェクトを配置する際の、複製とプレハブインスタンスの違いについて紹介しました。プレハブインスタンスは、値を一括して変えられる Overrides の機能があり、多く配置する敵キャラなどのパラメータの微調整などに便利です。
Unity PingPongCube プレハブバリアントアセットの右クリックメニューでFindRefrerencesInScene を選択するとフィルタリングできました

プレハブインスタンスをボートの右側に配置する

波しぶき(左側)のプレハブを Scene にドラッグ&ドロップして、波しぶき(右側)のプレハブインスタンスを作成します。

Unity 波しぶき(左側)のプレハブをシーンにD&Dしてプレハブインスタンスを作成します.

一度、波しぶき(左側)と位置や角度を合わせるため、 Inspector ウィンドウで Transform の Position 、Rotation のあたりを右クリックしてコピーしたものを、波しぶき(右側)の同じプロパティにペーストします。

Unity ゲームオブジェクトの Transform の Positionと Rotation を Inspector ウィンドウでコピーして別のゲームオブジェクトにペーストできます.

位置をあわせてから、ボートの先端を境界にして左右対称になるように右側に移動させます。
※もしも、うまくいかなかったら、手動で微調整した後で、 Y 軸などを再び合わせるようにしましょう。

Unity 波しぶき(左側)のPartcleSystemをプレハブにします.
Unity プレハブインスタンスの波しぶき(右側)を左側のものと同じ位置にしてから右側に移動します.

波しぶき(右側)の位置は調整しましたが、粒子(水滴)の画像は左向きで、放出方向も左後方です。

Unity 波しぶき(右側)の位置を調整しましたが、まだ画像も放出方向も左用です.

波しぶきの粒子画像の水平反転

試行錯誤の結果、 Particle System のメインモジュールの Flip Rotation と、 Renderer モジュールの Flip (X, Y, Z) を変更することで、粒子の画像を水平反転して表示することができました。

フリップ回転いくつかのパーティクルを反対方向にスピンさせます。
Particle System メインモジュール – Unity マニュアル
Flip指定された軸に沿ってパーティクルの一部をミラー (反転) します。 値を大きくすると、より多くのパーティクルを反転します。
Renderer モジュール – Unity マニュアル

これらの値は 0.0 ~ 1.0 の値をとり、反転させる粒子の割合を指定します。
既定値の 0 では全く反転せず、1 ならば全ての粒子の画像が反転します。

メインモジュールの Flip Rotation を 1 に、 Renderer モジュールの Flip の X を 1 に変更します。

Unity Particle System の粒子の画像を水平反転するためにメインモジュールの Flip Rotation と Renderer モジュールの Flip X を 1 に変更します.

粒子(今回は水滴)の画像水平反転して、右を向いて飛んでいる画像に変わりました。

Unity Particle System の粒子の画像を水平反転するためにメインモジュールの Flip Rotation と Renderer モジュールの Flip X を 1 に変更後の結果.

波しぶきの粒子群の放出方向を左後方から右後方に変更

左後方から右後方に変更するため、Particle System を含むゲームオブジェクトの水平な回転軸を 90 度右側にずらします。
Scene ウィンドウの回転ツールを選択すると 3 つの回転軸が色分けされて表示されます。
水平な回転軸は緑色の Y 軸でした。

Unity 波しぶきの放出方向を右後方にするために Y 軸を 90 度回転させます.

Inspector ウィンドウで Rotation の Y の値を 90 減らします。
例では、波しぶき(左側)は 106.486 だったので、波しぶき(右側)は 16.486 に変更しました。

Unity 波しぶきの放出方向を右後方にするために Y 軸を 90 度回転させます(Inspector ウィンドウでの変更).

Hierarchy ウィンドウで両方の波しぶきの Particle System を複数選択すると、Scene ウィンドウで両方が再生されます。
ボートの先端を境界線にして左右対称に波しぶきが放出されました。

Unity 両側の波しぶきが左右対称に粒子を放出しています.複数のParticleSystemを選択すると同時に再生されます.

テスト

先ほどのように Hierarchy ウィンドウで、波しぶきの2つの Particle System のゲームオブジェクトを複数選択してから Game ウィンドウを見ると、波しぶきが左右に放出され、水滴の画像も右と左で水平反転しています。

Unity 波しぶきの右側を作成して、両側から波しぶきがたつようになりました。SS1

まとめ

今回は、 Unity で細かな粒子をたくさん放出させられる Particle System粒子1つ1つの画像を水平反転させて表示させる設定と、粒子群を放出させる向きを左右対称にさせる設定を紹介しました。
水平反転するためには、メインモジュールと Renderer モジュールのプロパティを組み合わせることもわかりました。

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