今回は上画像の様な、紙を組み合わせたような球体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次元での活用も可能ですので、是非挑戦してみてください!
【参考文献】
- AppliCraft : https://www.applicraft.com/