この記事はUnity 2019.4.29f1の記事です
ここ >> Emission Module編
はじめに
この記事はちょっとParticle System触れるようになったけどまだまだ知らないパラメーターだらけで抵抗感がある人向けにじゃあ全項目解説しようという記事です。
**パーティクル?シェーダー?憧れるけどよくわかんない…**という人は最近は[VRCUnity勉強会][link-1]などで初歩の初歩から解説してくれる講座などが解説されているのでそこに参加してみたりするといいでしょう。
[link-1]:https://discord.gg/mtvTTyM
その他にこの記事はアドベントカレンダーにしてParticle Systemの記事を増やしてパーティクルへの抵抗感を減らしてやろうという企みもあります。
##Main Moduleってどこ?
この上のいっぱい項目があるやつ
##本題
####Duration
デフォルト 5.0 (0.05~100,000)
単位 秒
パーティクルが何秒間出続けるかを決めるパラメーター
デフォルトでLoopingにチェックがついてるため分かりづらいが〇〇 over Lifetime等の指定がない場合の横軸は基本これ
####Looping
デフォルト ON
見て字の如くDurationを延々と繰り返させるパラメーター
要するにパーティクルが永久に出るようになる
####Prewarm
デフォルト OFF
Loopingにチェックが入ってないと使えないパラメーター
普通パーティクルが出てないところからスタートするところを、Durationが一周したパーティクルが出ている状態からスタートさせる
####Start Delay
デフォルト 0 (0~3.402823e+38)
単位 秒
Prewarmにチェックが入ってると使えないパラメーター
オブジェクトがアクティブになってから何秒後にパーティクルが出るか決めるパラメーター
複数のParticle Systemを組み合わせてエフェクトを作ったりする時によく使う
(厳密にはオブジェクトがアクティブになってからというのは正確ではないけど気にしないで)
####Start Lifetime
デフォルト 5 (0.0001~3.402823e+38)
単位 秒
パーティクル1つ1つの寿命
Startって書いてるってことは変化するのかって言うとCollisionの項目で一回衝突する毎にどれくらい寿命が減るかというのを弄れる、他にもSub Emittersに関係したりする
####Start Speed
デフォルト 5 (-100,000~100,000)
単位 m/秒
パーティクルが出てきたときのスピード
はい
####3D Start Size
デフォルト OFF
実際試すとすぐわかるけどStart SizeをXYZ軸で操作できるようにするパラメーター
####Start Size
デフォルト 1 (0~100,000)
単位 倍
パーティクルが出てきたときのサイズ
3D Start SizeをONにするとXYZに分かれる
####3D Start Rotation
デフォルト OFF
実際試すとすぐわかるけどStart RotationをXYZ軸で操作できるようにするパラメーター
####Start Rotation
デフォルト 0 (-100,000~100,000)
単位 度
パーティクルが出てきたとき何度傾いているか決めるパラメーター
時計回りが基準
3D Start RotationをONにするとXYZに分かれる
####Flip Rotation
デフォルト 0 (0~1)
単位 割合
100%を1としてどれくらいの割合のパーティクルが左右反転して出てくるか決めるパラメーター
左右非対称なパーティクルに使うと一気に玄人感が出る
####Start Color
デフォルト rgba(255,255,255,1)
パーティクルが出てきたときの色
頂点カラーを使用してる
####Gravity Modifier
デフォルト 0 (-100,000~100,000)
単位 倍
重力の影響をどれだけ受けるか決めるパラメーター
ワールドによって変わることがあるため基本的にForce over Lifetimeでいい
####Simulation Space
デフォルト Local
パーティクル全体がどこの座標を基準に動くかを指定するパラメーター
LocalとWorldに切り替えてみてパーティクルを放出している時にParticle Systemのオブジェクトを動かしてみるとどういうことかわかりやすい
####Simulation Speed
デフォルト 1 (0~100)
単位 倍
パーティクルの動き、放出速度等全ての動きにかかる倍率
数値が小さくなると負荷が大きくなり数値が大きくなると軽くなる
パーティクルが出てる状態からアニメーション等で0にするとその時出てるパーティクルが停止するので色々使える
####Delta Time
デフォルト Scaled
VRCではまず使わない
Time Scaleの値を使用するかどうか決めるパラメーター
####Scaling Mode
デフォルト Local
Particle System全体のスケールとパーティクル1つ1つのサイズがどこのTransformに依るか決めるパラメーター
Localだとこのオブジェクトのみ、Hierarchyにすれば親のオブジェクトも、ShapeにするとShapeにのみTransformが影響しパーティクルのサイズは変わらない
####Play On Awake
デフォルト ON
オブジェクトがアクティブになったときにパーティクルを再生させるかどうか決めるパラメーター
アバターで使ったりパーティクルライブで使ったりする分には全く使わない
####Emitter Velocity
デフォルト Rigidbody
ここの説明をして分かる人に説明はいらない
Rate over DistanceとかInherit Velocityに影響する
####Max Particles
デフォルト 1000 (0~2,147,483,647)
単位 個
同時に出るパーティクル数の上限
上限と言ってもこのParticle Systemのパーティクルの話、上限に到達すると古めのパーティクルがごっそり消える
####Auto Random Seed
デフォルト ON
ONにするとパーティクルの出方等のランダム要素がパーティクルが出てくる毎に変化するようになる
OFFにするとランダム要素を固定できるようになり、下記のRandom Seedというパラメーターが出てくる
#####Random Seed
右のReseedボタンを押すとランダム要素ガチャを回せる
####Stop Action
デフォルト None
パーティクルの再生が終わった瞬間どういう動作をするか選べる
Loopingを切った状態で使うのが普通
####Culling Mode
デフォルト Automatic
パーティクル全体が画面外にあるときパーティクルの再生を一時停止するかどうか決めるパラメーター
大体Automaticでいいがたまに変えることがある、内容は見たら何となく分かる
####Ring Buffer Mode
デフォルト Disabled
Max Particlesに到達するまでパーティクルが出続ける(古いパーティクルから順番に消える)かどうか決めるパラメーター
Pause Until ReplacedはLifetimeを超えたパーティクルの〇〇 over Lifetime等の最後の状態を維持する
Loop~はパーティクルが存在してる間は指定した範囲のアニメーションを再生し続け、
上限に達して消えるパーティクルは最後までアニメーションが再生される(つまり上限を超えたパーティクルが存在することになる)
これ使うと玄人っぽい
#おわり
というわけでMain Moduleの全項目の解説をしました
これ以降のModuleの解説もする予定なのでお楽しみに
ここ >> Emission Module編