top of page

kisara_gi's blog

3.particleについて

2009年10月1日
読了時間: 8分

更新日: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



 
 
 

コメント


bottom of page