defaultのparticleSystemについてだけです。
書いたけど、わからんこと多い。※Unityわからん
一応基本的な解説
Basis
Duration:稼働時間
Looping:ループ、入れるとDurationは意味はない
Prewarm:ループが入ってるとしばらく起動した状態でSystemが起動してる
Start Delay:起動までの待機時間、Loopが入ってると最初だけでLoop毎にDelayはしない。
Start Lifetime:particleの生存時間、Durationの時間以上でもLifetimeの時間はparticleは消えない。
└Constant:一定
└Curve:グラフで決められる、横軸は
Durationになります。
右のようなカーブをつけることでLoop
状態でも一定時間ごとにparticleの生成を
止めることが出来ます。
└Randam Between Two Constant:2つの値
の間からRandomで決まる。
└Randam Between Two Curve:2つのCurve
の間からRandomで決まる。
Start Speed:速さ、設定項目は上と同じ。
Start size:大きさ(3Dの方はx,y,z毎に大きさを指定できる)、設定項目は(以下同文。
Srart Rotation:傾き(3Dの方はx,y,z毎に指定できる - defaultはz軸の回転になります)、同上。
Randomize Rotation:0~1の指定で指定した割合で回転が負の回転になる
Start Color:色、下にある設定項目のColor over Lifetimeで設定することが多いかも?
└Color:単色
└Gradient:発生するparticleの色が変わる、横軸はDuration。
└Randam Bitween Two Color:2つの色からRandomに決まる。
└Randam Bitween Two Gradient:指定した2つのGradientの間で色がRandomに決まる。
わかりにくいが、赤→白と赤→青のGradientを作ったならば、
Timeが0の時は赤しか出てこない、Timeの終わりでは白と青の間のからRandomに決まる。
└Randam Color:設定したGradientからRandomに決まる、横軸のマークは増やせるので、
虹色からRandomに決まるという設定も可能。
Gravity Modifier:重力、正の値で下・負の値で上へ。設定は上に。
Simulation Space:発生座標がlocalかworldか(customはわからん)。
particleSystem自体動かさないならどちらでもいいと思います(多分)。
Simulation Speed:再生速度。1より小さいなら遅く、大きいなら早くなります。
Scaling Mode:わからん。
Play On Awake:入ってないと動きません。
Max Particle:存在できるparticleの最大数。
Auto Random Seed:自動でseed値を設定します。
Emission
Rate over Time:時間でparticleが発生。1で1秒に1個、0.1などの設定もできる。
Rate over Distance:移動距離に応じてparticleが発生。割合はいまいちわからん。
Bursts:指定の時間で1度に大量のparticleを発生させることが出来る。
└Time:何秒にburstが発生するか、繰り返したい場合は後のcycleを設定するといい。
└Min/Max:発生時のparticleの最小と最大数、この間からRandomに決まる。
└Cycles:設定したBustsを何回繰り返すか、durationは影響するがtimeは影響しない。
└Interval:cyclesを繰り返す間隔、1で1秒間隔になる。
Shape
Shape:particleを発生させる形状、今回は一部だけ解説します。
Sphere/Himesphere:球状または半球状にparticleを発生させる
└Radius:大きさ。Emit from Shell:球の表面に沿うようにparticleが発生する。
└Align To Direction:particleが球の表面に沿うような形に変形する。
└Randomize Direction:発生方向にRandom性を持たせる。 Sphere Direction:わからん。
Emit from ShellにStartSpeedをマイナスで入れることで球面に発生したparticleが
中心に向かって移動する感じになる。
Cone:基底部からangleの値によって放射状に広がるparticleを発生させる。
└Angle:放射角度、90°より小さいのが望ましい Radius:基底部の大きさ
└Arc:中心角度。360なら円、180なら半円になります
└Mode:particleの発生タイプを設定
└RandamはRandomに、Loopはグルグルと回る感じに。
ping-pongは1周すると反転して1周、BurstSpreadは等間隔に、多分Burstと一緒に使う。
└Spread:発生時のparticle間の間隔
└Speed:Loopなどの設定のときの回る速さ
└Length:Emit from Volume系を選択した場合のみ設定が出来る、曲面の長さ
└Emit from:Baseは基底部から。Base Shellは基底部の円周から。
VolumeはCone内から、Volume Shellは曲面から。
Circle:設定された円状にparticleが発生する。
基本的な設定はConeと一緒だが、発生方向は平面的である。
Box:設定したCubeからparticleが発生する
└Box X,Y,Z:Cubeの形
└Emit from:VolumeはCube内、Shellが面から、Edgeが辺から発生する。
Align To DirectionはSphereなどに同じ。
Velocity over Lifetime
particleの速度を変更させることが出来る。
x,y,zで速度指定。Spaceはx,y,z軸がLocal基準かWorld基準か。
particleの速度を途中で0にするなら、StartSpeedは0にしてこっちで制御するといい?
設定項目はStart Lifetimeの項を参照、横軸はLifetimeになってます。
Limit Velocity over Lifetime
particleの速度を制限できる
Separate Axesにチェックを入れるとx,y,z軸それぞれに設定できる。
Speedは制限速度。Dampenは減衰率? 1なら完全に制限速度になる?
設定項目は上に同じ。
Inherit Velocity
particleSystemの移動でparticleに速度を与えることができる
Initialが発生するparticleに対して、Currentが発生しているparticleに対して。
Multiplierは付加速度、Initial+負の値にすると移動方向と逆にparticleが飛び出すようになる。
設定項目は同じハズだけど、よくわからん。
Force over Lifetime
particleに重力と同じような力を与える
x,y,zそれぞれに設定できてLocalの指定もできる。
横や斜めに重力の落下のような力を与えることができる。
設定項目は以下略。
Color over Lifetime
生成されたparticleを時間経過で色を変えることが出来る
横軸がLifetimeとなる、上側はアルファ値を指定でき下側は色を指定できる。
最初と最後の方のアルファ値を0にして徐々に消えるように設定するといいと思います。
設定はStart Colorと同じ、横軸がLifetimeに。
Color by speed
particleのSpeedでparticleの色を変える。
設定はStart Colorの項を、こちらは下のrangeが横軸となる。
rangeの範囲で色を設定、範囲以下も範囲以上も反映される。(いまいちわからない。
Size over Lifetime
生成されたparticleを時間経過で大きさを変えることが出来る
こちらもparticleが消えたりする時に0になるように調整して使ったりする。
Curves:一定の割合で大きくしたいなら、直線にすれば反映される。
Randam Between Two Constant:Start sizeの設定と変わらない? 時間経過では変化しない?
Randam Between Two Curves:2つのCurveの間からRandomに決まる
Size by Speed
particleのSpeedでparticleの大きさが変わります。
設定はrangeの設定以外はSize over Lifetimeとだいたい同じ、時間から速さになっただけ。
Rotation over Lifetime
生成されたparticleを時間経過で回転されることが出来る
設定はStartRotationを、Angular Velocityは回転速度なので縦軸はこれになる。
Rotation by speed
particleのSpeedでparticleの回転を制御
設定などはSize by系とだいたい同じ。
External Force
Wind Zoneを使う場合に設定、割愛。
Noise
particleにRandomな動きを加えることが出来る
Separate Axes:Noizeの大きさをx,y,z毎に指定できるようにする
Strength:Noiseの大きさ、大きいほど動きが大きくなる
Frequency:Noiseの動き、大きいほど動きが細かくなる
Scroll Speed:上の2つで生成されたマップを動かして、不規則性を加える
Damping:よくわからん
Octaves:よくわからん、わからん……
Quality:Noiseの質、簡単に揺らすならLowとかでもいいと思います。
Remap:よくわからん
Collision
particleに衝突判定をつけることが出来る
Planes/World:衝突判定を設定したPlaneかWorld全体にするかを決める。
Planesで設定する場合、Meshを設定することが出来るがObjectの方向のPlaneでの判定に。
Dampen:衝突時の速度の減速率、1なら速度が0に。
Bounce:衝突の反発係数、0なら反発しないが速度は維持される。
Lifetime Loss:Lifetimeに対する減衰率、1にすると衝突時にparticleが消滅する。
Min/Max Kill Speed:衝突時に速度以下または速度以上のparticleを消滅させる。
Radius Scale:Colliderの大きさ、Worldでも全体のColliderが大きなって働く。
Collides With:わからん。
Interior Collisions:わからん。
Max Collision Shapes:衝突判定のObjectの最大数?
Collision Quality:物理演算の品質?
Enable Dynamic Colliders:動的Objectにも判定を持たせることが出来る。(らしい
Send Collision Messages:よくわからん。
Triggers
わからん。
Sub Emitter
particleに追従するparticleを作れたり、particle消滅時にparticleを発生されるなどが出来る。
Birthは発生時、Collisionは衝突時(Collisionが設定されてる場合のみ)、Deathは消滅時。
Inheritは親のparticleの設定を引き継ぐ場合などに、色などを揃えたい場合に。
花火などはこれを使うといい、Deathでparticleが消滅した時に
Sub Emitterで設定したparticleを発生させる。
Texture Sheet Animation
右は参考図
時間経過でparticleを別の画像にしたり、
発生時に複数の画像からRandomで
particleを発生させたり出来る。
Tiles:X,Yに分割する。右なら2,1で。
Animation:Whole Sheetは分割した全てのtileを遷移します。
Single RowはRandomもしくは指定した列をtileを遷移します。
Frame over Time:Animationの遷移グラフ、
Curvesなら横軸がLifetime、縦軸がtileのframeになります。右なら0~1が♡、1~2が☆
Constantは指定のframeのみ。
これをBetween Two Constasntで0/2にすることでparticleが発生する時に、
Randomで♡か☆が出るようになります。
Start Frame:どのframeから始まるか。例なら1にすると、遷移が♡→☆から☆→♡になる。
Cycles:Lifetime中に何回animationを繰り返すか。Curvesが設定されてる場合のみ。
Flip U/V:particleの画像が反転するようになる、1なら全て反転。Uが水平、Vが垂直。
Enable UV Channels:わからん。
Light
particleにlightを設定できる、よほどのことがない限り使わない方がいいと思います。
Trails
particleに軌跡をつけることが出来る。TrailのMaterialもRendererで設定。
Ratio:particleにTrailがつく割合。
Lifetime:出現したTrailの生存時間。0に近いほどTrailが短くなる。
Minimum Vertex Distance:軌跡の滑らか、0に近いほど滑らかになる。逆に数値を
上げることで、カクカクになるのでNoiseと合わせて雷などの表現に使えなくもない。
Texture Mode:Trailの描画方法
└Stretched:設定したMaterialを引き伸ばして軌跡として使用する。
└Tile:設定したMaterialを等間隔に繰り返して軌跡として使用する。
└DistributePerSegment/RepeatPerSegment:よくわからん。
World Space:よくわからん。
Die with Particle:particleが消滅する時、Trailも同時に消滅するようにする。
Size affects Width:SizeによってTrailの太さも影響を受けるようになる。
Size affects Lifetime:上のLifetime版、Die with Particleが設定されてると特に意味はない。
Inherit Particle Color:particle本体の色を継承する。
Color over Lifetime:LifetimeによるTrail全体の色の設定、設定は同項目の設定と同じ。
Width over Trail:Trailの太さ
Color over Trail:Trail全体の色を設定、こっちの横軸は先端と終端になる。
Custum Data
わからん。
Renderer
※ほとんどわからん
Render Mode
└Billboard:いつもの、常にCameraの方を向き続ける。
Billboard Alignmentで発生したparticleの向きを固定できる、遠景のものなどの時に。
└Stretched Billboard: Length Scaleで速度方向にparticleを引き伸ばせる。
particleのsizeの調整と違った風に見えます。
※ほとんどわからん
なんとなく作った例
火
左はScale1、右はTransformで縦のScaleだけ2に。ろうそくとかはこっちっぽい。
下のCurvesはsize over speed
雨
色は限りなく黒に近いグレーで、雨は曇り空で使うと思うのでこのくらいで。
Rendererのstretched billboardを使ってます、Sizeで縦を伸ばすととても変に見えるので。
sizeと高さとLifetimeを適当に調整して地面の辺りでは粒くらいの大きさになるように。
雪
ふわふわと少し揺れる感じになってます(SSだとわからない
Startは透明でふわっと現れる感じで、最後は溶けて消えるイメージで。
Noiseを少しだけ加えてます、入れなければ直線的に落ちてくる感じになります。
日差し?
差し込む光のようななにかです。これもstretchで伸ばしてます。
TransformのRotationで傾きをつけてます、色は浅く黄色を設定。
color over timeの設定は全体的に透明になるように設定しています。
落ち葉
流石にdefaultparticleでは難しいので、自作のそれっぽい画像を用意。
使い方については一番下の方を参照。
3D Start RotationをRandom化、Randomizeも設定する。
3Dの回転を加えることでひらっと舞う感じが多少出ると思います。
何か・その1
Lifetimeを使わずに。
使ってるのはStart colorとshapeのCircleのLoop&Emit from Edge。
何か・その2
左右対称にparticleを展開するObject
Creat Emptyで作った空のObjectにparticleSystemをつけます。
Simulation SpaceはWorld、Rate over Distanceを適当に設定。
空のGameObjectにanimationで適当に座標を移動するanimationを作ります。※idouの方
作ったら、GameObjectの方にはAnimatorができてると思います。
Animationの方はGenerate Root Motion Curvesをクリック、
Animetorの方はApply Root Motionにチェックを。こうすることでanimationが相対的に。
GameObjectをコピー&ペーストして、Transformで180°ひっくり返せば完成です。
自前の画像をparticleに使う方法
Importする画像を用意します。
例
用意したらUnityのAsset内にドラッグ&ドロップします。
Importした画像を選択して、inspectorからTexture TypeをSpriteに変更します。
右クリックからCreate>Materialを選択。
新しく作成したMaterialのShaderをParticle>Alpha Blendedに。
そして、先程Importした画像を設定すれば完成です。
参考になりそうなサイト
https://gametukurikata.com/effect/particlesystem
http://marupeke296.com/UNI_PT_No1_Shuriken.html
Comments