Example for

Cluster Points

Example

ポインの数が変わるソースジオメトリをクラスタにする時、そのクラスタとクラスタの番号はフレーム毎にランダムに変化するので、おかしな結果になります。それを避けるために、いくつかのテクニックを使って、ポイントの最終番号に基づいたクラスタを作成しなければなりません。

最初に、Cluster Pointsノードでクラスタにするポイントのポイントポジションのセットを指定するために、 Cluster Pointsノードの2番目の入力 を接続します。これを rest position と呼びます。

例えば、Impact Analysisツールは、RBDオブジェクトの衝突からポイントを作成します。その結果のジオメトリのポイントの数は、RBDオブジェクトが衝突するほど増えます。

  1. ROP OutputドライバFileノードを組み合わせて、インパクトポイントジオメトリをディクスにキャッシュ化します。

    (サンプルのファイルは単純化するためにディスクにキャッシュ化していません)

  2. FileノードからTimeshiftノードを枝分かれして、Timeshiftの出力をCluster Pointsノードの2番目(rest position)の入力に接続します。

  3. Timeshiftノードの Frame パラメータをクラスタを実行したい時間のフレームに設定します。通常はエフェクトの最後のフレームです。$NFRAMES変数を使えば、常にシーンの最後のフレーム番号を設定することができます。

次に、必要な分だけスモークボックスを作成するために、Smoke Objectノードの Continuous を有効にしなければなりません。 これは、 すべてのフレーム でインスタンスポイント毎に新しいスモークボックスを作成します。 これを回避するために、クラスタの中心点が現れるフレームにだけボックスを作成します。 サンプルファイルでは、For Each SOPを使ってクラスタの中心点現れるフレーム以外のすべてのフレームのクラスタの中心点を削除しています。

ばら撒いたポイントのポジションと番号がジオメトリを変形した時にフレームが変わっても、つじつまが合うようにするには、ばら撒いたポイントをくっつける方法を参照してください。

SOP(ジオメトリ)ノードのサンプル