UnityのParticle Systemは、自由度の高いエフェクトを作成できるツールです。この記事では、ShapeをMeshに設定した時、メッシュの頂点番号順にパーティクルを発生させる方法と、その際に遭遇する問題の解決策をまとめています。動作環境はUnity 2022.3.6f1です。
前提
本記事はUnity側での設定のみをまとめています。
Blenderで頂点番号を調整するには以下の記事を参考にしてください。
【Blender】メッシュのINDEX番号を変えるにはSort Elements(要素をソート)を使う。しかし並べ方の癖が強い
blenderで頂点番号を確認する方法
背景
Particle SystemのShapeを“Mesh”に設定すると、メッシュの頂点番号に基づいてパーティクルが発生します。さらに、Typeを"Vertex"、Modeを“Loop”設定を有効化すると、頂点番号に従った発生が可能です。
しかし、Blender等のモデリングツールでメッシュの頂点番号を意図した順序に並び替えても、Unity側で自動的に頂点の最適化(Optimize)が行われるため、想定した順番でパーティクルを発生させることができません。
解決策
Unity側での最適化を回避します。
Blender等からエクスポートしたFBXファイルをUnityプロジェクトにインポートします。
ProjectからFBXファイルを選択し、Inspectorでインポート設定を変更します。
Optimize MeshのVertex Orderのチェックを外します。
Particle Systemの設定
Shapeを“Mesh”
Typeを"Vertex"
Modeを"Loop"
インポートしたメッシュを指定します。
必要に応じてMainモジュールのStart SpeedやStart Size、Emissiotnの量を調節してください。設定例↓
これで完成です。
この技術を活用するとこのようなものができます。(これはPlaneの中央から外側に向けて頂点番号が増えるようにしたもの)
できない場合
できていない場合は、以下のことが考えられます。
・Particleが動いて頂点番号順に発生しているかわからない。
→Start Speedを0にしてください。
・Particleが一箇所に集まっている。
→Particleのサイズが大きい可能性があります。Start Sizeを小さくしてみてください。