LoginSignup
2
2

More than 1 year has passed since last update.

VRChatプレイヤーによるParticle System解説 ~Main Module編~

Last updated at Posted at 2021-12-14

この記事はUnity 2019.4.29f1の記事です

ここ >> Emission Module編

はじめに

この記事はちょっとParticle System触れるようになったけどまだまだ知らないパラメーターだらけで抵抗感がある人向けにじゃあ全項目解説しようという記事です。

パーティクル?シェーダー?憧れるけどよくわかんない…という人は最近はVRCUnity勉強会などで初歩の初歩から解説してくれる講座などが解説されているのでそこに参加してみたりするといいでしょう。

その他にこの記事はアドベントカレンダーにしてParticle Systemの記事を増やしてパーティクルへの抵抗感を減らしてやろうという企みもあります。

Main Moduleってどこ?

image.png
この上のいっぱい項目があるやつ

本題

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編

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2