今回は、ベクトル場を使用して上の様なジオメトリを生成していきたいと思います。さほど難しい内容ではないので是非チャレンジしてみてください。こちらのチュートリアルは動画化しております、動画の方がよい方は以下のリンクからどうぞ!
概要

上画像がプログラムの全体像となっております。各ブロックごとに説明していこうと思います。
ベクトル場の発生点を作成

- Center Boxコンポーネントで1辺100mmの立方体を作成します。
- Populate 3Dコンポーネントで作成した立方体内にランダムに点を生成します。今回は5点作成しました。
ベクトル場を生成

- Point Chargeコンポーネントで先ほど生成した点から点に向かう(引力)磁場を発生させます。入力端子Pに先ほどの点を入力します。
- 入力端子C(Charge)には磁場の強さを入力します。今回は‐1.00を入力していますが、この値を正の値にすると点から離れていく磁場(斥力)を発生させることができます。
- 入力端子D(Decay)には減衰値を入力できます。点から離れるにつれて磁場の強さを減衰させたい場合は入力します、今回は1.0を入力しています。
- 入力端子B(Bounds)には磁場を発生させる境界を入力したい場合に入力します、今回は指定していません。
- Spin Forceコンポーネントで生成した点に回転するような磁場を発生させます。入力端子Pに先ほどの点を入力します。
- 入力端子S(Strength)に磁場の強さとR(Radius)に半径を入力します。今回はどちらも1.000を入力しています。Strengthの値を負の値にすると回転方向が逆になります。入力端子D(Decay)には減衰値を1.0で入力しています。
- Merge Fieldsコンポーネントで作成した磁場を結合します。
ベクトル場で点を動かす

- Populate Geometoryコンポーネントで最初に作成した立方体の表面にランダムに点を発生させます。今回は100点発生させています。
- Field Lineコンポーネントで発生させた100点を作成したベクトル場で移動させたときの軌跡を描写します。入力端子NにはStep数を入力します。
ジオメトリ作成

- 取得した軌跡を使用してジオメトリを作成していきます。Perp Framesコンポーネントで各軌跡を等分割する位置に直行する平面を取得します。今回は各軌跡を10分割して11平面取得しています。
- Circleコンポーネントで取得した平面に円を作成します。
- 円の半径のリストを作成していきます。Rangeコンポーネントで0から1までのリストを10分割して11個値を取得します。
- Graph Mapperコンポーネントで取得した0から1を再設定していきます。Graph TypeをSineにし、0から1までの値をSine波を使用して再設定しました。
- Multiplicationコンポーネントで再設定した値に定数を掛けます。今回は4倍しています。
- 半径が0だとエラーを吐くので、Maximumコンポーネントで値が0.0001より小さい場合は0.0001を返すようにします。
- CircleコンポーネントのRadius端子に接続し、Loftコンポーネントで円同士の間にサーフェイスを張り、上の様なジオメトリが生成できていればOKです。
ジオメトリをグループ分け

- Partition Listコンポーネントを使用して、取得したサーフェイスを4グループに分けます。100サーフェイスあるので25要素ずつに分けています。
- Explode Treeコンポーネントで4ブランチのサーフェイスをそれぞれ取得します。こちらのサーフェイスをそれぞれBakeしてRhinocerosでマテリアルを割り当てれば画像の様なジオメトリが完成です。
完成

以上になります。Vector Fieldに関しては他にもチュートリアルを作成しています。是非ご参考ください。