top of page

kisara_gi's blog

検索

3.particleについて

更新日:2018年10月11日

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


bottom of page