【Unity】パーティクルシステムのメモ

Unity

最近はUnityのParticle Systemの勉強をしていました。項目がたくさんあってどこの値をどう設定すればいいのかよくわかんないんですよね。なので自分用にわかりやすくパーティクルシステムの項目のメモを書くことにしました。

この記事の内容は、2026年11月現在でUnity 2022.3.22f1(VRChatの推奨バージョン)で確認しています。
パーティクルシステムの項目はUnityのバージョンによって増えたり名前が変わったりすることがあるので、自分の画面で項目が見当たらないときは、まずバージョンを確認してみてください。

※全ての項目の説明は書いていません。あくまで自分がわかりやすい言葉で書いてます。
 全ての項目を理解しているわけではないので、実際の動きは自分でいじって確認してみてください。

試しにこんな感じでいくつか魔法っぽいものをParticle systemで作ってみました。

BGM:DOVA-SYNDROME 氷晶と海
VRChatでのアイテムの持たせ方とライトの設定についてはこちらの記事をご覧ください。

最初に。デフォルトのパーティクルを作成する

Hierarchyの上で右クリック⇒「Effects」⇒「Particle System」をクリック。
すると白いふわふわしたものが出てきます。位置とか角度とか全部リセットしたいなら「Particle Systems」を選んでTransform」の右上の3点のマークから「Reset」を選んでおきます。
Sceneの右下にParticlesの設定があります。でも正直この辺はあまりいじることはないです。


・Resimulate
 設定した内容をすぐに反映するかどうか。基本チェックを入れておけばOK。

・Show Bounds
 パーティクルの範囲。チェック入れて表示してもいいけど基本いらないかも。

・Show only Selected
 複数のパーティクルを使うときに、今選択しているパーティクルだけ見たい!ってときに使う。

Particle System

パーティクルの基本的な項目。横に▼のマークがある項目は「Random Between Two Constants」を選ぶと、指定した数でランダムにパーティクルを発生させることができる。
例えば3秒~10秒の間でパーティクルが消える処理をしたいときとかに使える。

・Duration
 システムが動作する 1 サイクルの長さ。デフォルトは5。
 ループにチェックが入っていたら「5秒間でパーティクルが1サイクル分動作する」という設定になっている。

・Looping
 チェックが入っていればループする。
 チェックが入っていなければDurationで設定した秒数で1回だけパーティクルが発生する。

・Prewarm
 Loopingにチェックが入っているときに、Prewarmのチェックを入れておくと
 開始時点ですでに Duration1サイクル分のシミュレーション済みの状態から再生が始まる。
 

・Start Delay
 パーティクルが出始める時間。0秒だとすぐにパッと出始める。
 1なら1秒遅れてパーティクルが出始める。

・Start Lifetime
 パーティクルの生存時間。5ならパーティクルが発生したあと5秒後に消える。

・Start Speed

 パーティクルのスピード。
 値を小さくすればスピードはゆっくりになる。値を大きくすればスピードは速くなる。

・Start Size
 パーティクルの大きさ。
 値を大きくすればパーティクルも大きくなるし、値を小さくすればパーティクルも小さくなる。
 3Dのほうにチェックを入れるとX,Y,Zで値を変えて細長くしたり、縦長にしたりと形を変えられる。

・Start Rotation
 パーティクルの角度を変える。

・Start Color
 パーティクルの色を変える。

・Gravity Modifier
 重力の設定。0なら重力なし。0より大きい数字の場合は重力があるように下に落ちていく。
 数値がマイナスになれば上にふわふわと上がっていく。

・Simulation Space
 パーティクルを動かしたときの残り方みたいなもの。
 Localならパーティクルを動かしたときそのままの形でついてくる。
 Worldならちょっとその場にパーティクルが残る感じ。

・Simulation speed
 システム全体の更新速度(再生速度)の倍率。再生速度だけを変えたいときはここをいじればいい。

・Scaling Mode
 パーティクルの大きさの設定。例えば一つの箱に複数のパーティクルが入っていた場合
 Localなら元の箱の大きさを変えてもそのパーティクルの大きさは影響を受けない。
 Hierarchyならその箱に入っているすべてのパーティクルの大きさも変わる。
 複数のパーティクルをまとめて一気に大きさを変えたい!ってときに使える。
 Shape という選択肢もあるけど、これは Transform のスケールをパーティクルの発生位置にだけ効かせるモードで、パーティクル自体の大きさは変わらない。普通はあまり使わない。

・Play On Awake
 チェックを入れておくと、そのオブジェクトが有効になった瞬間にパーティクルが自動で再生される。大抵は入れたままでOK。

・Max Particles
 同時に存在できるパーティクル数の上限。1にすれば1個のパーティクルしか出てこなくなる。

