On this page |
概要
このノードは、FLIP Solver DOPの2番目の(Particles
)入力に接続するためのものです。
このノードは、"stream emission"またはSource POPから標準のパーティクル放出メソッドを使用して、
新しいパーティクルを指定したParticle Fluidオブジェクトに追加します。
Stream emission vs. POP emission
Use stream emission オプションは、放出されるパーティクルの初期Velocityを設定し、Velocity Stream POPと同様に Particle Fluidオブジェクトで指定したParticle Separation(パーティクルの離隔距離)に基づいて、そこから放出レートを計算することができます。 このオプションは、ソースジオメトリの ポイント からパーティクルを放出するだけです。
Use stream emission をオフにすると、より複雑ですが柔軟性のあるパラメータのセットを使ってパーティクル放出を制御することができ、Source POPのオプションと同じです。 Emission type パラメータを使えば、ポイントからではなく、ソースジオメトリのサーフェスからランダムに放出することができます(他の多くのオプションも同様です)。
Emit Particle Fluidの使い方
-
流体を放出するジオメトリオブジェクトを作成します。
-
Particle Fluids シェルフタブの Emit Particle Fluid ツールをクリックします。
-
流体を放出するジオメトリオブジェクトを選択して、Enterを押します。
-
既存のFLIPオブジェクトにエミッターを新しく追加したい場合は、そのオブジェクトを選択して、Enterを押します。
そうでない場合は、そのままEnterを押すと、ツールが新しいパーティクル流体オブジェクトを作成します。
パラメータ
Source
Particle Fluid Object
シミュレーションが影響を受けるParticle Fluid Objectノード。
Particle Fluid Emitterは、このノードを使用して、Particle Fluid Objectノードなどから、流体パーティクルアトリビュートの情報やパラメータを取得します。
Use Stream Emission
Constant EmissionまたはImpulse Emissionではなく、ストリームベースのパーティクルの放出を使用するには、このトグルを有効にします。 ストリームベースの放出は、パーティクル放出のタイミングを制御して、出力のパーティクルストリームで、指定したParticle Separation(パーティクルの離隔距離)を維持します。
これは、エミッターから滑らかで均一な流体の飛沫のストリームを作成するのに役に立ちます。
Note
Stream Emissionを設定すると、特別なDetailアトリビュートに最後の放出時間が記録されます。 異なる開始時間でパーティクルシミュレーションを再利用したいのであれば、まず最初にAttribute SOPを使って、このDetailアトリビュートを削除しなければなりません。
Emission Type
パーティクルの放出元となるソースジオメトリ上の場所。
Points (ordered)
ソースジオメトリの各ポイントから順番通りにパーティクルを放出します。 プリミティブ(例えば、プリミティブ球)には、パーティクルを放出するポイントが1つしかありません。
Points (random)
"Points (ordered)"と同じですが、ランダムな順番でポイントからパーティクルを放出します。 この順番は、時間軸で変化しません。つまり、同じランダム化した順番で何度も繰り返されます。
Prim center (ordered)
ソースジオメトリの各プリミティブの中心から順番通りにパーティクルを放出します。 これは、Primitive SOPの Rotate to Template パラメータと組み合わせて使用する時に役に立ちます。
Prim center (random)
"Prim center (ordered)"と同じですが、ランダムな順番でプリミティブ中心からパーティクルを放出します。 この順番は、時間軸で変化しません。つまり、同じランダム化した順番で何度も繰り返されます。
Prim center (attribute)
以下の Distribution Attribute パラメータで名前を付けたアトリビュートを、プリミティブがパーティクルを放出する確率として使用します。
0以下のアトリビュートのプリミティブはパーティクルを放出しません。
0より大きいアトリビュートのプリミティブに関しては、パーティクルが放出され、 プリミティブがパーティクルを放出する確率は、プリミティブのアトリビュート値をすべてのプリミティブのアトリビュート値の合計で割った値と同じです。
Measure SOPを使用してプリミティブ上に表面積を記録するアトリビュートを作成し、そのアトリビュートを使って、 表面積の大きいプリミティブからパーティクルがたくさん放出されるようにします。
Edges (ordered)
ソースジオメトリの各スプライン/ポリゴンから順番通りにパーティクルを放出します。 パーティクルの発生元は、CVやポイントからではなく、カーブ上の連続的な間隔に沿います。
Edges (random)
"Edges (ordered)"と同じですが、ランダムな順番でエッジからパーティクルを放出します。 この順番は、時間軸で変化しません。つまり、同じランダム化した順番で何度も繰り返されます。
Edges (attribute)
上記の"Prim center (attribute)"を参照してください。
Surfaces (ordered)
ソースジオメトリの各UVスプラインサーフェスまたはメッシュタイプから順番通りにパーティクルを放出します。 サーフェスがなくてスプラインカーブのみが存在すれば、カーブからパーティクルを放出します。 ポリゴンが使われていれば、ポリゴンのエッジのみからパーティクルを放出します。
Surfaces (random)
"Surfaces (ordered)"と同じですが、ランダムな順番でサーフェスからパーティクルを放出します。 この順番は、時間軸で変化しません。つまり、同じランダム化した順番で何度も繰り返されます。
Surfaces (attribute)
上記の"Prim center (attribute)"を参照してください。
Volume
ソースジオメトリのボリュームの内側からパーティクルを放出します。 ソースジオメトリが閉じていなければ、この挙動は定義されません。
Metaballs
以下の Density Threshold と Density Minimum のパラメータに応じて、メタボールのボリュームの内側からパーティクルを放出します。
Emission Geometry
Particle Fluid Emitterは、指定したEmission Geometryから、または事前に組み込まれた楕円形や矩形のパーティクルのグリッドからパーティクルを放出することができます。 このメニューを使えば、使用するEmission Geometryのタイプを選択することができます。
Source SOP
Emission Geometry を Specify Emission Geometry に設定した場合に使用するEmission Geometryの名前。
Source Group
放出元のソースジオメトリのポイント/プリミティブすべてのサブセット。
Ignore Transform Object
通常では、パーティクルはEmission Geometryのオブジェクト空間を使用します。 Emission Geometry SOPの空間に変換しないなら、このパラメータをオンにします。
Distribution Attribute
Emission type が"Prim center (attribute)", "Edges (attribute)", "Surfaces (attribute)"の時に、 パーティクルの放出の確率として使用するアトリビュート。
Density Threshold
Emission type が"Metaballs"の時、密度の合計値がこの閾値を超えるまでポイントのサンプリングを続けます。
Density Minimum
Emission type が"Metaballs"の時、この値以下の密度を持つポイントはパーティクルを放出しません。
Use Metaball Density
メタボール密度関数をパーティクル放出の確率として使用するので、密度が濃い領域ほど、多くのパーティクルを放出します。
Birth
このエミッターは、Constant、Impulse、StreamのEmissionの3通りの方法で流体パーティクルを作成します。
Constant Emission は、Emission Geometry内のポイント数に関係なく1秒あたりに一定数のパーティクルを放出します。
Impulse Emission は、エミッターがクックされる度に指定した数のパーティクルを放出します。
Stream Emission は、常にEmission Geometry内の各ポイントから常に同時にパーティクルを放出します。
これらのEmissionのタイミングは、出力パーティクルVelocityと Stream Spacing アトリビュートで決まります。 パーティクルは指定し間隔で放出されます。 これは、サーフェスから放出される滑らかで均一な流体のストリームを作成するのに役に立ちます。
Impulse Activation
Impulse Emissionを有効または無効にします。
Impulse Birth Rate
タイムステップ毎に放出する流体パーティクルの数。
Constant Activation
Constant Emissionを有効または無効にします。
Constant Birth Rate
1秒あたりに放出する流体パーティクルの数。
Stream Activation
Stream Emissionを有効または無効にします。
Stream Spacing
放出ストリーム内のパーティクル間の間隔を制御します。 これは、パーティクルを放出する時刻を調整することで行なわれます。
例えば、放出されるパーティクルのVelocityをX方向に1に設定し、 Stream Spacing パラメータを1に設定すると、 Geometry Sourceの各ポイントから1秒毎に順番通りに指定した間隔を維持してパーティクルが放出されます。
Stream Acceleration
このパラメータは、一度放出されたパーティクルの挙動に影響を与えませんが、パーティクル放出のタイミングと方向には影響を与えます。 このパラメータは、パーティクルを加速化させる外部フォースが存在する中でのパーティクル放出のタイミングの調整に使われます。
例えば、Velocityなしでパーティクルを放出しても、それらのパーティクルがすぐに下方向への重力フォースの影響を受けないなら、そのフォースによる加速度をここで指定することができます。
Stream Velocity Scale
このパラメータは、パーティクル放出のタイミングを決めるために使用するVelocityを制御する乗数です。 このパラメータは、放出されるパーティクルの実際のVelocityには影響を与えませんが、 このパラメータを使えば、内部的に放出Velocityをスケールして、放出されるパーティクルストリームを厚くしたり薄くすることができます。
例えば、このパラメータを2に設定すると、エミッターがいつもより2倍のポイントを放出します。
Life Span
生成されたパーティクルが寿命が到来する前に生存できる秒数を決めます。 -1の値を設定すると、パーティクルが永遠に生存します。
Random Seed
パーティクルをランダムに生成する時、このシード値が、使用される乱数列を決めます。
パーティクルシミュレーションに対してシード値を色々と変化させることで、パーティクルの作り方にバリエーションを持たせることができます。
Velocity
このタブを使用して、放出される流体パーティクルのVelocityを制御します。
Initial Velocity
放出されるパーティクルの初期速度の設定方法。
Use inherited velocity
パーティクルの初期速度として継承したVelocityアトリビュートを使います。
Add to inherited velocity
継承したVelocityアトリビュートの値に、さらに以下の Velocity と Variance パラメータの値を追加します。
Set initial velocity
以下の Velocity と Variance パラメータを使ってVelocityアトリビュートの初期値を設定します。
Note
適用可能であれば、加速度は独立して引き継がれます。
Inherit Velocity
( Initial Velocity が Use inherited velocity または Add to inherited velocity の時)継承するVelocityの割合。1
にすると値を100%、0.5
にすると値を50%継承します。
Velocity
Velocityアトリビュートを設定または追加します。
Variance
Velocity パラメータに、この値の+/-を加えてバリエーションを加えます。
Ellipsoid Distribution
デフォルトでは、バリエーション(設定していれば)はボックス状に分布します。そのサイズは Variance パラメータで決まります。このオプションをオンにすると、バリエーションは楕円体状に分布します。
Density Test
このタブを使用して、流体密度が非常に高い領域にパーティクルが作成されないように、放出されるパーティクルの数を制御します。 これは、流体パーティクルを作成する時のPressure(圧力)内の大きなスパイク(急な変化)を回避するのに利用することができます。
Density Test Activation
密度テストを有効または無効にします。
Density Threshold
これは流体Rest Densityの乗数です。 密度がこの量と流体Rest Densityを乗算した値を超えた位置でパーティクルを放出する場合、そのパーティクルがすぐにKillされます。
Pre-built Emitter
このセクションは、パラメータペインの下部にあり、Particle Fluid Emitterノードに事前に組み込まれたEmission Geometryに関係するパラメータを含みます。 そのParticle Fluid Emitterノードには、矩形または楕円形のサーフェスからのグリッドパターン内にパーティクルを放出するための事前に組み込まれたジオメトリが用意されています。
そのジオメトリは、自動的に Particle Fluid Object パラメータで指定したParticle Fluid Objectの Particle Separation パラメータを利用して、 この事前に組み込まれたジオメトリ内のポイント間で必要な間隔を決めます。
Size
ジオメトリの2次元サイズ。
Center
事前に組み込まれたジオメトリの中心点。
Orientation Type
空間内のジオメトリの向きを決める方法。 Align With Velocity
Emission Geometryを Velocity タブで指定したEmission Velocityに対して垂直に揃えます。
Specify Direction
Emission Geometryを Direction Vector で指定した方向ベクトルに対して垂直に揃えます。
Free Rotation
Rotation Order と Rotate のパラメータを使用して、Emission Geometryを自由に回転させることができます。
Direction Vector
Orientation Type を"Specify Direction"に設定した場合の、Emission Geometryを揃える方向。
Rotation About Axis
エミッターをVelocityや方向ベクトルに揃えるために Orientation Type を設定するなら、このパラメータには、そのベクトルを軸としたジオメトリの回転を指定します。
Rotation Order
Orientation Type を"Free Rotation"に設定すると、これは回転を適用する順番を制御します。
Rotate
Orientation Type を"Free Rotation"に設定すると、これはX,Y,Zを軸としたEmission Geometryの回転を制御します。
Jitter Scale
事前に組み込まれたEmission Geometryのポイントに適用するランダムなジッター(微震)の量を制御します。
Jitter Seed
ランダムなジッター(微震)を事前に組み込まれたEmission Geometryのポイントに適用する時に使用するシード値。
ローカル変数
ST
この値は、ノードが評価されるシミュレーション時間です。
この値は、変数Tで表現される現在のHoudiniの時間と同じではなく、DOP Networkの Offset Time と Time Scale のパラメータの設定に依存しています。
この値は、シミュレーションの開始時間がゼロになるようになっています。つまり、シミュレーションの最初のタイムステップをテストする時は、$T == 0
や$FF == 1
を使うのではなくて、$ST == 0
のようなテストを使うのがベストです。
SF
この値は、ノードが評価されるシミュレーションフレーム(正確には、シミュレーションタイムステップ番号)です。
この値は、変数Fで表現される現在のHoudiniのフレーム番号と同じではなく、DOP Networkパラメータの設定に依存しています。代わりに、この値は、シミュレーション時間(ST)をシミュレーションタイムステップサイズ(TIMESTEP)で割算した値と同じです。
TIMESTEP
この値は、シミュレーションタイムステップのサイズです。この値は、1秒あたりのユニットで表現した値をスケールするのに役に立ちますが、タイムステップ毎に適用されます。
SFPS
この値は、TIMESTEPの逆数です。シミュレーション時間の1秒あたりのタイムステップ数です。
SNOBJ
これはシミュレーション内のオブジェクトの数です。Empty Objectノードなどのオブジェクトを作成するノードでは、この値は、オブジェクトが評価される度に値が増えます。
固有のオブジェクト名を確保する良い方法は、object_$SNOBJ
のようなエクスプレッションを使うことです。
NOBJ
この値は、このタイムステップ間で現行ノードで評価されるオブジェクトの数です。 この値は、多くのノードがシミュレーション内のオブジェクトすべてを処理しないので、SNOBJとは異なります。
この値は、ノードが各オブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJ
この値は、ノードで処理される特定のオブジェクトのインデックスです。 この値は、指定したタイムステップで常にゼロからNOBJ-1まで実行されます。 この値は、OBJIDやOBJNAMEなどのシミュレーション内の現行オブジェクトを識別せず、現在の処理順でのオブジェクトの順番を識別します。
この値は、オブジェクト毎に乱数を生成するのに役に立ちます。他には、処理別にオブジェクトを2,3のグループに分けるのに役に立ちます。 この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら-1を返します。
OBJID
この値は、処理されているオブジェクトの固有のオブジェクトIDです。 すべてのオブジェクトは、すべての時間のシミュレーション内のオブジェクトすべてで固有な整数値が割り当てられています。たとえオブジェクトが削除されても、そのIDは決して再利用されません。
オブジェクトIDは、指定したオブジェクトを固有なものと識別するために常に使われています。 オブジェクトIDは、オブジェクト毎に別々の処理をさせたいシミュレーションで非常に役に立ちます。 オブジェクト毎に固有の乱数を生成するのにも使われます。
この値は、dopfieldエクスプレッション関数を使って、オブジェクトの情報を検索するのにベストな方法です。 この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら-1を返します。
ALLOBJIDS
この文字列には、現行ノードで処理されているオブジェクトすべての固有のオブジェクトIDをスペース区切りにしたリストが含まれています。
ALLOBJNAMES
この文字列には、現行ノードで処理されているオブジェクトすべての名前をスペース区切りにしたリストが含まれています。
OBJCT
この値は、現行オブジェクトが作成された時のシミュレーション時間(変数STを参照)。
そのため、オブジェクトが現在のタイムステップで作成されたかどうかチェックするには、$ST == $OBJCT
のエクスプレッションが常に使われます。
この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJCF
この値は、現行オブジェクトが作成された時のシミュレーションフレーム(変数SFを参照)。
この値は、OBJCT変数にdopsttoframeエクスプレッションを使ったものと等価です。この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJNAME
これは、処理されているオブジェクトの名前を含む文字列の値です。
オブジェクト名は、シミュレーション内で固有であることが保証されていません。 しかし、オブジェクト名が固有になるように注意して名前を付けていれば、オブジェクトの識別は、オブジェクトIDよりも、オブジェクト名を指定するほうが簡単です。
オブジェクト名は、同じ名前を持つオブジェクトの数を仮想グループとして扱うこともできます。
"myobject"という名前のオブジェクトが20個あれば、DOPのActivationフィールドにstrcmp($OBJNAME, "myobject") == 0
を指定すると、DOPがその20個のオブジェクトのみを操作します。
この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら空っぽの文字列を返します。
DOPNET
これは、現在のDOP Networkのフルパスを含む文字列です。 この値は、ノードを含むDOP Networkのパスを知りたりDOPサブネットのデジタルアセットで非常に役に立ちます。
Note
ほとんどのダイナミクスノードには、そのノードのパラメータと同じ名前のローカル変数があります。 例えば、Positionノードでは、以下のエクスプレッションを記述することができます:
$tx + 0.1
これはオブジェクトをタイムステップ毎にX軸方向に0.1単位分移動させます。
Examples
VolumeSource Example for Particle Fluid Emitter dynamics node
このサンプルでは、Particle Fluid Emitterでコンテナを流体で充満させる方法を説明しています。 タンク内のボリュームをParticle Fluid EmitterのEmission Geometryとして指定し、このジオメトリ内のポイントからランダムにパーティクルを、指定したフレーム数の間で放出しています。 このサンプルでは、SPH流体を使用しています。
The following examples include this node.
VolumeSource Example for Particle Fluid Emitter dynamics node
このサンプルでは、Particle Fluid Emitterでコンテナを流体で充満させる方法を説明しています。 タンク内のボリュームをParticle Fluid EmitterのEmission Geometryとして指定し、このジオメトリ内のポイントからランダムにパーティクルを、指定したフレーム数の間で放出しています。 このサンプルでは、SPH流体を使用しています。
FluidGlass Example for Particle Fluid Solver dynamics node
このサンプルでは、グラスに注がれた滑らかな流体の流れを作成する方法を説明しています。
PressureExample Example for Particle Fluid Solver dynamics node
このサンプルでは、Viscosity(粘度)を考慮しない圧力駆動型の単純なフローを説明しています。 また、継続的にパーティクル流体を放出する方法とParticle Fluid Surface SOPによる流体のサーフェス化の方法も説明しています。
See also |