今回は、グラスホッパーでランダムに回転するボロノイのファサードの作成方法について解説します。
全体の様子
上3枚の画像は、グラスホッパーの様子です。
上3枚の画像は、ライノセラス上に書き出した様子です。
上の画像は、最終的にレンダリングした様子です。
それでは、順番に解説していきます。
今回使用したグラスホッパーとライノセラスのデータダウンロードはこちら
ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。
全体コンポーネント
全体コンポーネント:①XZ Plane ②Rectangle ③Surface ④Populate 2D ⑤Voronoi ⑥Area ⑦Scale ⑧Ruled Surface ⑨Unit Y ⑩Extrude ⑪Division ⑫Negative ⑬Move ⑭XY Plane ⑮List Length ⑯Construct Domain ⑰Random ⑱Rotate ⑲Curve ⑳Curve | Plane ㉑PolyLine ㉒Rotate Axis ㉓Pipe ㉔Merge ㉕Solid Union
基準となるボロノイのサーフェスを作成する
最初に、基準となるボロノイのサーフェスを作成していきます。
最初に、XZ Planeを配置します。
すると、X方向とZ方向から作成される作業平面が作成されます。
その後、XZ Planeを、Rectangle(P)につなげます。
さらに、RectangleのXとY端子に、辺の長さの数値を入力します。
今回は、X端子に20000、Y端子に10000の数値を入力しています。
すると、上の画像のように、四角形の線データが作成されます。
その後、Rectangle(R)を、Surfaceにつなげます。
すると、上の画像のように、四角形の線データからサーフェスが作成されます。
その後、Surfaceを、Populate 2D(R)につなげます。
さらに、点の個数の数値を、Populate 2D(N)につなげます。
今回は、300の数値を入力します。
さらに、任意のランダムさを変えるシード値を、Populate 2D(S)につなげます。
今回は、100の数値を入力しています。
すると、上の画像のように、ランダムな点が300個作成されます。
その後、Populate 2Dを、Voronoi(P)につなげます。
さらに、Surfaceを、Voronoi(B)につなげます。
すると、上の画像のように、ボロノイの線データが作成されます。
その後、Voronoiを、Surfaceにつなげます。
すると、上の画像のように、ボロノイの線データから、ボロノイのサーフェスが作成されます。
これで、基準となるボロノイのサーフェスを作成することができました。
枠を作成する
次に、枠を作成していきます。
すると、上の画像のように、各サーフェスの中心点を取得できます。
その後、倍率の数値を、Scale(F)につなげます。
今回は、0.9の数値を入力しています。
すると、上の画像のように、各サーフェスのスケールが小さくなりました。
その後、SurfaceとScale(G)を、Ruled Surfaceにつなげます。
すると、上の画像のように、スケール変更前と後の枠線をつなぎ、枠のサーフェスが作成されます。
その後、Scale(G)を、新たなScale(G)につなげます。
さらに、先程のArea(C)を、新たなScale(C)につなげます。
さらに、先程の0.9の数値を、新たなScale(F)につなげます。
すると、上の画像のように、新たに小さくなったボロノイのサーフェスが作成されます。
その後、2つのExtrudeを用意します。
Ruled SurfaceとScale(G)を、Extrude(B)にそれぞれつなげます。
その後、厚みの数値を、Unit Yにつなげます。
さらに、Unit Yを、2つのExtrude(D)につなげます。
すると、上の画像のように、厚みを付けることができました。
その後、先程の50の数値を、Division(A)につなげます。
さらに、2の数値を、Division(B)につなげます。
すると、50÷2=25の数値が出力されます。
すると、25の数値が-25になりました。
その後、2つのMoveを用意します。
その後、Extrudeを、2つのMove(G)にそれぞれつなげます。
すると、上の画像のように、先程とは逆方向に厚みの半分だけ移動しました。
この移動は、後程作成する回転軸が、枠の中心に来るために移動させています。
これで、枠を作成することができました。
回転軸を作成してボロノイを回転させる
次に、回転軸を作成してボロノイを回転させます。
すると、上の画像のように、ボロノイの線を取得できます。
Area(C)を、XY PlaneとXZ Planeにつなげます。
すると、X方向とY方向、X方向とZ方向から作成される作業平面が、各中心点の位置に作成されます。
その後、XZ Planeを、List Lengthにつなげます。
すると、作業平面の個数の数値を取得できます。
今回の場合、300の数値が取得されます。
その後、0の数値を、Construct Domain(A)につなげます。
さらに、180の数値を、Construct Domain(B)につなげます。
すると、0 To 180の数値範囲が作成されます。
その後、Construct Domainを、Random(R)につなげます。
さらに、List Lengthを、Random(N)につなげます。
さらに、任意のランダムさを変えるシード値を、Random(S)につなげます。
今回は、100の数値を入力しています。
すると、0~180の数値範囲で、数値が300個作成されます。
その後、XY Planeを、Rotate(G)につなげます。
この際に、Rotate(A)を右クリックし、Degreesに設定してください。
さらに、XZ Planeを、Rotate(P)につなげます。
すると、各XY作業作業平面が、XZ作業平面上でランダムに回転します。
その後、Curveを、Curve | Plane(C)につなげます。
さらに、Rotate(G)を、Curve | Plane(P)につなげます。
すると、上の画像のように、ボロノイ線と作業平面が交差する位置に、点が作成されます。
その後、Curve | Plane(P)を、PolyLine(V)につなげます。
すると、上の画像のように、点をつなぐ線が作成されました。
この際に、PolyLine(Pl)を右クリックし、Flattenに設定してください。
その後、内側のボロノイの方のMove(G)を、List Lengthにつなげます。
すると、内側のボロノイの個数の数値を取得できます。
今回の場合、300の数値が出力されています。
その後、0の数値を、Construct Domain(A)につなげます。
さらに、90の数値を、Construct Domain(B)につなげます。
すると、0 To 90という数値範囲が作成されます。
その後、Construct Domainを、Random(R)につなげます。
さらに、List Lengthを、Random(N)につなげます。
さらに、任意のランダムさの数値を変えるシード値を、Random(S)につなげます。
今回は、100の数値を入力しています。
すると、0~90の数値範囲内で、数値が300個作成されます。
その後、Randomを、Rotate Axis(A)につなげます。
この際に、Rotate Axis(A)を右クリックし、Degreesに設定してください。
その後、PolyLineを、Rotate Axis(X)につなげます。
この際に、Rotate Axis(X)を右クリックし、Flattenに設定してください。
その後、内側のボロノイの方のMove(G)を、Rotate Axis(G)につなげます。
すると、上の画像のように、線を回転軸にしてボロノイが回転しました。
この際に、Rotate Axis(G)を右クリックし、Graftに設定してください。
これで、回転軸を作成してボロノイを回転させることができました。
回転軸のパイプとボロノイを結合する
最後に、回転軸のパイプとボロノイを結合していきます。
さらに、半径の数値を、Pipe(R)につなげます。
さらに、2の数値を、Pipe(E)につなげます。
2の数値を使うと、パイプの角が丸くなります。Pipe(R)につなげます。
これにより、上の画像のように、線からパイプが作成されます。
その後、Rotate Axis(G)とPipeを、Mergeにつなげます。
この際に、Merge(D1とD2)を右クリックし、Simplifyに設定してください。
すると、データを結合できます。
その後、Mergeを、Solid Unionにつなげます。
すると、ボロノイとパイプのモデルが結合されました。
先程の枠を表示すると完成です。
今回は以上になります。
Comment