パーティクルシステムは、何よりもまずアトリビュートから駆動されます。ここでは、ソルバで理解されるアトリビュートの一部をご紹介します。
アトリビュートの名前の@
の頭にある文字は、そのアトリビュートのタイプを意味し、それがないものは、floatを意味します。
アトリビュートの作成で推奨する方法は、POP VOPとPOP Wrangleの2つです。
POP VOPでは、Bind Export VOPによって必要なアトリビュートを書き出します。
POP Wrangleでは、プロトタイプを使ってアトリビュートとデフォルトを指定します。
int @id = -1; point @orient = {0, 0, 0, 1};
Note
イコール(=
)の後のエクスプレッションは、単純な定数のエクスプレッションでなければなりません。
アトリビュート ¶
Houdiniは、Cd
(diffuse color)Pointアトリビュートを使用して、パーティクルにカラーを付けます。
状態 ¶
|
float |
パーティクルが発生してから今までの秒数。相対時間を取得して、衰退効果に役立てたいのであれば、 |
|
float |
|
|
float |
パーティクルが生存できる秒数。 |
|
int |
単一シミュレーションにおいて同じままのパーティクルの固有ID。パーティクルが削除されても状況が変わらないようにするためには、常に |
線形物理学 ¶
Particle Solverは、パーティクルの向きとして、通常のv
(Velocity)アトリビュートを使用します。
パーティクルの速度を取得するには、length(@v)
を使用します。
|
このフレームのパーティクルのフォース。 |
|
|
float |
パーティクルの慣性。 |
|
vec3 |
これは、 |
|
float |
これは、風のエフェクトでパーティクルが引き寄せられる力です。 |
|
float |
1から2の範囲の値です。1の値は、パーティクルが風のVelocityにスピードの差に比例した強さで引き寄せられることを意味します。 2の値は、スピードの2乗の強さで引き寄せられます。2の値の方は、パーティクルが速く移動するほど、もっと速く加速され、既に風の速度に近い状態のパーティクルほど影響が少ないです。 デフォルトは、ソルバのパラメータで設定します。 これは、角速度と線形速度のどちらのdragにも使われます。 |
|
vec3 |
パーティクルがそのローカル軸それぞれに引っ張られる力。 パーティクルが各軸を下って見えるように、パーティクルの横断面に比例するようにしてください。 |
|
vec3 |
指定すると、dragフォースがdragの中心と質量の中心の間の差に基づいてパーティクルに回転モーメントを生成します。 質量の中心は、常にパーティクルの位置になっています。これは、パーティクルのローカルオフセットを用意してます。 |
|
float |
|
|
float |
ローカルのドラッグ形状を自動的に計算する時に、 |
|
vec3 |
ローカルの風のVelocity。パーティクルのゴール、ターゲット、Velocityとみなされます。 |
|
float |
風の速度に対する抵抗度。これは、風のフォースの特性を測定するという点でdragとは異なります。パーティクルの特性はパーティクルが移動しても同じままになるのではなく、おそらく空間で変化します。 |
|
float |
パーティクルが移動可能な1秒あたりのユニットの速度制限。 パーティクルは、衝突エフェクトによって一時的にこの速度を越える場合があります。これはフォース計算の後のタイムステップ毎にハードクランプとして機能します。 |
角度物理学 ¶
|
vec4 |
パーティクルの向き。これは、パーティクルのスタンプ、“ローカル”のフォースの計算で使われます。
|
|
vec3 |
パーティクルの角速度。これは、スピンレートの強さを持つ回転軸のベクトルと考えることができます。スピンレートの単位は、1秒あたりのラジアンです。 |
|
vec3 |
スピンに対するフォースと同等です。 現在のところ、慣性テンソル(massと同等)がサポートされていません。 |
|
vec3 |
このパーティクルのゴールスピンの方向と速度。 |
|
float |
|
|
float |
パーティクルがスピン可能な1秒あたりのラジアンの速度を制限します。 |
状態 ¶
|
int |
パーティクルが生きている(0)または死んでいる(1)かどうか。
Reaping(刈り取り)ステージで死んだパーティクルが削除されます。
これは、ソルバの最終ステージとしてpost-solveノードの後に実行されるので、通常ではReapingをオフにしない限りは、死んだパーティクルが見えません。
|
|
int |
パーティクルが動いている(0)または停止している(1)かどうか。 停止したパーティクル。そのパーティクルのVelocityは保持されていますが、その位置、Velocity、向き、角速度を加算減算していきません。ただし、それらのアトリビュートを直接変更することができます。例えば、向きを変更するLook At POPを実行することができます。 |
|
int |
パーティクルが自由(0)または引っ付いている(1)かどうか。 引っ付いたパーティクルはフレーム毎にポジションパスに瞬間移動します。これは、引っ付いているサーフェスのVelocityを引き継ぎます。 |
|
int |
パーティクルが自由(0)またはサーフェスに沿って滑っている(1)かどうか。 滑っているパーティクルは、動くことができますが、そのポジションパスのオブジェクト上に乗ろうとします。オブジェクト間を移動することができませんが、この処理中にプリミティブ/UVの座標を変更することができます。 |
|
float |
滑るパーティクルは、内側方向(サーフェス法線に応じて)のフォースをそのパーティクルがくっついているオブジェクトに適用します。 これは、そのパーティクルを屈曲上に維持させたいときに役に立ちます。 |
|
string |
この文字列は、パーティクルが見るオブジェクトのパスを記録しています。ディクスのファイルのパスまたは絶対 |
|
int |
参照したい位置のパスジオメトリのプリミティブ。 |
|
vec3 |
プリミティブの位置。これはテクスチャUVでは なくて パラメトリックUVです。
|
衝突 ¶
|
int |
パーティクルのすべてのヒットの累積総数です。この数は、古いPOPの サブステップ内でパーティクルが複数回衝突した場合は、 POP Collision Behaviorノードを追加すると、 Compute Hit Total がオンの場合に衝突回数が2倍にカウントされることがあります。 |
|
int |
|
|
vec3 |
前のフレームのパーティクルの位置を記録します。これは、パーティクルの動き方に関係なく必ず衝突を登録できるようにするために衝突検出で使われます。 |
|
int |
パーティクルが最後のPOP Collision Detectで衝突した回数。 |
|
string |
ヒットしたオブジェクトのパス。ディスクのファイルへのパスまたは |
|
int |
プリミティブヒット。これは、衝突検出で衝突したプリミティブを検出できなかった場合は-1になります。POP Solverは |
|
vec3 |
プリミティブの位置。これはテクスチャUVでは なくて 、パラメトリックUVです。 |
|
vec3 |
ヒットが実際に発生した位置。通常は、 |
|
vec3 |
衝突した時間でのサーフェスの法線。 |
|
vec3 |
衝突した時間でのサーフェスのVelocity。 |
|
float |
衝突が発生した時のフレーム。 |
|
float |
Gas Impact to Attributesノードで作成されます。 これは、衝突計算に必要だった衝撃の大きさを記録します。 POP SolverのAdd Impact Dataも有効でなければなりません。 この値はタイムステップによって変化します。 |
|
float |
パーティクルが他のオブジェクトを跳ねる時、これは、パーティクルが法線方向を保持するエネルギー量を制御します。値が1なら、すべてのエネルギーを保持し、0なら停止するようになります。この値は、他のオブジェクトのbounce値と乗算されます。 デフォルトは、POP Objectのパラメータで制御されます。 |
|
float |
パーティクルが他のオブジェクトを跳ねる時、これは、パーティクルが接線方向を保持するエネルギー量を制御します。値が1なら、パーティクルが接線方向の移動を保持します。つまり、完全な跳ね返り。0なら、パーティクルが衝突オブジェクトの接線方向基準に停止します。-1なら、パーティクルが逆方向に跳ね返ります。2なら、パーティクルが衝突する度にエネルギーを増やします。この値は、他のオブジェクトのbounce forward値と乗算されます。 デフォルトは、POP Objectのパラメータで制御されます。 |
|
float |
パーティクルが他のオブジェクトを跳ねる時、パーティクルがオブジェクトにぶつかった時の強さに比例して接線方向に遅くなります。値が0なら、運動量伝達なしで跳ね返ります。値を高くすると、衝突オブジェクトの速度に張り付くパーティクルの量が増えます。この値は、他のオブジェクトのFriction(摩擦)で乗算されます。 デフォルトは、POP Objectのパラメータで制御されます。 |
|
string |
このパターンに一致するオブジェクトは、POP Solver衝突ステージ間では衝突しません。これは、POP Collision Detectに影響を与えず、計算中の暗黙的な衝突にだけ影響を与えます。オブジェクト名とオブジェクトIDの両方が、エクスプレッションで一致させることができます。そのため、 |
その他 ¶
|
string |
各パーティクルにコピーするジオメトリ。ディスクのファイルへのパスまたは |
|
int |
一番近いパーティクルの |
|
float |
一番近いパーティクルまでの距離。範囲内にパーティクルがなければ-1になります。このアトリビュートはProximity POPで作成されます。 |
|
int |
指定した範囲内のパーティクルの数。このアトリビュートはProximity POPで作成されます。 |
See also |