忍者ブログ

チラシとペン

Particle System メモ

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Particle System メモ

書いて覚えるParticle Systemのメモ。
と、いうことで、人に伝える体裁ではないです。
モジュール一覧の下の方にあるSub Emittersでそのエミッタから別のエミッタを生み出せるわけですが、
Birth:パーティクル生成時一緒にエミッタも生成
Death:生成したパーティクルが寿命(Start Lifetime)を迎え消滅する際にエミッタを生成
この2つに注目します。


red,greenの2つのEmitterを用意してそれぞれBirthとDeathに登録しています。それぞれ名前通りの色のパーティクルを吐きます。

Birthではパーティクル生成位置から枝分かれするように別のパーティクルを出す動きが作れます。1つの座標から1種類しかパーティクルを飛ばせないことに不満がある際便利です。下図は根元で白のパーティクルと一緒にBirthで生まれたredエミッタが同じ速度で追従しながら小さな赤いパーティクルを吐いている様子です。

一見すると白パーティクルを親としてredエミッタが移動しているように見えますが、出た座標と速度が同じであるだけです。白がVelocity over Lifetime等で変速する場合、redエミッタを白パーティクルに追従させるためには同じように変速するようvelocity各値を設定する必要があります。めんどくせぇ……。

Deathでは親パーティクルが消滅した後、代わりに新しいパーティクルが登場するような動きが作れます。パーティクルの動きを途中で大きく変えたい場合などに便利です。

Deathに登録したエミッタはEmittionのRateをどうしていようが、Timeが0のBursts以外でParticleが出ません。ところで緑のパーティクル付近でチラチラと青色のParticleを吐いているblueエミッタはgreenエミッタのSub Emitter、Birthに登録されているもので、生成時のgreenのパーティクルと同じ速度で移動しています。この仕組みは先程の白のパーティクルとredエミッタの関係と同じです。

Simulation SpaceがLocalのエミッタは移動の原点を大元のオブジェクトの座標に完全に合わせます。ではWorldなら完全に切り離されるのか。
Inherit Velocityを設定することで影響を受けるようにすることができます。

まずCurrent。redエミッタのSimulation SpaceをWorldに、Inherit VelocityをCurrentにしています。

赤パーティクルのStart Speedは0です。本来Simulation SpaceがWorldなら生成された後その場から動きません。
赤パーティクルが、カーソルによって移動する大元のオブジェクトの座標の左右移動に追従しています。白パーティクルの動きからは影響を受けていません。これはSimulation SpaceがLocalである場合と同じです。

Currentのまま、値を2にしました。この状態では、赤はカーソルの座標の移動の2倍動きます。

次にInitial。redエミッタのInherit VelocityをInitialに変えました。

赤は白の速度を生成時に取得、自分の速度にも適用します。そのため赤も上に立ち上るというわけです。しかし個々の赤パーティクルは左右に移動していません。Simulation SpaceがWorldである場合の標準の動きとして、赤はカーソルで移動させている大元のオブジェクトの移動を無視しています。

PR

リンク

P R