2
2

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 3

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

Last updated at Posted at 2021-12-16

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

Emission Module編 << ここ >> Velocity over Lifetime編

はじめに

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

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

##Shape Moduleってどこ?
image.png
ここのShapeって書いてあるやつ

##本題
###Shape
デフォルト Cone
パーティクルの発生源の形状を決めるパラメーター
ここを何にするかによって設定できるパラメーターが変わる
どういうパーティクルを作りたいかで何を選択するか大きく変わる
以下の解説では同じ項目は省略して説明する


####Sphere,Hemisphere
放出方向 球の中心から外に向かう方向
球、半球状
半球は底面にはパーティクルが発生しない
#####Radius
デフォルト 1 (0.0001~3.402823e+38)
単位 m
球の半径
#####Radius Thickness
デフォルト 1 (0~1)
パーティクルの発生する領域の厚み
image.png
赤と黒の領域がパーティクルの発生する領域で0にすると表面のみから発生するようになる
他の項目でもこの概念を使うのでこの概念を覚えていたほうが良い
#####Arc
デフォルト 360 (0~360)
パーティクルの発生する領域の角度
実際にパラメーターを操作してみるとわかりやすい
######Mode
デフォルト Random
領域からどういった順序でパーティクルが発生するか定めるパラメーター
Loopにすると時計のようにぐるぐる発生点が回る、Ping-Pongにすると半周はLoopのように動きもう半周は反転して動く…を繰り返す
Bursts SpreadにするとEmissionのBurstを使用した際に均等にまばらに散らばるように発生点が散らされる
######Spread
デフォルト 0 (0~1)
単位 割合
0.5にすれば2方向に、0.33にすれば3方向に、0にすれば全方向に放出方向を分けるパラメーター


####Cone
放出方向 発生面の表面方向、パラメーターによって変更できる
シャワーのような円柱~円錐形
#####Angle
デフォルト 25 (0~90)
単位 度
image.png
図のように広がる角度を指定するパラメーター
#####Emit from:
デフォルト Base
パーティクルの発生する領域を面からにするか上で指定した領域内からにするか指定するパラメーター


####Donut
放出方向 ドーナツ面に対して外側方向
ドーナツ状
所謂トーラス
#####Radius
デフォルト 1 (0~3.402823e+38)
単位 m
ドーナツの大半径
#####Donut Radius
デフォルト 0.2 (0.0001~3.402823e+38)
単位 m
ドーナツの小半径


####Box
放出方向 正面のみ
立方体
#####Emit from:
デフォルト Volume
立方体のどこからパーティクルが発生するか決めるパラメーター
Volumeが全体、Shellが面、Edgeが辺から発生する
ShellとEdgeのみ選択するとBox Thicknessという項目が出てくる
#####Box Thickness
デフォルト (0,0,0)
パーティクルの発生点の偏りを決めるパラメーター
0~1の間で設定でき、X軸の値が大きくなればX方向に、Y軸が大きくなればY方向にと発生点をずらす


####Mesh
放出方向 指定したメッシュの法線1方向
自分で好きなメッシュを指定できる
#####Type
デフォルト Vertex
指定したメッシュのどこからパーティクルが発生するか決めるパラメーター
Vertex(頂点)、Edge(辺)、Triangle(三角面)の3つから選択する
Vertex、Edgeを選択した時にModeが、Edgeを選択した時にSpreadとSpeedが設定できる
######Mode
デフォルト Random
どういった順番で指定した場所からパーティクルが発生するか決めるパラメーター
Loop、Ping-Pongの動作は前述だが基準となる順番は頂点インデックス2の順番になる
######Spread
デフォルト 0 (0~1)
パーティクルの発生点がどれだけ散らばってるか決めるパラメーター
数字を0.03とかにすると一部の箇所からのみ出るようになって1にすると1箇所からしか出ない、もちろん0だと全部から満遍なく出る
######Speed
デフォルト 1 (-3.402823e+38~3.402823e+38)
LoopやPing-Pongにするとわかりやすいが上のパーティクルの発生順のサイクルの速度にかかる倍率
数値を大きくすると高速で発生点が変わる
#####Mesh
メッシュを指定するとこ
#####Single Material
デフォルト 無効(0)
マテリアルスロットが複数あるマテリアルの内特定のマテリアルが割り当てられてる所をパーティクルの発生点にするパラメーター
0から始まっているが一番目のマテリアルスロットは03
#####Use Mesh Colors
デフォルト ON
メッシュの頂点カラーをパーティクルに適用するかどうか決めるパラメーター
#####Normal Offset
デフォルト 0 (-3.402823e+38~3.402823e+38)
単位 m
発生点を法線方向にどれだけずらすか決めるパラメーター


####Mesh Renderer
放出方向 指定したメッシュの法線方向
別オブジェクトのMesh Rendererを指定できる
上のMeshと違う点はそれぞれが独立してるためアニメーションとかで動かしたりの自由が効くこと


####Skinned Mesh Renderer
放出方向 指定したメッシュの法線方向
別オブジェクトのSkinned Mesh Rendererを指定できる
Skinned Mesh Rendererはボーンが通ってたりシェイプキーが使えるメッシュ、アバター本体とかがそう


####Sprite
放出方向 正面のみ
Spriteに自動で設定された三角面
#####Sprite
任意のSpriteを指定するとこ


####Sprite Renderer
放出方向 正面のみ
別オブジェクトのSprite Rendererを指定できる


####Circle
放出方向 円の中心から外に向かう方向(ガイドの平面に沿って)
円状


####Edge
放出方向 真上
辺1本


####Rectangle
放出方向 正面のみ
四角
Rectangle(長方形)と書いてあるが正方形


###Texture
デフォルト なし
平面、立体のShapeを指定した時にパーティクルの色に特定のテクスチャを指定できる
テクスチャを指定するとClip Channel, Clip Threshold, Color affects Particles, Alpha affects Particles, Bilinear Filteringが設定できる
####Clip Channel
デフォルト Alpha
特定のチャンネルの色をカットするための設定
カットするチャンネル(RGBA)を指定する
####Clip Threshold
デフォルト 0 (0~1)
カットする閾値を設定する
####Color affects Particles
デフォルト ON
テクスチャの色がパーティクルに影響するか
####Alpha affects Particles
デフォルト ON
テクスチャの透明度がパーティクルに影響するか
####Bilinear Filtering
パーティクルにテクスチャで色を付けるときの補完をどうするかどうか
###Position, Rotation, Scale
Shape全体の形にかかるTransform
下のこれを押すと簡単に設定できる
image.png
###Align To Direction
デフォルト OFF
パーティクルの向きを強制的にパーティクルの放出方向に向けるパラメーター
###Randomize Direction
デフォルト 0 (0~1)
パーティクルの発生した瞬間の向きをどれくらいランダムにするか決めるパラメーター
###Spherize Direction
デフォルト 0(0~1)
パーティクルの放出方向をどれくらいランダムにするか決めるパラメーター
###Randomize Position
デフォルト 0 (0~3.402823e+38)
単位 m
パーティクルの発生点をどれくらいランダムにするか決めるパラメーター
#おわり
というわけでShape Moduleの解説でした
長かった
次はVelocity over Lifetime Moduleの解説です


Emission Module編 << ここ >> Velocity over Lifetime編

  1. よくわかんなかったらいいです

  2. 全ての頂点にはそれぞれを区別する頂点インデックスという値が設定されてるらしい、正直難しくてそれ以上はよくわからない

  3. 0番目から数えることはUnityに限らずよくある

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?