・Stop Action
パーティクルが全部終わったときに、そのオブジェクトをどうするかを決める項目。
Noneは何もしない、Disableはオブジェクトを無効化、Destroyはオブジェクトを削除。

・Culling Mode
 パーティクルがカメラの画面外に出たときに、シミュレーションを続けるかどうかを決める項目。
 Automaticは自動で判別するけど、Looping にチェックが入っているものは Pause、入っていないものは Always Simulate として扱われる。Pause And Catchup が自動で選ばれることはない。

 Always Simulate は画面外でも常に計算を続ける。

 Pause系にすると画面外では止まる分軽くなるけれど、AFKギミックのように「他の人から見えているかどうか」が大事なものでは、画面外で止まったり動きがずれたりする原因になることがある。

 Pauseは画面外では止まったままで、Pause And Catchupは画面に戻ったときに止まっていた時間分をまとめて計算して追いつく。

Emission

・Rate over Time
 1秒間に何個のパーティクルを出すかという設定。
 もし100でStart Life Timeが5秒なら 100×5で500個のパーティクル画面上に存在する。
 パーティクルの上限は Max Particles で決まる。

・Rate over Distance
 動いたときにパーティクルがどう発生するか。
 基本項目「Particle System」のSimulation Spaceを「world」にするとわかりやすいかも
 このRate over Distanceの値を上げると、動くたびにパーティクルが大量に発生する

・Bursts
 +のマークをクリックすると、それぞれの値を設定することができる
 time:再生開始から何秒後にバーストするか
 Count:その瞬間に一度に出すパーティクルの数
 Cycles:繰り返す数
 Interval:何回置きで繰り返すのか、繰り返しの間隔
 Probability:そのバーストが「実際に発生するかどうか」の確率。
 1なら必ず発生し、0.5なら半分くらいの確率で発生する。
 パーティクルの発生をランダムな感じにしたいなら数字を小さくして確率を下げる。

 例えばTimeを1、Countを100、Cyclesを3、Intervalを1にした場合
 開始1秒後に100個のパーティクルを一度に出し、1秒間隔で合計3回繰り返す
 という動きになります。文字で見るより実際に設定してみてみるとわかりやすいかもです。

Shape

パーティクルがどこから、どんな形の範囲から出るかを決める項目。
Shape で形の種類を選ぶ。種類によって出てくる項目が変わる。

・Shape
 パーティクルがどういう方向に飛んでいくか決めるもの。その形によって範囲や方角が変わってくる。
 Sphereなら球体なので、中心から外側へパーティクルが飛んでいくようになる。

 HemisphereはSphere と同じで、範囲は平面の片側(上半分)だけに出る。
 SphereのArcを180 にしても縦割りの半分にはなるけど、上半分にはならない。
 上半分だけパーティクルを出したいときはHemisphereを選ぶ。

 Coneは円錐型で、その先端の角度の方向にパーティクルが飛んでいく。
 Angle:円錐の開き具合(先端の角度)。0 で円柱、90 で平らな円盤になる。
 Radius:底面の円の大きさ。
 Radius Thickness:円錐のどの部分から出すか。0 で表面側だけ、1 で全体から。
 Emit from:出す場所。Base(底面から)か Volume(円錐全体から)。
 Volume を選んだときだけ、Length(円錐の長さ)の項目も出てくる。

 Boxは立方体みたいな形で、パーティクルはオブジェクトの前方(Z 方向)に飛ぶ。
 Emit from:出す場所。Edge(辺から)、Shell(表面から)、Volume(箱全体から)
 大きさは共通項目の Scale(X、Y、Z)で決める。

 Circleは平べったい円の形。(球体じゃない丸)
 Radius:円の大きさ。
 Radius Thickness:円のどの部分から出すか。0 で外周からだけ、1 で円全体から。
 パーティクルは円の平面の中でだけ動く。

 Donutは名前を通りドーナツ型。Blenderのトーラスみたいな形。
 Radius:輪全体の大きさ。
 Donut Radius:輪の太さ。

・Radius
 球体の大きさ。小さければその原点からパーティクルが発生する。
 大きくすればするほどその球体の範囲からパーティクル飛んでいく。

・Radius Thickness
 パーティクルの発生場所を、その球体の中のさらに範囲を指定するもの。
 0だと外側からのみ出て、1にするとその範囲内全体からパーティクルが発生します。

・Arc
 Sphere、Hemisphere、Cone、Donut、Circle にある項目。
 形を円一周のうちの一部だけに絞りたいときに使う。パーティクルを飛ばす範囲を変える。
 デフォルトは360度だけど、180なら縦割りの半周分になり、90にしたらさらにその半分、4分の1の範囲になる。

