この記事はUnity 2019.4.29f1の記事です
Main Module編 << ここ >> Shape Module編
はじめに
この記事はちょっとParticle System触れるようになったけどまだまだ知らないパラメーターだらけで抵抗感がある人向けにじゃあ全項目解説しようという記事です。
**パーティクル?シェーダー?憧れるけどよくわかんない…**という人は最近は[VRCUnity勉強会][link-1]などで初歩の初歩から解説してくれる講座などが解説されているのでそこに参加してみたりするといいでしょう。
[link-1]:https://discord.gg/mtvTTyM
その他にこの記事はアドベントカレンダーにしてParticle Systemの記事を増やしてパーティクルへの抵抗感を減らしてやろうという企みもあります。
##Emission Moduleってどこ?
ここのEmissionって書いてあるやつ
##本題
####Rate over Time
デフォルト 10 (0~1e+07)
単位 個/秒
1秒間に放出されるパーティクル数を決めるパラメーター
説明不要
####Rate over Distance
デフォルト 0 (0~1e+07)
このオブジェクトが移動した時に比例してどれだけの数パーティクルが出てくるか決めるパラメーター
どういう時に使うかと言うとParticle Systemのオブジェクトが動いたときのみにパーティクルを出したい場合に使ったり
移動量(速度)に比例して放出量が増える仕様を利用して移動量に関わらず一定の間隔でパーティクルを出したい場合に使う(下図)
仕様を調査するための実験結果
アニメーションでn秒間にnメートル移動した際秒間何個パーティクルが出ているか調査した
Rate over Distanceは10にした
設定内容
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386883/93f160c1-697a-9a82-c38c-023eead1f8bb.png)
秒数(s) |
移動距離(m) |
秒間放出量(個/s) |
10 |
10 |
10 |
10 |
100 |
100 |
1 |
10 |
100 |
0.5 |
10 |
200 |
結論: 秒速(m/s)*Rate over Distance = 秒間放出量(個/s)っぽい
今回の方法ではEmitter VelocityがRigidbodyとTransformで差が出ないがRigidbodyを親及び本オブジェクトに適用してる際はその限りでない
####Bursts
**決まった周期で決まった数のパーティクルを決まった回数放出させるための項目**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2386883/a20deb54-7bdb-8c24-c0c8-ff62bf10aa48.png)
*決まった周期で(Interval)
決まった数(Counts)のパーティクルを
決まった回数(Cycles)放出させるための項目
決まった確率(Probability)で出たり出なかったりする
決まった秒数(Time)出るのを遅れさせたりもする*
これの特徴はTimeが0の時
オブジェクトが出た瞬間にパーティクルを出せること(Rate over Time等だと出た瞬間ではない)と
パーティクルの放出するタイミングを細かく指定できること
他にも例だと2つ並んでいるが右下の+を押して追加することで最大で8つまで項目を追加できる
Particle Systemで何か決まった動きをさせたい時に重宝する
#おわり
というわけでEmission Moduleの解説でした
次はShape Moduleの解説をしたいと思います
****
[Main Module編](https://qiita.com/abcde_kind/items/82cddca8be2917c0bded) << ここ >> [Shape Module編](https://qiita.com/abcde_kind/items/e47a8f0c0f1077b314e6)