今回は、 Unity で細かな粒子をたくさん放出させられる Particle System の粒子1つ1つの画像を水平反転させて表示させる設定と、粒子群を放出させる向きを反転させる設定を紹介します。
![Unity 波しぶきの右側を作成して、両側から波しぶきがたつようになりました。SS1](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-波しぶきの右側を作成して、両側から波しぶきがたつようになりました。SS1.png)
※ Unity のバージョンは 2021.3.25f1 Personal <DX11> です。
※表示されている 3D モデルは無料アセット「Old Sea Port」を使用しています。
サンプルの Particle System は波しぶき (左側)
サンプルは、以前に作成した波しぶき(左側)の Particle System です。
これの粒子(水滴)の画像を左右に反転し、放出される方向も左右に反転させることで、波しぶき(右側)の Particle System を作成します。
以前の記事:
- Unity ParticleSystemで船が進むときの波しぶきを作成1/3 | Compota-Soft-Press
- Unity ParticleSystemで船が進むときの波しぶきを作成2/3 | Compota-Soft-Press
- Unity ParticleSystemで船が進むときの波しぶきを作成3/3 | Compota-Soft-Press
左側にうっすらと表示されている水滴の半透明の画像群は、左側を向いている水滴なので、これを右側に水平反転します。
![Unity Particle System Shape モジュール(Cone)のAngle と Radius を減少させて位置を調整して粒子をまとめて放出した波しぶきの例SS1](https://compota-soft.work/wp1/wp-content/uploads/2023/10/Unity-Particle-System-Shape-モジュールConeのAngle-と-Radius-を減少させて位置を調整して粒子をまとめて放出した波しぶきの例SS1.png)
粒子群が放出される方向を左後方から右後方に変えます。
![Unity Scene ウィンドウの移動回転ツールで Particle System ゲームオブジェクトの位置を調整します.](https://compota-soft.work/wp1/wp-content/uploads/2023/10/Unity-Scene-ウィンドウの移動回転ツールで-Particle-System-ゲームオブジェクトの位置を調整します.png)
波しぶき(左側)の Particle System をプレハブ化
反対側の波しぶき(右側)の Particle System は、作成済みの波しぶき(左側)の Particle System のプレハブインスタンスとして作成します。
![Unity 波しぶき(左側)のPartcleSystemをプレハブにします.](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-波しぶき左側のPartcleSystemをプレハブにします-1024x603.png)
プレハブインスタンスとして作成する理由は、後で波しぶきのパラメータを調節する際に、プレハブの Overrides の機能で、片方の波しぶきの変更を、もう片方の Particle System にも一括で反映させるためです。
コピーしただけのゲームオブジェクトでは、 Overrides が使えず、パラメータを調節する際に、二つの波しぶきに同じ変更をそれぞれ行わなければならず効率がよくありません。
プレハブインスタンスの関連記事
Prefab Instance については、以下の記事をご覧ください。
![](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-プレハブインスタンスの値を変更してから-Overrides-の-Apply-All-ボタンを押すとそのプレハブとプレハブインスタンス群の値が一括で同じく変更されます-160x90.png)
![Unity PingPongCube プレハブバリアントアセットの右クリックメニューでFindRefrerencesInScene を選択するとフィルタリングできました](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-PingPongCube-プレハブバリアントアセットの右クリックメニューでFindRefrerencesInScene-を選択するとフィルタリングできました-1024x684.png)
プレハブインスタンスをボートの右側に配置する
波しぶき(左側)のプレハブを Scene にドラッグ&ドロップして、波しぶき(右側)のプレハブインスタンスを作成します。
![Unity 波しぶき(左側)のプレハブをシーンにD&Dしてプレハブインスタンスを作成します.](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-波しぶき左側のプレハブをシーンにD&Dしてプレハブインスタンスを作成します-1024x608.png)
一度、波しぶき(左側)と位置や角度を合わせるため、 Inspector ウィンドウで Transform の Position 、Rotation のあたりを右クリックしてコピーしたものを、波しぶき(右側)の同じプロパティにペーストします。
![Unity ゲームオブジェクトの Transform の Positionと Rotation を Inspector ウィンドウでコピーして別のゲームオブジェクトにペーストできます.](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-ゲームオブジェクトの-Transform-の-Positionと-Rotation-を-Inspector-ウィンドウでコピーして別のゲームオブジェクトにペーストできます.png)
位置をあわせてから、ボートの先端を境界にして左右対称になるように右側に移動させます。
※もしも、うまくいかなかったら、手動で微調整した後で、 Y 軸などを再び合わせるようにしましょう。
![Unity 波しぶき(左側)のPartcleSystemをプレハブにします.](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-プレハブインスタンスの波しぶき(右側)の位置を-Z-軸方向だけずらします。.gif)
![Unity プレハブインスタンスの波しぶき(右側)を左側のものと同じ位置にしてから右側に移動します.](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-プレハブインスタンスの波しぶき(右側)を左側のものと同じ位置にしてから右側に移動します.png)
波しぶき(右側)の位置は調整しましたが、粒子(水滴)の画像は左向きで、放出方向も左後方です。
![Unity 波しぶき(右側)の位置を調整しましたが、まだ画像も放出方向も左用です.](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-波しぶき右側の位置を調整しましたが、まだ画像も放出方向も左用です.png)
波しぶきの粒子画像の水平反転
試行錯誤の結果、 Particle System のメインモジュールの Flip Rotation と、 Renderer モジュールの Flip (X, Y, Z) を変更することで、粒子の画像を水平反転して表示することができました。
Particle System メインモジュール – Unity マニュアル
フリップ回転 いくつかのパーティクルを反対方向にスピンさせます。
Renderer モジュール – Unity マニュアル
Flip 指定された軸に沿ってパーティクルの一部をミラー (反転) します。 値を大きくすると、より多くのパーティクルを反転します。
これらの値は 0.0 ~ 1.0 の値をとり、反転させる粒子の割合を指定します。
既定値の 0 では全く反転せず、1 ならば全ての粒子の画像が反転します。
メインモジュールの Flip Rotation を 1 に、 Renderer モジュールの Flip の X を 1 に変更します。
![Unity Particle System の粒子の画像を水平反転するためにメインモジュールの Flip Rotation と Renderer モジュールの Flip X を 1 に変更します.](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-Particle-System-の粒子の画像を水平反転するためにメインモジュールの-Flip-Rotation-と-Renderer-モジュールの-Flip-X-を-1-に変更します.png)
粒子(今回は水滴)の画像が水平反転して、右を向いて飛んでいる画像に変わりました。
![Unity Particle System の粒子の画像を水平反転するためにメインモジュールの Flip Rotation と Renderer モジュールの Flip X を 1 に変更後の結果.](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-Particle-System-の粒子の画像を水平反転するためにメインモジュールの-Flip-Rotation-と-Renderer-モジュールの-Flip-X-を-1-に変更後の結果.png)
波しぶきの粒子群の放出方向を左後方から右後方に変更
左後方から右後方に変更するため、Particle System を含むゲームオブジェクトの水平な回転軸を 90 度右側にずらします。
Scene ウィンドウの回転ツールを選択すると 3 つの回転軸が色分けされて表示されます。
水平な回転軸は緑色の Y 軸でした。
![Unity 波しぶきの放出方向を右後方にするために Y 軸を 90 度回転させます.](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-波しぶきの放出方向を右後方にするために-Y-軸を-90-度回転させます.png)
Inspector ウィンドウで Rotation の Y の値を 90 減らします。
例では、波しぶき(左側)は 106.486 だったので、波しぶき(右側)は 16.486 に変更しました。
![Unity 波しぶきの放出方向を右後方にするために Y 軸を 90 度回転させます(Inspector ウィンドウでの変更).](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-波しぶきの放出方向を右後方にするために-Y-軸を-90-度回転させます(Inspector-ウィンドウでの変更).png)
Hierarchy ウィンドウで両方の波しぶきの Particle System を複数選択すると、Scene ウィンドウで両方が再生されます。
ボートの先端を境界線にして左右対称に波しぶきが放出されました。
![Unity 両側の波しぶきが左右対称に粒子を放出しています.複数のParticleSystemを選択すると同時に再生されます.](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-両側の波しぶきが左右対称に粒子を放出しています.複数のParticleSystemを選択すると同時に再生されます-1024x433.png)
テスト
先ほどのように Hierarchy ウィンドウで、波しぶきの2つの Particle System のゲームオブジェクトを複数選択してから Game ウィンドウを見ると、波しぶきが左右に放出され、水滴の画像も右と左で水平反転しています。
![Unity 波しぶきの右側を作成して、両側から波しぶきがたつようになりました。SS1](https://compota-soft.work/wp1/wp-content/uploads/2023/11/Unity-波しぶきの右側を作成して、両側から波しぶきがたつようになりました。SS1.png)
まとめ
今回は、 Unity で細かな粒子をたくさん放出させられる Particle System の粒子1つ1つの画像を水平反転させて表示させる設定と、粒子群を放出させる向きを左右対称にさせる設定を紹介しました。
水平反転するためには、メインモジュールと Renderer モジュールのプロパティを組み合わせることもわかりました。
参照サイト Thank You!
- Unity のリアルタイム開発プラットフォーム | 3D/2D、VR/AR のエンジン
- パーティクルシステム – Unity マニュアル
- Particle System メインモジュール – Unity マニュアル
- Renderer モジュール – Unity マニュアル
記事一覧 → Compota-Soft-Press
コメント