今回は Vector Field を使用した簡単なチュートリアルを作成しました。上画像の様な羽の様なジオメトリを作成し、Rhinoceros でガラスのマテリアルを割り当てレンダリングしております。難易度の高くないチュートリアルとなっておりますので是非実装してみてください。こちらのチュートリアルは動画化しております、動画の方がよい方は以下のリンクからどうぞ!
概要
上画像がプログラムの全体像となっております。
各ブロックごとに解説していこうと思います。
ベースとなるサーフェイス作成
- Sphere コンポーネントで中心点(0,0,0)とした半径 100mm の球を作成します。
- Brep|Plane コンポーネントで XY Plane と球との交線を取得します。
- Surface Split コンポーネントで取得した交線で球を半分に切断します。
- List Item コンポーネントで切断した球の上半分のみを取得します。
- 取得した搬入に対して、今度は XZ 平面で半分に切断します。
- その後 YZ 平面で切断し、球の 1/8 のサーフェイスを取得します。(※冗長ですね・・・これもっと簡単な方法あれば教えてください。)
サーフェイス上に点を発生させる
- 取得した球の 1/8 サーフェイスに Populate Geometory コンポーネントで点を発生させます。今回は 50 点としています。後でいい感じの形状を取得するために、Seed にも Number Slider コンポーネントで値を接続しておきます。
ベクトル場を発生させる
- Area コンポーネントで球と XY 平面との交線の中心点を取得します。(※結局球の中心点です。)
- Point Charge コンポーネントで球の中心点へ向かう引力を発生させます。Charge:-2、Decay:0
- Spin Force コンポーネントで球の中心点から発生する回転するベクトル場を発生させます。Strength : 3, Radius : 4 , Decay : 0
- Merge Fields コンポーネントで 2 つのベクトル場を結合します。
ベクトル場で点を移動させる
- Field Line コンポーネントで、作成したベクトル場で球の 1/8 サーフェイス上に発生させた点を移動させた際の軌跡を取得します。
余分な奇跡の削除
- なんとなくベクトル場の中心付近にある軌跡が(※上画像で 1 本だけ赤くしてある曲線です)きれいな形状にならないような気がしたので削除します。
- Length コンポーネントで取得した曲線(軌跡)の長さを取得します。
- Sort List コンポーネントで曲線を短い順に並べ替えます。
- Cull Index コンポーネントで 0 番目を削除することで余計な曲線を削除できました。(※たぶん一番短いだろうと思いこのような処理にしました。)
曲線に沿った円を作成
- Perp Frames コンポーネントで曲線に沿った平面を取得します。今回は 10 分割の 11 平面取得します。
- Circle コンポーネントで取得した平面を中心とした円を作成します。
円の半径を設定
- Range コンポーネントで 0~1 までを等分割したリストを取得します。
- Graph Mapper コンポーネントでリストの値を制御します。
- 半径が負の値や 0 になってほしくないので、Maximum コンポーネントで 0.001 より小さい値だった場合は 0.001 を出力するようにします。
- Multiplication コンポーネントで取得したリストに定数を掛けます。このリストを半径につなぎます。
円同士の間にサーフェイスを張る
- Loft コンポーネントで円と円の間にサーフェイスを張ります。出力端子は Flatten しておきます。
- Jitter コンポーネントで Loft したリストをランダムに並べ替えます。
- 今回は、これらのジオメトリに 3 色を割り当てたいので。ランダムに並べ替えたリストを 3 ブランチに分けます。List Length コンポーネントでジオメトリの数を取得します。
- Division コンポーネントで 3 分割します。
- Round コンポーネントで 3 で割った数字の小数点を切り上げた整数を取得します。
- Partition List コンポーネントで 3 ブランチに分けます。
- Explode Tree コンポーネントで 3 ブランチを分けて出力します。各出力端子に Surface コンポーネントを接続します。
- Surface コンポーネントをそれぞれ別レイヤーに Bake します。
Rhinoceros でマテリアルの割り当て
- マテリアルにガラスを割り当て好きな色に設定します。
- ツールバーのオレンジ色の球体を選択しレンダリングします。
完成
以上になります。サーフェイスの位置を移動させていろんな形状も試してみてください。割と簡単にできちゃうので是非トライしてみてください!