On this page | |
Since | 13.5 |
POP Grainsノードは、パーティクルを小さな球として扱い、それらの間に相互作用を適用します。 これにより、お互いの貫通の回避、凝集、明示的な拘束さえも実行することができます。
POP Interactは、フォースを使用してパーティクルの貫通を回避しますが、 POP Grainsは、Position Based Dynamics(PBD)手法を使用して、パーティクルを直接動かして離します。 この手法により、非常に強いフォースが誘導してしまう一種の爆発を起こさずに、より安定した拘束を実行することができます。
このノードは、ポイントを動かすP
アトリビュートとそのポイントの動き方を反映するv
アトリビュートを直接修正します。
POP Grainsの制御下にあるパーティクルのispbd
アトリビュートには1が設定されます。
これにより、それらのパーティクルにはPOP Solverにおける通常の移動更新が実行されず、実際の動きは、このノードで更新されます。
Note
サブステップ数や拘束反復数が十分に実行されないと、ソルバは拘束が実行不十分であるという反応を示します。 これは、該当する剛性値が非常に低い状態であるかのように、結果として弾むような、もしくは、潰れたような挙動につながります。 したがって、剛性が対応値よりも高い場合、サブステップや拘束反復を増加させると、ルックが変化し、シミュレーションが不自然になります。
おおよその最大剛性値は、サブステップ数と拘束反復数を乗算した値です。 この値より剛性を大きくするには、より多くのサブステップ数や拘束反復数が必要です。
Note
ウェイトの範囲は0から1です。システムの安定を保証するには、すべてのアクティブウェイトの合計を1にしてください。 しかし、実際には、それぞれ個々のウェイトを1より小さくしておくだけで効果があり、少ないサブステップで挙動の精度が上がります。
1より大きいウェイトにより収束を加速できますが、パーティクルが爆発したり、微震する可能性があります。
個々のパーティクルの挙動をweightアトリビュートで制御するほうがstiffness(剛性)アトリビュートを使用するよりも速くなりますが、 タイムステップや反復によりスケールされないため、通常、いちかばちかの方法でのみ実行してください。 weightアトリビュートで制御しない場合、サブステップや反復が変化すると、挙動が大幅に変化します。
Note
摩擦はパーティクルの重なりに比例します。したがって、本質的に重なりが少ない小さいパーティクルほど摩擦の効果が少なくなります。
また、これは、パーティクル間の拘束が厳しくない場合、つまり重なりが迅速に解決されない場合、摩擦は大幅に強くなるということです。
拘束反復を増加させると、効果的な摩擦も増加させることができます。
Note
パーティクルが高く積み重なっている場合、その山を計算するのには、多くの反復が必要になることがあります。 反復が少なすぎると、その山に“弾み”が生じます。また、これにより、摩擦は安定したスタックを引き起こすことができません。 この場合の“積み重なりの高さ”とは、実際のスタックの物理的なサイズではなく、お互い上下に積み重なっているパーティクルの数のことです。
パラメータ ¶
Activation
このノードを有効/無効にします。この値が0より大きい時のみノードがアクティブになります。 これは、エクスプレッションでノードの効果を制御するのに役に立ちます。
Note
これは、全体としてノードを活動化します。このパラメータを使って特定のパーティクルのノードを非活動にすることはできません。
Group
現行ストリーム内のすべてのポイントからポイントグループ(例えば、Group POPやCollision Detection POPで作成) にのみ影響を与えます。
Particle Separation
パラメータをスケーリングする目的で、これは、すべてのパーティクルの平均直径として取得されます。 通常、これをパーティクル生成コードにリンクさせて、シーンスケールの重要な制御を行なうことができます。
パーティクルの実際のpscale
アトリビュートは、この値に勝るため、ほとんどの場合、これは質量衝突スケールのようなものを正規化するヒントとして使用されます。
Constraint Iterations
単一のサブステップで拘束を実行しようとする回数です。 すべてのパーティクルが同時に実行されるため、これはシステムの直径に、つまり、必要なパーティクルの積み重なりの高さに近づける必要があります。
各反復で、パーティクルは直近にある周りのパーティクルを調べるだけです。 したがって、10個のパーティクルが積み重なった山では、一番上のパーティクルは、10回の反復の後でないと、一番下のパーティクルについてわからないため、 最低でも使用可能な拘束の反復回数を10にします。実際には、これを2倍にする必要があることが多いです。
Behavior ¶
Assume Uniform Radius
pscale
アトリビュートにより、各パーティクルの半径を決定します。
すべてのパーティクルが同じ半径の場合、より高速な加速構造により、周りのパーティクルを探すことができます。
Friction ¶
With Colliders
Particle-Collider間の摩擦は、この量によりスケールされます。 0の値ではパーティクルは付着せず、1の値ではパーティクルは接触するとVelocityに合わせようとします。
friction
Pointアトリビュートを使用してスケーリングします。
Note
これは、衝突オブジェクト上のfriction(摩擦)パラメータやfriction(摩擦)アトリビュートを考慮に入れません。
With Particles
Particle-Particle間の摩擦は、この量によりスケールされます。 0の値ではパーティクルは付着せず、1の値ではパーティクルは接触するとVelocityに合わせようとします。
friction
Pointアトリビュートを使用してスケーリングします。
Accurate Friction
これを設定すると、摩擦が拘束ループの反復毎に適用されます。 これにより、より強く、より正確な摩擦で粒子を積み重ねることができます。
Static Threshold
パーティクルが拘束反復内で完全に動きを停止しようとする時点でのSpeed-vs-Collisionの深度比率です。
パーティクルが隣接のパーティクル内に沈み込んだ深度に、パーティクルが進行する速度を乗算します。 その結果がこの閾値よりも小さい場合、パーティクルは(他のパーティクルに関連して)動きを停止します。
Scale Kinetic
静的閾値以外の場合、関係するVelocityは、この値と衝突深度に比例して取り消されます。 この数値が大きい場合、パーティクルは、お互いが重なると接線方向関連の動きをすぐに失ないます。
Internal Collisions ¶
Weight
パーティクル衝突フォースのウェイト量。
値がゼロの場合、パーティクル衝突が無効になります。
repulsionweight
Pointアトリビュートを使用してスケーリングします。
Stiffness
パーティクルを引き離す強度。値が大きいと、弾みの反発力が弱くなります。
repulsionstiffness
Pointアトリビュートを使用してスケーリングします。
OpenCLはrepulsionstiffness
アトリビュートに対応していません。
Enable Mass-Shock Scaling
重力に対するパーティクルの位置に応じて、パーティクルの質量を人工的にスケーリングします。 上方に行くほどパーティクルを軽くすることにより、パーティクルのスタックは収束が速くなり、より安定します。
Globalメソッドは、反復前のすべてのパーティクルの仮想質量を記録するshockmass
アトリビュートを追加します。
オーバーフローを回避するためには、適切に設定された原点が必要です。
Localメソッドは、必要に応じて相対質量スケールを計算します。 このアトリビュート値を読み込まないと、余計な計算時間がかかることが多いです。 使用する指数の近似が原因で、効果的なショックスケールパワーが、ほぼ7に制限されます。
Shock Scaling Power
実行するスケーリングの量です。 数値が大きいと、連続するパーティクル間の差異が大きくなります。 0の値の場合、パーティクル間の比率はなくなり、1の値の場合、縦に積み重なった2つのパーティクル間の比率は15%になります。
あまり数値を上げすぎると、上方のパーティクルが極端に軽くなり、システムが不安定になります。
Shock Axis
パーティクル質量の勾配を定義するために使用するUpベクトル。
積み重ねる方向にしてください。通常では、重力の方向と反対です。
Shock Origin
砂システムのほぼ中心。浮動小数点による表現の制限が原因で、この原点から非常に遠く離れたパーティクルが、最小/最大値に制限されてしまいます。 スケール指数が小さいほど、より広い範囲が可能になります。
デフォルト値では、Shock Axisの方向で+/-580のParticle Separation(パーティクルの離隔距離)になります。
Clumping ¶
Weight
パーティクルが近づいた時にどのくらい自然に付着するかのウェイト。 値がゼロの場合、パーティクルの凝集が無効になります。
attractionweight
Pointアトリビュートを使用してスケーリングします。
Stiffness
近くのパーティクルがお互いにどのくらい強く付着するかを設定します。値が大きいと、弾みの付着力が弱くなります。
attractionstiffness
Pointアトリビュートを使用してスケーリングします。
OpenCLはattractionstiffness
アトリビュートに対応していません。
Explicit Constraints ¶
Weight
パーティクルがポリライン(2点のポリゴン)で接続されていない場合、パーティクルは、プリミティブのrestlength
アトリビュートで指定された距離を維持することになります。
この値は、その拘束に与えられたウェイトを制御し、0の場合、その拘束が無効になります。 これをゼロに設定すると、サブステップ毎に、接続情報をアトリビュートにコピーする必要がないため、シミュレーションの速度が上がります。
constraintweight
Pointアトリビュートを使用して、(拘束毎ではなく!)パーティクル毎にスケーリングします。
OpenCLはconstraintweight
アトリビュートに対応していません。
Stiffness
パーティクルがポリライン(2点のポリゴン)で接続されていない場合、パーティクルは、プリミティブのrestlength
アトリビュートで指定された距離を維持することになります。
この値は、その拘束に与えられたstiffness(剛性)を制御し、値が大きいと弾みが少なくなります。
constraintstiffness
Pointアトリビュートを使用して、(拘束毎ではなく!)パーティクル毎にスケーリングします。
OpenCLはconstraintstiffness
アトリビュートに対応していません。
Collide Mutually Constrained Particles
2つのパーティクル間に明示拘束がある場合、このオプションによりその2つのパーティクルを衝突させることができます。 これは、拘束を切ってもフォースが突然発生しないようにするため、拘束を切る時に便利です。 初期パーティクルを分離させる必要がありますが、分離すると詰め込み密度が1より大きい場合は機能しません。
Enable Rigid Shape Matching
パーティクルの接続グループが識別され、リジッドトランスフォームに拘束されます。 これは、リジッドコンポーネントのstiffness(剛性)を大幅に良くしますが、重いSOP処理が伴います。
OpenCLは、形状一致に対応していません。
Instantaneous Strain
strain
Primitiveアトリビュートは、反復毎に新しく計算され、累積させることができません。
Strain Decay
拘束のプリミティブのstrain
アトリビュートが時間の経過にともない減衰するレート。
Break Constraints
Strain(張力)が、 Break Threshold に拘束の強度を乗算した値を超えると、その拘束がシミュレーションから削除されます。
これにより、その拘束を動的に引き裂くことができます。
拘束のstrength
Primitiveアトリビュートが使用されます。
Break Threshold
拘束を切るためのStrain(張力)の量に対するスケール係数。これは、全体的に適用されます。 Instantaneous(瞬時)モードでは、これは大体、許容変形比率です。 0.05の設定では、自然長の5%の変形が、その拘束切りを起こします。
パーティクルサイズを小さくすると、接着長も短くなり、その結果、拘束切りの速さに影響します。
Remove Strands
明示拘束でソリッドをシミュレーションした時、ソリッドをパーティクルのチェーンに分解できることがよくあります。 パーティクルのチェーンは、既にリジッド接続がないため、大きなフォースを持つことを止めます。 このオプションは、単純なチェーン拘束の拘束を破壊します。
Targets (Pins) ¶
Weight
パーティクルがtargetP
の位置に拘束されます。
そのウェイトは、これとtargetweight
アトリビュートを乗算した値で制御され、パーティクル毎にバリエーションを与えることができます。
Note
targetP
は、トランスフォームのあるオブジェクトをソースにした時の、元のSOP空間にはありません。
targetweight
Pointアトリビュートを使用してスケーリングします。
Stiffness
targetP
アトリビュートに固定するパーティクルのstiffness(剛性)。
Note
targetP
は、トランスフォームのあるオブジェクトをソースにした時の、元のSOP空間にはありません。
targetstiffness
Pointアトリビュートを使用してスケーリングします。
Note
targetstiffness
Pointアトリビュートが存在していない場合、これはゼロとして扱われます。つまり、ピンは何も実行されません。
Solver ¶
Max Neighbors
サブステップの間、起こり得る衝突を検索する時に考慮される最大パーティクル数。 非常に多くのパーティクルが1つの箇所に作成された場合には、これに上限を設定して、余分な計算を回避するのに役立ちます。
Neighbor Query Scale
起こり得る交差パーティクルは、2つのpscale
アトリビュートの平均をこの値でスケールした距離の範囲内にあります。
これが過剰評価である理由は、通常、衝突は拘束反復の間では更新されないため、現在衝突しているパーティクルだけではなく、
それよりも前の反復により衝突が始まったパーティクルも記録する必要があるからです。
これは、凝集の引き寄せる力の範囲にも影響を与えます。
Max Speed
生成されたVelocityの速度制限。
パーティクルが拘束に追従するために非常に大きい動きを実行する必要がある場合、その動きに相当するVelocityを取得します。
この取得したVelocityは、過大なエネルギーが与えられると爆発につながることもあるため、このオプションにより次のフレームで見られるVelocityを制限することができます。
しかし、パーティクルがフレーム内で動く距離を実際に制御するのではなく、レポートされたv
アトリビュートだけを制御します。
OpenCLは、最大速度拘束には対応していません。
Max Acceleration
拘束実行の結果として行なうことができるv
アトリビュートの変化に上限を設定します。
これは、拘束によりシステム内に入れることができるエネルギー量に上限を付けます。
Drift Threshold
パーティクルがこの速度よりも遅く動いている場合、パーティクルが以前の位置に戻されます。 これは、パーティクルを実際に無効にしなくても、視覚的に好ましくないスタックの遅い沈殿を回避します。 この値は、サブステップが増えた時にフォースの効果がこの閾値内に収まるように、Velocityとして測定されます。 パーティクルは、その後、フォースに対する反応を停止します。
Velocity Blend
拘束を有効にした後、Velocityは、新旧のポイント間の差異として定義されます。 その代わりに、Velocityブレンドにより、これを古いVelocityとブレンドすることが可能で、 再度、変化レートを最小限にして、パーティクルのVelocity履歴を平滑にします。
Over Relaxation
拘束の平均化は、収束の速さを落とすことができます。 この値を1よりも大きく上げることにより、衝突拘束が増加します。 この値が大きすぎると、不安定になることがあります。
Use OpenCL
設定されたOpenCLデバイスで拘束反復を実行します。
Note
OpenCLコードパスは、機能のサブセットのみに対応しますが、それと引き換えに拘束反復プロセスの速さが遅くなります。
Note
OpenCLコードパスは、すべてのPBDパーティクルで動作しますが、このストリームのパーティクルにだけで動作しません。 (これは、ネットワークに複数のPOP Grainsノードがある場合のみの問題です)
Update Collisions During Iterations
パーティクル毎の単一の衝突が決定され、これにより衝突の平面が与えられます。 パーティクルが反復中に他の衝突面にぶつかることがあっても、拘束反復の間、使用されます。 このオプションは、すべての反復に対してパーティクルを再衝突させるため、大きな負荷がかかります。
Update Neighbors During Iterations
通常、パーティクルの潜在コライダーは、1回計算され、反復に再利用されます。 このオプションは各反復で再計算を行なうため、大きな負荷がかかります。
Final Collision Test
拘束実行は部分的でしかないため、パーティクルは、拘束ループの後もオブジェクト内を通過することができます。 これは、最終の衝突パスを実行し、オブジェクトからのパーティクルの漏れを防ぎます。 薄いサーフェスや動いているオブジェクトの場合は、重要なオプションです。
Add Impact Data
POP Solver DOPは、パーティクル上へのImpactデータの追加を有効にします。 通常では、メモリを節約するために、これが追加されず、パーティクル衝突アトリビュートは、POP Solver DOPの Add Hit Attributes パラメータを有効にすることでより簡単に作成されます。
Enable Collision Feedback
衝突オブジェクトへのFeedback Impactの追加を有効にします。 これは双方向作用に必要です。
Disable Constraint Averaging
複数のパーティクルが同時に衝突した時、デフォルトでは、それらを引き離すための拘束が平均化されます。 これは、安定性を確保するのに効果的ですが、運動量を保持しません。 そのため、Clumping(凝集)などの内部フォースと組み合わせた時に、たくさんのパーティクルが、それらのフォース下で促進されます。 この平均化を無効にすると、それらのゴーストフォースを回避することができますが、 Friction With Particles, Internal Weight, Clumping Weightすべてが最低でも0.5に下げる必要があり、安定性を確保するなら できるだけさらに下げる必要があります。
入力 ¶
First Input
このオプションの入力には2つの用途があります。
1つ目が、他のPOPノードに接続すると、このノードを実行する前に、それらのノードが実行されます。チェーン状に繋がったノードは、上から下に処理されます。
2つ目が、入力チェーンにストリームジェネレータ(例えば、POP Location, POP Source, POP Stream)があると、 このノードは、そのストリーム内のパーティクルにだけ作用します。
出力 ¶
First Output
このノードの出力をソルバチェーンに接続してください。
Mergeノードを使用すれば、複数のソルバチェーンを結合することができます。
最後の接続は、POP SolverやFLIP Solverなどのフルソルバの紫の入力のどれかに接続してください。
ローカル変数 ¶
channelname
このDOPノードはData Optionsページの各チャンネルとパラメータに対して、チャンネルと同じ名前のローカル変数を定義します。 例えば、ノードにPositionのチャンネル(positionx、positiony、positionz)とオブジェクト名のパラメータ(objectname)があるとします。
そのノードには、positionx、positiony、positionz、objectnameの名前を持つローカル変数も存在します。これらの変数は、そのパラメータに対する前の値を評価します。
この前の値は、処理されているオブジェクトに追加されたデータの一部として常に保存されています。 これは、本質的には以下のようなdopfieldエクスプレッション関数のショートカットです:
dopfield($DOPNET, $OBJID, dataName, "Options", 0, channelname)
データがまだ存在しないなら、ゼロの値または空っぽの文字列が返されます。
DATACT
この値は、現在のデータが作成されたシミュレーション時間(変数STを参照)です。 このノードが新しいデータを作成せずに既存データを変更していれば、この値は現在のシミュレーション時間と同じにはなりません。
DATACF
この値は、現在のデータが作成されたシミュレーションフレーム(変数SFを参照)です。 このノードが新しいデータを作成せずに既存データを変更していれば、この値は現在のシミュレーションフレームと同じにはなりません。
RELNAME
この値は、データがリレーションシップ(例えば、Constraint Anchor DOPがConstraint DOPの2番目、3番目、4番目の入力に接続されている時)に追加されている時だけ設定されます。
この場合では、この値は、データが追加されているリレーションシップの名前に設定されます。
RELOBJIDS
この値は、データがリレーションシップ(例えば、Constraint Anchor DOPがConstraint DOPの2番目、3番目、4番目の入力に接続されている時)に追加されている時だけ設定されます。
この場合では、この値は、データが追加されているリレーションシップのAffected Objectsすべてに対するオブジェクトIDをスペース区切りにしたリストの文字列に設定されます。
RELOBJNAMES
この値は、データがリレーションシップ(例えば、Constraint Anchor DOPがConstraint DOPの2番目、3番目、4番目の入力に接続されている時)に追加されている時だけ設定されます。
この場合では、この値は、データが追加されているリレーションシップのAffected Objectsすべてに対するオブジェクト名をスペース区切りにしたリストの文字列に設定されます。
RELAFFOBJIDS
この値は、データがリレーションシップ(例えば、Constraint Anchor DOPがConstraint DOPの2番目、3番目、4番目の入力に接続されている時)に追加されている時だけ設定されます。
この場合では、この値は、データが追加されているリレーションシップのAffector Objectsすべてに対するオブジェクトIDをスペース区切りにしたリストの文字列に設定されます。
RELAFFOBJNAMES
この値は、データがリレーションシップ(例えば、Constraint Anchor DOPがConstraint DOPの2番目、3番目、4番目の入力に接続されている時)に追加されている時だけ設定されます。
この場合では、この値は、データが追加されているリレーションシップのAffector Objectsすべてに対するオブジェクト名をスペース区切りにしたリストの文字列に設定されます。
ST
ノードが評価されるシミュレーション時間です。
この値は、変数Tで表現される現在のHoudiniの時間と同じではなく、DOP Networkの Offset Time と Scale Time のパラメータの設定に依存しています。
STは、シミュレーションの開始時間がゼロになるようになっています。
つまり、シミュレーションの最初のタイムステップをテストする時は、$T == 0
や$FF == 1
を使うのではなくて、$ST == 0
のようなテストを使うのがベストです。
SF
ノードが評価されるシミュレーションフレーム(正確には、シミュレーションタイムステップ番号)。
この値は、変数Fで表現される現在のHoudiniのフレーム番号と同じではなく、DOP Networkパラメータの設定に依存しています。 代わりに、この値は、シミュレーション時間(ST)をシミュレーションタイムステップサイズ(TIMESTEP)で割算した値と同じです。
TIMESTEP
シミュレーションタイムステップのサイズ。 この値は、1秒あたりのユニットで表現した値をスケールするのに役に立ちますが、タイムステップ毎に適用されます。
SFPS
TIMESTEPの逆数。 シミュレーション時間の1秒あたりのタイムステップ数です。
SNOBJ
シミュレーション内のオブジェクトの数。 Empty Object DOPなどのオブジェクトを作成するノードでは、SNOBJは、オブジェクトが評価される度に値が増えます。
固有のオブジェクト名を確保する良い方法は、object_$SNOBJ
のようなエクスプレッションを使うことです。
NOBJ
このタイムステップ間で現行ノードで評価されるオブジェクトの数。 この値は、多くのノードがシミュレーション内のオブジェクトすべてを処理しないので、SNOBJとは異なります。
NOBJは、ノードが各オブジェクトを続けて処理(例えば、Group DOP)しないなら0を返します。
OBJ
ノードで処理される特定のオブジェクトのインデックス。 この値は、指定したタイムステップで常にゼロからNOBJ-1まで実行されます。 この値は、OBJIDやOBJNAMEなどのシミュレーション内の現行オブジェクトを識別せず、現在の処理順でのオブジェクトの順番を識別します。
この値は、オブジェクト毎に乱数を生成するのに役に立ちます。他には、処理別にオブジェクトを2,3のグループに分けるのに役に立ちます。 この値は、ノードがオブジェクトを続けて処理(例えば、Group DOP)しないなら-1を返します。
OBJID
処理されているオブジェクトの固有ID。 すべてのオブジェクトは、すべての時間のシミュレーション内のオブジェクトすべてで固有な整数値が割り当てられています。たとえオブジェクトが削除されても、そのIDは決して再利用されません。 オブジェクトIDは、オブジェクト毎に別々の処理をさせたい場面(例えば、オブジェクト毎に固有の乱数を生成したい)で非常に役に立ちます。
この値は、dopfieldエクスプレッション関数を使って、オブジェクトの情報を検索するのにベストな方法です。
OBJIDは、ノードがオブジェクトを続けて処理(例えば、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 DOPでは、以下のエクスプレッションを記述することができます:
$tx + 0.1
これはオブジェクトをタイムステップ毎にX軸方向に0.1単位分移動させます。
Examples ¶
BaconDrop Example for POP Grains dynamics node
このサンプルは、ベーコンをトーラス上に落とすデモです。 これは、テクスチャマップから2Dオブジェクトを抽出し、同じ肉の筋目をしたオブジェクトをDOPへ繰り返しで追加する方法を説明しています。
KeyframedGrains Example for POP Grains dynamics node
このサンプルでは、ソリッドの豚の頭の内部のGrain(粒)にキーフレームを打って、アニメーションする操り人形の作成方法を説明しています。
TargetSand Example for POP Grains dynamics node
このサンプルでは、モデルの表面上のポイントに引き寄せられる粒のシミュレーションを説明しています。
VaryingGrainSize Example for POP Grains dynamics node
このサンプルでは、まったく異なるサイズの粒で引き寄せられるシミュレーションを説明しています。
See also |