・Mode
 Arcの下にある項目。円弧の中での出方の決め方。
 デフォルトはRandomで、円弧の中のランダムな位置からパーティクルが出るもの。
 Loopは円を描くようにパーティクルが生成される。出る位置が円弧を順番に移動していく。1周すると最初に戻る。
 Ping-PongはLoopと同じだけど、端まで行ったら逆向きに戻ってくる。
 Burst Spreadは円弧の中に均等に割り付けて出す。EmissionのBursts と組み合わせて均一に出したいときに使う。

・Spread
 パーティクルの広がり方、範囲を設定するもの。
 0 で円弧のどこからでも出る。0.1 なら 10% 刻みの位置からだけ出るようになる。
 Arcが360の時、0.5とするとX軸方向にしかパーティクルが飛ばなくなる。
 0.25とすると十字方向にパーティクルが飛ぶようになる。0.2だと5か所から出てくる。

・Texture
 テクスチャを設定すると、そのテクスチャの色やアルファで出る位置を絞ったり、出たパーティクルに色を乗せたりできる。設定すると Clip Channel などの関連項目も出てくる。

・Position, Rotation, Scale
 パーティクルの位置、角度(回転)、縮小拡大など大きさを変えるもの。
 これらは放出形状そのもののオフセット・回転・拡大縮小で、GameObjectのTransformと違ってそれぞれ変えられる。

・Align To Direction
 パーティクルを飛んでいく方向に向ける。
 チェックが入っていると内側から外側へ飛んでいくような見た目になる。
 でも見方によっては画像が歪んで見えるので、使いどころは難しいかも。

・Randomize Direction
 パーティクルの向きをランダム方向に混ぜる割合。
 0 で影響なし、1 で完全にランダムな向きになる。でも画像が歪みやすいかも。

・Spherize Direction
 パーティクルの向きを中心から外向きに寄せる割合。
 1 にすると、どの形でも Sphereから出たときのような中心から外へ出る感じになる。

・Randomize Position
 パーティクルの出る位置を、指定した値までの範囲でランダムにずらす。0 で影響なし。

Velocity over Lifetime

生存期間中パーティクルの速度を変更するもの。Shapeにチェックが入っていない方がわかりやすいかも。
基本項目のStart Speedの値を0にすると値を変えたときどう変わるのかわかりやすい
バネっぽい形や蚊取り線香みたいにぐるぐるした形のパーティクルが作れる。

・Linear
 そのままX,Y,Zの値を変えるとその軸方向にパーティクルが飛んでいく。

 Space
 Linearの下にある項目。LocalにしておくとSceneで角度を変えたときそのままパーティクルが動く。
 worldにすると、ワールド基準になる。エミッターを回転させても速度の向きはワールド固定になる

・Orbital
 値を変えるとパーティクルが円を描くような動き、円っぽい形になる。
 円の大きさを変えるならLinearの値を変えた方がいいかも。
 Orbital は中心の周りを回る速度。Offsetはその回転中心の位置をずらすもの。

・Radial
 offsetの下にある項目。中心から遠ざかる/近づく方向の速度。
 値を大きくすると中心部分が広がっていく感じ。



Limit Velocity over Lifetime

パーティクルの速度を減速させるもの。上の項目にさらに制限を付けたもの?

・Speed
 スピードの制限速度。
 ▼からCurveを選択して右端のカーブを下げれば途中から速度を落とす、みたいな動きになる。
 一度スピードを落とすと、再度加速はできない。

・Dampen
 speedの下にある項目。減衰率。0だと特に変化はないが、0.5とかにしてみると
 パーティクルの速度が途中から減少しているのがわかる。
 Dampen が効くのは速度が Speed の上限を超えているときだけ。上限以下で飛んでいるパーティクルには何も起きない。

Inherit Velocity

動いているものからパーティクルを出すときに、その動きの勢いをパーティクルにどれだけ引き継ぐかを決める項目。
VRChatだったらアバターや持ち物から出るエフェクトとかに使う。
Simulation Space が World のときだけ。Local のままだと何も起きない。

・Mode
 引き継ぎ方。Currentは今のエミッターの速度を、生きているパーティクル全員に毎フレーム反映する。
 エミッターが減速したら出済みのパーティクルも一緒に減速する。
 Initialは生まれた瞬間の速度だけを引き継ぐ。出た後のエミッターの動きには影響されない。

・Multiplier
 引き継ぐ割合。0 で全く引き継がない(パーティクルはその場に置いていかれる)
 1 で速度そのまま。カーブで生まれた直後は強く引き継いで、だんだん弱くといった調整もできる。

Force over Lifetime

