Particles I&II&III

https://vimeo.com/8447016
https://vimeo.com/8447185
https://vimeo.com/8447373

Partコンテキスト

パーティクル操作のためのコンテキスト。
これを使わなくてもobjコンテキスト内ではパーティクルが作れた。

Partコンテキストを使うことでどんな利点があるのか気になる。

Location (POP)ノード

ポイントエミッタ

基本的なパラメータはpopnet-oldなどと同じ。

・Birth Groupパラメータ

生成されるパーティクルが格納されるグループ名

・Preserve Groupパラメータ

上流で作られたグループを保持し、このノードで作られるグループをフローに追加する。

・Velocityパラメータ(Attributes)

初速方向の決定

・Varianceパラメータ(Attributes)

初速のランダムベクトル。
±入力されたベクトルの範囲でランダム化される。

Position(POP)ノード

Velocity (POP)ノード

パーティクルの速度を変更するオペレータ
Velocity TypeをVectorにし、パラメータを

vector3($VX, $VY, $VZ) * 0.9

などとすると毎評価ごとに速度が0.9倍され減速するパーティクルが作れる

Acceleration (POP)ノード

Split (POP)ノード

パーティクルからパーティクルを発生させる。
これを使用して、任意のパーティクルから速度を持たないパーティクルを発生させれば、パーティクルの軌跡が作成できる。

Follow (POP)ノード

パーティクルをパーティクルに追従させる。

Source Groupで引き付けられる側のパーティクルグループを指定
Leaderタブ、Leader Groupで引きつける側のパーティクルグループを指定

引きつけの速度などはFollowタブで設定。
Stop At Leaderをオンにしておくと、追従後にパーティクルはストップする

Collision (POP)ノード

任意ノードとパーティクルのCollisionを検知できる。

Collosion Eventパラメータには、このCollisionが有効になった際に発生するCollisionイベントの名前を記入する。

このイベント名は、後で以下の関数などで使う。

popevent( “EVENT_NAME” )

この関数に与えられた名前を持つEventが発生した時、関数はTrueを返す。なので、別のSourceノードのImpulse Activationなどに仕込めば、Collisionイベント発生時にのみパーティクルを発生させるような事が可能。

Collect (POP)ノード

パーティクル版のmergeノード

Curl-Noise(POP)ノード

パーティクルにNoiseを与える。
Noiseの影響はUpdateタブでAdvection Typeから指定。
ポジションや速度、外力として与えるなど、様々な選択ができる。

popnet-oldオペレータ

Over Samplingを上げると、Constタイプで時間に対しスムースに作成されるパーティクルの間隔がスムースになる。

パーティクルの外観

20140503_01_0

・Sprite(POP)ノード

スプライトを設定
同じように操作しているつもりだけど、何故かうまくスプライトの割り当てができない。

20140503_01_1

 

バージョン違いによる差異だろうか。

チュートリアルでは、一度popnetに対してスプライトを当ててから、別のパーティクルに当て直しているように見えるこの手順は一旦スキップする。

・Instance(POP)オペレータ

オブジェクトインスタンス

・Render(POP)オペレータ

パーティクルをそのままレンダリングする際の見た目を決定する

Color(POP)オペレータ

パーティクルのカラーや透明度を指定する

Property(POP)オペレータ

任意のタイミングで、任意のアトリビュートを操作できる。