3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Unity Particle SystemAdvent Calendar 2021

Day 8

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

Last updated at Posted at 2021-12-23

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

External Forces, Noise Module編 << ここ >> Triggers, Sub Emitters Module編

はじめに

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

**パーティクル?シェーダー?憧れるけどよくわかんない…**という人は最近は[VRCUnity勉強会][link-1]などで初歩の初歩から解説してくれる講座などが解説されているのでそこに参加してみたりするといいでしょう。
[link-1]:https://discord.gg/mtvTTyM
その他にこの記事はアドベントカレンダーにしてParticle Systemの記事を増やしてパーティクルへの抵抗感を減らしてやろうという企みもあります。

##Collision Moduleってどこ?
image.png

##Collision
パーティクルがコライダーに衝突した時にどういう反応をするか決めるパラメーター
###Type
デフォルト Planes
パーティクルがどこのコライダーにぶつかるか設定するパラメーター
ワールドのコライダーに反応させたいことが殆どだと思うのでその場合はWorldにする


####Visualization
デフォルト Solid
TypeがPlaneの時のみ弄れる
コライダーがどういう見え方をするか決めるパラメーター
####Scale Plane
デフォルト 1 (0~3.402823e+38)
コライダーの見え方の大きさを決めるパラメーター
あくまでどういう見え方になるかと言うだけなので実際の判定は無限にある


以下はWorld前提で解説
###Mode
デフォルト 3D
2Dに切り替えれば2Dコライダーで扱えるようになるけど…そもそも3D前提の話なのでスルー
###Dampen
デフォルト 0 (0~1)
単位 割合
パーティクルが衝突した際にどれくらいパーティクルのスピードが減るか決めるパラメーター
1にすると衝突したとこに留まる
###Bounce
デフォルト 1 (0~2)
パーティクルがどれくらいの強さで跳ね返るか決めるパラメーター
0にすると衝突した表面を滑っていく
###Lifetime Loss
デフォルト 0 (0~1)
単位 割合
パーティクルが衝突した際にどれだけ寿命が減るか決めるパラメーター
1にすると衝突した瞬間に消えるしLifetimeを長くしたパーティクルに0.2とか設定すれば4~5回跳ねて消えるパーティクルが作れる
###Min/Max Kill Speed
デフォルト 0/10000
単位 m/s
パーティクルが衝突した際にこの数値より遅い/速いパーティクルは消される
Maxを0にしとけば衝突した瞬間に消えるしMinを設定すれば遅いパーティクルだけ消したりできる
###Radius Scale
デフォルト 1 (0.0001~3.402823e+38)
単位 倍
パーティクル1つ1つの衝突判定の大きさ
下の方にあるVisualize Boundsで判定を見えるようにしながら調整するといい
###Collision Quality
デフォルト High
パーティクルが動的なコライダーに衝突するかどうか決める設定
アバターにパーティクルを入れるならHighじゃないと何にも衝突しない
ワールドに入れてアバターに衝突させたいってのもHigh
ここではHighの場合のみ解説する
####Collide With
デフォルト Everything
パーティクルがどのレイヤーに衝突するか指定するパラメーター
基本デフォルトでいいが19番目のレイヤーがメニューのレイヤーなのでそこを外すとメニューに当たらなくなる
####Max Collision Shapes
デフォルト 256 (0~2,147,483,647)
同時に認識できる最大のコライダー数
まあデフォルトでいいけど増やすと負荷の原因になる
####Enable Dynamic Colliders
デフォルト ON
動的なコライダーにパーティクルが衝突するか決めるパラメーター
Dynamic Boneは関係ない、デフォルトでいい
###Collider Force
デフォルト 0 (0~3.402823e+38)
パーティクルがどれくらいの力でオブジェクトを押しのけるか決めるパラメーター
Rigidbodyが適用されてるオブジェクト(転がったりするやつ)を動かせる
####Multiply by Collision Angle/Particle Speed/Particle Size
デフォルト ON/OFF/OFF
オブジェクトを押しのける力を衝突した角度/速度/サイズに比例させるパラメーター
速度はONのほうがよさげ
###Send Collision Message
デフォルト OFF
パーティクルが衝突したことで何か起こるオブジェクトに対して衝突したサインを送るかどうか決めるパラメーター
これ入れてると対策してないギミック勝手に起動したりできちゃう
###Visualize Bounds
デフォルト ON
パーティクルの衝突判定を可視化するかどうか決めるパラメーター
ONにしててもUnity上でしか見えないから困らない
##おわり
ということでCollision Moduleでした
レイヤー周りの仕様は最近変わったのであんま詳しくないです:no_good:
次はTriggers, Sub Emitters Moduleです


External Forces, Noise Module編 << ここ >> Triggers, Sub Emitters Module編

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?