パーティクルに外からの力をかけ続ける項目。
風に流されるとか何かに吸い寄せられるとか、パーティクルが出た後に何か外からの力が加わったような動きにしたいときに使う。

・X / Y / Z
 各方向にかける力。数値だけじゃなく右の▼からカーブも使える。
 パーティクルが生まれてからの時間で力の強さが変わる設定ができる。

・Space
 力の向きを Local(オブジェクトの向き基準)で効かせるか、World(ワールドの向き基準)で効かせるか。
 オブジェクトを回しても風の向きを変えたくないなら World、オブジェクトの向きに合わせて流したいなら Local。

・Randomize
 X / Y / Z のモードが「Random Between Two Constants」や「Random Between Two Curves」のときだけ関係する項目。
 チェックを入れると、フレームごとに力の向きと強さを選び直すので、動きが荒く乱れた感じになる。
 炎のゆらぎや荒れた水しぶきみたいな表現に使う。

Color over Lifetime

パーティクルの色を変えたり、パーティクルの消え方を設定する項目。
たとえば最初を赤。そして黄色、最後に青といったグラデーションのような設定もできる。

 

Color by Speed

パーティクルの今の速さによって色を変える項目。
時間で変わる Color over Lifetime とは別物で、こっちは速度に連動する。

・Color
 速さに対応させるグラデーションの色。

・Speed Range

 グラデーションの左端を何 m/s、右端を何 m/s に対応させるか。
 範囲より遅いものは左端の色、速いものは右端の色になる。

Size over Lifetime

パーティクルの大きさをだんだん大きくしたいときなんかに使う。
Curvesで大きさを調整してもいいし、▼からRandom Between Two Constantsを選べば大きさもランダムになる。

・Separate Axes
 チェックを入れることでX,Y,Z軸方向にパーティクルの大きさを変えることができる。

Size by Speed

パーティクルの今の速さによって大きさを変える項目。考え方は Color by Speed と同じ。

・Size
 速さに対応させるカーブ。左端が遅いとき、右端が速いときの大きさ。

・Speed Range
 カーブの左端、右端を何 m/s に対応させるか。範囲外の速さは端の値に張り付く。
 Speed Range が効くのは Size がカーブのときだけ。

・Separate Axes
 X / Y / Z を別々に設定できるようにするチェック。板状のパーティクルを「速いときだけ進行方向に伸ばす」みたいな使い方ができる(Z は Mesh パーティクルのときだけ意味がある)。

Rotation over Lifetime

1秒間にパーティクルがどれだけ回転するか設定する。
360なら1秒間に360度。つまり値が大きければ大きいほど高速回転する。
Angular Velocityの▼からRandom Between Two Constantsを選べば回転する速度もランダムで設定できる。

Rotation by Speed

パーティクルの今の速さによって、回転する速さを変える項目。

・Separate Axes
 チェックを入れるとX/Y/Zで回転軸ごとに別々に設定できるようになる。

・Angular Velocity

 回転の速さ(度/秒)。速さに対応させるカーブとして設定する。

・Speed Range
 カーブの左端・右端を何 m/s に対応させるか。範囲外は端の値に張り付く。Color by Speed や Size by Speed と同じ決め方。

転がる破片や地面を跳ねるかけらみたいな、速く動いているものほど速く回る表現に使う。
メッシュのパーティクルでコマや手裏剣のようなものを飛ばすときも、速さに回転を連動させると勢いが出る。

Noise

パーティクルの動きを波のようにゆらゆら、ふわふわとした不規則な動きにしたいときに使う。

・Strength
 ノイズの影響値。値が大きくなればなるほどびょんびょんと荒ぶるような動きなる。

・Frequency
 値を変えると横にあるPreviewの白黒模様が変わる。
 その模様が細かくなればなるほどパーティクルの動きの変化が速く、荒くなる。

・Scroll Speed
 値変えると横にあるPreviewの白黒模様が動き出す。
 その動き(速さ)のようにパーティクルにもノイズのような動きがかかる。



Collision

パーティクルが衝突判定のあるものに当たった時にどういう動きをするのかを決める項目。
最初に+ボタンをクリックして、さらにその横の小さなプラスボタンを押すと
「Plane Transform1」というものがパーティクルの下にできる。
すると、パーティクルが壁にぶつかって跳ね返ってくるような動きに変わる。

壁はデフォルトで見えないので、このマークをクリックすると壁が見える。
Typeが「Plane」だと、この緑の壁に当たった時の設定になって「World」にするとデフォルトのキューブや球体、ワールドの壁など衝突判定(Collider)のあるものに当たると跳ね返るようになる。


このパーティクルの周りの丸い枠線みたいなのが邪魔なときはVisualize Boundsのチェックを外す。

