今回は上画像の様な、紙を組み合わせたような球体 Paper Sphere を作成していこうと思います。プログラムを組んでいく中で、Vector Fields を使用していきます。使いこなせば作成できるものの幅が広がるかと思いますので、是非挑戦してみてください。こちら動画化もしてますので、動画の方がわかりやすい方は以下のリンクからどうぞ!
概要
上画像がプログラムの全体像です。大まかな流れは以下の様になっております。
- ベースとなる四角形を作成
- Vector Fields を作成
- Vector Fields から Nurbs Curve を作成
- Nurbs Curve を押出し
- 押出しを回転
- 押出しを球体で切断
ベースとなる四角を作成
- 「Rectangle コンポーネント」で四角形を作成していきます。今回は原点(0,0,0)を中心とした 1000mm×1000mm としました。
- 「Evaluate Surface コンポーネント」を使用し、作成した四角形内の点を取得します。入力端子 uv に「MD Slider コンポーネント」を使用し、値を入力します。今回は(u : 0.5, v : 0.5)を入力し、四角形の中点を取得します。
Vector Fields を作成
- 「Spin Force コンポーネント」を使用し、入力した平面から発生する回転するベクトルを作成します。入力端子 P に「Evaluate Surface コンポーネント」で取得した四角形の中点を、入力端子 S(Strength)には Spin Force の強度を(今回は1を入力)、入力端子 R(Radius)には Spin Force 半径を(今回は 2 を入力)、入力端子 D(Decay)には減衰値を(今回は 0)、入力端子 B(Bounds)には境界を入力します(今回は最初に作成した四角形)。
- 「Point Charge コンポーネント」を使用し、入力した点から発生するベクトルを作成します。入力端子 P に「Evaluate Surface コンポーネント」で取得した四角形の中点を、入力端子 C(Charge)には Point Charge の強度を(今回は 2 を入力)、入力端子 D(Decay)には減衰値を(今回は 0)、入力端子 B(Bounds)には境界を入力します(今回は最初に作成した四角形)。
- 「Merge Fields コンポーネント」で 2 つのベクトルを結合します。
- 「Tensor Display コンポーネント」でベクトルを可視化してみます。上画像の様に、四角形の中点から境界に向けて緩やからカーブを描くベクトルになってれば OK です。(※数字を変化させてどのようにベクトルが変化していくか、是非確認してみてください。)
Vector Fields から Nurbs Curve を作成
- 「Circle コンポーネント」で「Evaluate Surface コンポーネント」で取得した点を中心とした円を作成します。今回は半径を 5 としてます。
- 「Divide Curve コンポーネント」で作成した円を分割します。今回は 20 分割しています。
- 「Field Line コンポーネント」で Vector Fields で点を動かした際の曲線を可視化します。入力端子 F に「Merge Force コンポーネント」の出力端子を、入力端子 P に「Divide Curve コンポ―ネント」で取得した円の分割点を、入力端子 N に Step 数を入力(今回は 10000)を入力してます。
- 「Divide Curve コンポ―ネント」で「Field Line コンポーネント」によって可視化した曲線を分割します。今回は 10 分割しています。
- 「Nurbs Curve コンポーネント」で分割点をつなぐ Nurbs Curve を作成します。上画像の様になっていれば OK です。
Nurbs Curve を押出し
- 「Extrude コンポーネント」を2つ用意し、作成した Nurbs Curve を上下 Z 方向に押し出していきます。+ Z 方向に 500mm、-Z 方向に 500mm 押し出します。
- 「Brep Join コンポーネント」で作成した2つの押し出しを結合します。上画像の様になっていれば OK です。
押出しを回転
- 「Roate3D コンポーネント」で作成した押し出しを 90 度回転させます。Y 軸回りに 90 度、Z 軸回りに 90 度回転させたものをそれぞれ作成します。
- 上画像の様になっていれば OK です。
押出しを球体で切断
- 「Sphere コンポーネント」で序盤に「Evaluate Surface コンポーネント」で取得した、四角形の中心点を中心とした、半径 500mm の円を作成します。
- 「Split Brep Multiple コンポーネント」で球を用いて押し出した Brep を切断します。入力端子 B には2つの「Rotate3D コンポーネント」の出力端子と「Brep Join コンポーネント」の出力端子を接続し、入力端子 C に作成した球を接続します。
- 「List Item コンポーネント」を用いて、切断後のオブジェクトを取得して完成です。変数を変えていろんな形状を試してみてください。
以上になります!今回は Vector Fields を基本的な使用方法で活用してみました。Vector Fields は 3 次元での活用も可能ですので、是非挑戦してみてください!
【参考文献】