・Dampen
 壁に当たった時の減少速度。壁に当たった時にどれくらいパーティクルが遅くなるのかを設定する。
 0ならそのままのスピードで跳ね返る。値が大きいと衝突で速度が落ちる。

・Bounce
 衝突判定に当たったときの跳ね返り具合。値が小さいと壁に沿ってふわふわーと動くようになる。
 値が大きければそのまま壁に当たって跳ね返ってくる。

・Lifetime Loss
 衝突判定に当たったとき、パーティクルがどれくらいの時間生きるかの設定。
 0ならそのまま跳ね返るし、1なら当たった瞬間に消える。

・Radius Scale
 パーティクルの当たり判定の大きさを設定するもの。
 見た目より判定が小さくて壁にめり込む場合は当たり判定を大きくして、壁にめり込むのを防ぐ。
 その範囲大きさはVisualize Boundsのチェックが入っていないってないと見えない。

・Send Collision Messages
 TypeがWorldの時にチェックを入れ、Send Collision Messagesにチェックを入れると
 衝突をスクリプト(OnParticleCollision)で受け取れるようになる。
 その衝突判定の有無はVRChatなどのワールド側の設定次第なので、詳しくは【攻撃判定のあるパーティクルについて】を参照してください。

Sub Emitter

パーティクルシステムの下にもう一つサブのパーティクルを作成し、そのサブのパーティクルをどのようなタイミングで発動するか設定するもの。
最初にNoneとなっている横の+ボタンをクリックすると、パーティクルシステムの下に「SubEmitter0」という箱ができている。これがサブのパーティクル。
例えば花火みたいなものを作りたいときは最初に発射されるメインのパーティクルと、そのメインのパーティクルが消えた後にサブパーティクルの花火が開くといった設定ができる。

・Birth
 デフォルトの値。これはパーティクルが生成された瞬間からサブのパーティクルも生成されるという設定。

・Death
 メインのパーティクルが消えたらサブのパーティクルが発動する。という設定。
 例えばメインの値をDeathにして、サブパーティクルのEmissionのBurstsの+ボタンを押してCountを5と設定すると、メインのパーティクルが消えた瞬間にサブのパーティクルが5個生成されるという動きになる。

・Collision
 衝突判定のあるものに当たった時にサブパーティクルを発生させる。

花火っぽいものの作る場合

まず最初に発射される方のメインのパーティクルを作る。
・最初に「Effects」⇒「Particle System」でパーティクルを生成する。
・Max Particlesを3~5に、Start SpeedやStart Lifetimeをいじって速度や距離を設定する。
・EmissionのRate Over Timeを1~2にする
・ShapeはCone、角度は好みだがAngleを30度程度で上方向に、あとは花火を表示させたい範囲で設定する。
・Color Over Lifetimeは色は好みで。右側は透明の設定で。
・Noise これは好みでチェックを入れたり値を調整する。あってもなくてもいい。
・TrailsのWidth over Trailの値を小さくして細くする(0.05とか、そこは好みで)

花火が開くサブパーティクルを作る。
・メインのパーティクルの下に「Effects」⇒「Particle System」でパーティクルを生成する。
・Simulation Space をWorldにする。
・Scaling ModeをHierarchyにする。
・Gravity Modifierは任意で。変える場合は0.2とかで様子を見る。
・EmissionのRate Over Timeを0に。+でCountを100~300くらいにする。
・ShapeをSphereにする。
・Limit Velocity over LifetimeのSpeedをCurveにして下にある右下下がりマークを選ぶ。
 一番左上の値を5.0にする。Dampenを0.25にする。
・Color ver Lifetimeで右側(消える瞬間)を透明にする。下の色は花火を同じ色やグラデーションを設定する
・TrailsのTrailsのWidth over Trailの値を小さくして細くする(0.2とか、そこは好みで)

あとはメインのパーティクル(発射する方)のSub Emittersを「Death」にして
右側は花火が開くほうのサブパーティクルを設定する。複数のパーティクルを組み合わせればいろんな色の花火っぽいのができるかも?

Texture Sheet Animation

パーティクルをパラパラ漫画のような、RPGのエフェクトみたいに1コマ400×400の画像なんかを動かすときに使えそうな項目。
画像の大きさが大きすぎたり、分割数が多いと解像度が落ちたり重くなるので多くても15コマくらいのアニメーションがいいんじゃないかなと思う。

・Tiles
 パラパラ漫画の1コマの数を指定するもの。横のコマの数をX、縦のコマの数をYで数字を指定すればOK。

・Animation
 デフォルトのWhole SheetはZのような流れ。
 つまり左から右へ流れ、そしてまた左斜め下に行って右に流れるといった順番で画像を流していく。
 これをsingle rowにして、その下のRow Modeの値をCustomにすると指定した数字の列だけ表示される。
Rowを0なら1列目の画像だけ、1なら上から2番目の列の画像だけが使われる。

・Frame over Time
 最初はゆっくり、後半は高速で動かしたいときなんかに使う。
 Curvesは右クリック→Add keyでキーを追加できる。

Trails

パーティクルの後ろに線を伸ばすような見た目になる。流れ星みたいなパーティクルを作るのによさそう。

・Mode
 Particlesはそのままパーティクルの後ろに線がくっついているような見た目になる。
 Ribbonにするとパーティクル同士が線で繋がれて星座のような見た目になる。

・Ratio
 トレイルが付くパーティクルの割合。0にすれば線は全く見えなくなるし、1ならはっきりと見える。

・Life Time
 パーティクル自身の寿命に対する倍率。値が小さければ小さいほど短く千切れる感じになる。

・Die with Particle
 これにチェックが入っているとパーティクルが消えたらトレイル(線)も消える。
 
・Minimum Vertex Distance
 頂点数の調整?値を下げると見た目がカクカクしてくる。あまり値が大きすぎると重くなるかも。

・Size affects width
 パーティクルのサイズにトレイル(線)が依存するかどうか。
 チェックが入っているとパーティクルの大きさを変えたときにトレイルも一緒に変わる。
 チェックを外すとトレイル自体は変化がない、影響を受けない。

・Inherit Particle color
 パーティクルの色を変えた時トレイルも影響を受けるかどうか。
 チェックが入ってると色を変えたときにトレイルも同じ色になる。
 チェックを外すとトレイルはパーティクルの色の影響を受けない。

・Color over life time
 Inherit Particle colorのチェックが入っていないときにトレイルの色や消え方を変えることができる。
やり方はColor over Lifetimeの項目と同じなので透明度を下げてふわっと消すこともできる。

・Width over trail
 トレイルの大きさ、太さを変えるもの。値を小さくすればトレイルも細く小さくなっていく。
 ▼からCurveを選択すれば最初はトレイルを細く、後半は太く、のような設定もできる。

・Color over trail
 トレイルの色変更。Color over Lifetimeはパーティクルの寿命経過に沿ったトレイル全体の色変化。
 Color over Trailはトレイルの長さ方向(根元から先端)に沿った色のグラデーション。
 トレイルの色を変えるだけならこっちでいいのかも。

Renderer

マテリアルやパーティクルの表示の設定などの項目。

・Render Mode
 パーティクルがどの角度から見たときにどういう風に見えるか設定するもの。
 Billboardならどの角度から見ても同じ、正面を向いているように見える。
 Stretched Billboardならパーティクルが飛ぶ方向に形が変わる。ちょっと形が歪むかも。
 Horizontal Billboardだとパーティクルが地面と平行になるので、横から見るとペラペラで見えない。
 Vertical Billboardなら真下、真上から見たらペラペラな状態。あとはどの角度から見ても正面を向いてるように見える。

 Meshにすると、選択したオブジェクトの形になってパーティクルが生成される。
 デフォルトはCubeだけどMeshesのところを円にしたり、別のオブジェクトに選択したりすると
 その形でパーティクルがポンポン出てくる。

 これを設定したときはrender Alignmentを「Local」にしておくこと。
 じゃないと立体じゃなくペラペラなまま表示されるから。

 Noneは何も見えないけど、例えばTrailだけ表示したいとかサブパーティクルをうまく使いたいときなんかに使えるかも。

・Sort Mode
 パーティクル同士の描画順(前後関係)をどう決めるかを設定する項目。
 Noneは並べ替えない。By Distanceはカメラからの距離順。
 Oldest in Frontは古いものが手前、Youngest in Front(新しいものが手前)。
 By Depthはカメラ平面からの奥行き順。


・Sorting Fudge
 このパーティクルシステム全体を、他の透明なものと比べてどれくらい手前に描くかの調整(描画順の補正値)。値が小さいほど手前に描かれやすくなる。
 パーティクル同士の前後関係を決めるのは、Sorting Fudgeではなく Sort Mode の方。

・Min Particle SizeまたはMax Particle Size
 パーティクルの大きさの制限の設定。
 パーティクルのサイズ自体はstart sizeを大きくしたり小さくすればいい。
 この2つはワールド上での大きさではなく、画面の高さに対してどれくらいの大きさまで表示するかというもの。
近くで巨大なパーティクルが画面を埋め尽くすのを防ぐための制限。

・Render Alignment
 Render Modeと似てる。パーティクルがどの方向を向くかを設定できる。
 Viewはどこから見ても正面に見えて、Local はパーティクルの向きをオブジェクトの Transform の軸に合わせる。
 Velocityは進行方向にむかってパーティクルが正面に向く。

●pivot
 パーティクルの中心点を決めることができる。
 パーティクルを回転させたいときとかに中心点をずらすと回転もちょっと工夫できる。
 中心点は「Visualize Pivot」のチェックをオンにしておけば中心に+マークが見える。



スピード、速さ、時間を変えたいとき

・パーティクルが出始める時間、開始時間を変えたい
 Particle SystemのStart Delayの時間を変える。1としたらパーティクルは1秒後に発生する。

・パーティクルの速さを変えたい

 Particle SystemのStart Speedの時間を変える。
 距離や消える時間をそのままに再生速度だけ変えたいときはSimulation Speedの値を大きくする。

・パーティクルの消える時間を(表示する時間)を変えたい
 Particle SystemのStart Lifetimeの時間を変える。5なら5秒後にパーティクルが消える。

大きさ、数を変えたいとき

・パーティクルの大きさを変えたい
 Particle SystemのStart Sizeを値を変える。
 大きさをバラバラにしたいときは▼マークからRandom Between Two ConstantsでランダムにすればOK。

・2個以上、複数のパーティクルの大きさを変えたい。
 複数のパーティクルが一つの箱に入っているものとして
 Particle SystemのScaling ModeをHierarchyにしておく。
 すると、その大元の箱の大きさを変えるだけですべてのパーティクルの大きさを変えられる。

・パーティクルの数、最大値を変えたい
 Particle SystemのMax Particlesを変える。あとはDurationやStart Lifetimeの値で見た目の多さ、密度も変わってくる。

・1秒間に放出するパーティクルの数を変えたい
 EmissionのRate over Timeの値を変える。

・パーティクルの大きさをだんだん変えたい、大きくしたり小さくしたりしたい
 Size over Lifetimeにチェックを入れ、値を変える。
 だんだん大きくしたいのならCurveを右肩上がりのように設定する。
 Start Size は発生した瞬間の初期サイズ。
 Size over Lifetime は寿命を通じたサイズ変化のカーブで、ランダムにするとその変化量に個体差が付く。
 最初から大きさがバラバラにしたいなら Start Sizeを時間経過で大きさをバラバラにしたいならSize over Lifetimeを変えればいい。

回数、ループの設定など

・回数を1回にしたい
 Particle SystemのLoopingのチェックを外せばOK。ループしたいときはチェックを入れればOK。

距離、長さ、範囲など変えたいとき

・パーティクルの飛ぶ距離、長さを調整したい
 パーティクルの距離、範囲はParticle Systemの「Start Lifetime」×「Start Speed」で変わってくる。
 このどちらの値も大きければ大きいほど範囲が広くなり、遠くに飛ぶ。

・パーティクルを放出する範囲を設定したい
 例えばshape項目のshapeを「Sphere」に設定し、Arcの値を180にすれば
 パーティクルが飛ぶ範囲が半分だけなる。
 上半分だけから出したいときはShapeをHemisphereにする。
 さらに狭めたければArcの値を小さくする。
 正面から見たときにX軸方向にだけ飛ばしたければSpreadを0.5に。十字に飛ばしたければ0.25にする。
 ShapeがConeならAngleやRadiusの値を調整して範囲を広く狭くできる。

色を変えたいとき

・パーティクルの色を変えたい 
 Particle SystemのStart Colorを値を変える。
 ランダムで色を変えたい場合は▼マークからRandom Between Two Colorsで
 赤~白で設定すれば、赤、ピンク、白っぽい色でランダムに表示される。

・パーティクルの色を複数指定したい。またはだんだん色を変化させたい
 color over Lifetimeの下の色を左から最初に出てくる色、中間、あとのほうと色を設定する。
 クリックでその色の設定の数を増やせるし、間違えて増やしてしまったなら選択した状態でdeleteキーで消せる。
▼マークからRandom Between Two Gradientsを選べばその指定した2色でランダムにパーティクルが生成される。(左から右へ色が変わっていく)

放出の形、方向、回転や向き、角度、動きを変えたいとき

・パーティクル(絵)の角度を変えたい(斜めにしたいなど)
 Particle SystemのStart Rotationをの値を変える。

・下に落ちるように、または上に上がるような動きにしたい
 Particle SystemのGravity Modifierの値を変える。上にふわふわ上がるようにしたいなら値を-にする。

・パーティクルの飛ぶ方向、飛び方、放出の仕方を変えたい
 ShapeのShapeの値を変える。基本はConeやSphereで設定になると思う。

・パーティクルを回転させたい
 Rotation over Lifetimeにチェックを入れ、値を変える。値が大きいほど速く回転する。
 ▼からRandom Between Two Constantsを選べば回転する速度もランダムで設定できる。

・パーティクルの動きを不規則にしたい。ふわふわ、びょんびょんした動きにしたい
 Noiseの値を変える。全体的に値が大きければ大きいほど細かく荒ぶるような動きになる。

・パーティクルを一か所から出したい(その場でとどまるように、飛ばないようにしたい)
Shapeのチェックを外す。飛んでいかないようにするにはStartSpeedを0にする。

その他、自分用メモ

・外枠、オレンジの枠、パーティクルのアウトラインを消したい
Sceneの右上にある「Gizmos」から「Selection Outline」にチェックを外すとオレンジの枠が消える。

・パーティクルの柄、図形、絵を変更したい
右クリック⇒Create⇒Materialで新規でマテリアルを作成。
shaderをMobile⇒Particles⇒AdditiveとかAlpha Blendedなど自分の用意したテクスチャに合わせてシェーダーを選ぶ。
用意したテクスチャ(絵)をこの四角の部分へドラッグアンドドロップ。


そしたらRendererのMaterialに今作ったマテリアルをドラッグアンドドロップする。
 

・シェーダーについて
 ShaderはVRChatならVRChat⇒Mobile⇒Particles⇒Additiveなども使える。
 あとはParticles/Standard Unlitも使える。
 Rendering ModeやColor Modeはその時のテクスチャの見た目で綺麗に見えるものを選んでます。
 正直何がどう違うのが説明ができないので一つ一つ見ていってやるしかないね!

・動いた時だけパーティクルを発生させたい
 EmissionのRate over Timeを0にし、Rate over Distanceの値を調節する。
 動いた時にパーティクルを少し残したい場合は、Particle SystemのSimulation Spaceをworldにする。

・パーティクルの消え方を変えたい(ふわっと消したい、フェードアウトのようにしたい)
 color over Lifetimeの上の最初(左)と最後(右)の色を透明に設定する。
 するとフェードインのようにパーティクルが生成され、フェードアウトのようにふわっとパーティクルが消える。


・壁や衝突判定のあるものに当たった時の設定を変えたい。壁や床に当たった時に消えるようにしたい。
 Collisionの項目にチェックを入れ、TypeをWorldに、Lifetime Lossの値を1にする。
 詳細はCollisionの項目を見ればOK。

・パラパラ漫画のような、セルアニメのような動きのパーティクルを作りたい
 たとえばこちらのサイトにある魔法や斬撃などのエフェクト。
 魔法は192×192で横5コマ、縦3コマのアニメーションです。
 https://pipoya.net/blog/healing-effect001/

 私の場合は新しくパーティクルを作成し、マテリアルの設定を[Particle → Standard Unlit」にして
 RenderingをFadeに。ColorをMultiplyにしました。
 画像の変え方は「パーティクルの柄、図形、絵を変更したい」を参照してください。

・Texture Sheet Animationのチェックをいれる。
・今回はTilesをXが5、Yが3とする。
・EmissionからRate over Timeを1にする。
・Start Speedを0にする。
・Max Particlesを1にする。
・Shapeのチェックを外す

パラパラ漫画のスピードは、ループするならTexture Sheet AnimationのCyclesの値を大きくすれば速くなる。
もし1回だけにしたいならCyclesは1にしておいて
・Loopingのチェックを外す
・Simulation Speedの値を大きくする。(今回は10にした)
・Durationの値を調整する(今回は2にした)

・複数ある画像をそれぞれ1つにしてランダムに表示したい

 たとえばこの星の画像。1マスが512×512で星が2種類あります。
 
 これをそれぞれ一つずつランダムに表示したいときは
・Texture Sheet Animationにチェックを入れる
・Xを1、Yを2にする(これは画像の縦と横の数によって変わる)
・AnimationをSingle Rowにして、Row Mode を Random にする


・攻撃判定のあるパーティクルについて

例えばVRCのゲームワールドで銃とか魔法とかで敵を倒す系のギミックがある場合
Collisionにチェックを入れ、TypeをWorldに、Send Collision Messagesにチェックを入れると
衝突をスクリプト(OnParticleCollision)で受け取れるようになる。
攻撃に判定があるかどうかはそのワールドの設定次第なので、試すならこの辺のワールドで試してみてね。




↓この記事が役に立ったと思ったら高評価ボタンをよろしくお願いします!

この記事を共有(シェア)したい場合はこちらのボタンからどうぞ!

コメント

Ads Blocker Image Powered by Code Help Pro

広告ブロッカー解除のお願い

本サイトでは広告を掲載しています。
お手数ですが、広告ブロッカーを無効にしてから再読み込みをお願いいたします。

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock