https://www.archdaily.com/287571/galaxy-soho-zaha-hadid-architects
今回は、グラスホッパーでザハ・ハディッド建築の銀河SOHO(Galaxy SOHO)を再現しました。
動画で見る
全体の様子

グラスホッパーの様子です。

ライノセラス上の様子です。

ライノセラス上で色を付けた様子です。

最終的にレンダリングした様子です。
それでは、順番に解説していきます。
今回使用したグラスホッパーとライノセラスのデータダウンロードはこちら
ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。
全体コンポーネント


全体コンポーネント:①Circle ②Multiplication ③Construct Point ④Move ⑤Unit Z ⑥Series ⑦Area ⑧Division ⑨Graph Mapper ⑩Scale ⑪List Item ⑫Tangent Arcs ⑬Curve | Curve ⑭Shatter ⑮Join Curves ⑯Cull Index ⑰Merge ⑱Extrude ⑲Cap Holes ⑳Offset Curve ㉑Ruled Surface




基準の形を作成する
まずは、基準となる形を作成していきます。

まずは、円を作成します。
CircleのR端子に、半径の数値を入力します。
今回は、40000を入力しました。
すると、半径40000の円が作成されました。

その後、MultiplicationのB端子に、先程使用した40000の数値を入力します。
また、MultiplicationのA端子に、2の数値を入力します。
すると、2×40000=80000の数値が作成されます。
そして、Multiplicationを、Construct PointのX端子につなげます。
すると、上の画像のように、座標80000,0,0の位置に、点が作成されます。

その後、Construct Pointを、新たなCircleのP端子につなげます。
そして、CircleのR端子に、先程の40000の数値を入力します。
すると、上の画像のように、作成した点を中心に、新たな円が作成されました。

その後、SeriesのN端子に、各階の高さの数値を入力します。
今回は、4000を入力しています。
さらに、SeriesのC端子に、階数の数値を入力します。
今回は、15を入力します。
すると、0から4000ずつ増加する数値が、15個作成されます。
そして、2つのMoveを用意します。
MoveのG端子に、2つのCircleをそれぞれつなげます。
そして、Unit Zを、MoveのT端子にそれぞれつなげます。
すると、上の画像のように、真上方向に円が複数コピーされました。

その後、2つのMoveのG端子を、2つのAreaにつなげます。
すると、1つ1つの円の中心点を取得できます。

次に、円のスケールを1つずつ変えていきます。
DivisionのA端子に、1の数値を入力します。
そして、階数の数値の15を、DivisionのB端子につなげます。
すると、1÷15の数値が出力されます。
そして、Divisionを、SeriesのN端子につなげます。
また、C端子に、先程の15の数値を入力します。
すると、1÷15の数値ずつ大きくなる数値が、15個作成されます。
これらの数値は、次に使うグラフのX軸の数値になります。

その後、Seriesを、Graph Mapperにつなげます。
そして、Graph Mapperを右クリックし、Graph typesからBezierを選択してください。
すると、入力したX軸の数値に対応する、Y軸の数値が出力されます。

その後、2つのScaleの用意します。
2つのMoveのG端子を、それぞれScaleのG端子につなげます。
そして、2つのAreaのC端子を、それぞれScaleのC端子につなげます。
そして、Graph Mapperを、2つのScaleのF端子につなげます。
すると、上の画像のように、グラフの形に従って円のスケールが変わりました。
これで、基準の形を作成することができました。
円同士をつなげる
次に、円同士をつなげます。
今回は、上側は3つ、下側は2つの円をつなげます。

Seriesを2つ用意します。
1つ目のSeriesのSとN端子に-1の数値を入力します。
そして、1つの目SeriesのC端子に、3を入力します。
すると、-1・-2・-3のの3つの数値が作成されます。
2つ目のSeriesのN端子には、1を入力します。
また、2つ目のSeriesのC端子には、2の数値を入力します。
すると、0と1の2つの数値が作成されます。

その後、2つのScaleのG端子を、2つのList ItemのL端子にそれぞれつなげます。
また、2つのSeriesを、List Itemのi端子にどちらもつなげます。
すると、上の画像のように、上3つと下2つの円を取得することができました。

その後、2つのList Itemを、Tangent ArcsのAとB端子につなげます。
その後、2つの円をつなぐ接線の半径の数値を入力します。
今回は、54000を入力しています。
すると、上の画像のように、2つの円を結ぶ曲線が作成されました。

その後、4つのCurve | Curveを用意します。
そして、2つのList ItemとTangent ArcsのAとB端子を、Curve | CurveのAとB端子に、上の画像のようにつなげます。

すると、円と接線が交差する部分に、点が作成されます。

その後、2つのShatterのC端子に、List Itemをつなげます。
この際に、ShatterのC端子を右クリックし、Graftを選択してください。
また、Curve | CurveのtA端子を、Shatterのt端子に、2つ前の画像のようにつなげます。

すると、線が点の位置で分割されます。

2つのList Itemを用意します。
2つのShatterを、List ItemのL端子にそれぞれつなげます。
1つ目のList itemのi端子には1を、2つ目には0を入力します。
すると、上の画像のように、分割された片方の曲線を選択できました。

その後、2つのList Itemを、Join CurvesのC端子につなげます。
この際に、Join CurvesのC端子を右クリックし、Flattenを選択してください。

すると、分割された線と接線の線が結合されました。

その後、2つのCull Indexを用意します。
少し戻り、ScaleのG端子を、List ItemのL端子につなげます。
そして、2つのSeriesを、Cull IndexのI端子につなげます。
すると、上の画像のように、残った円の部分を取得できました。

その後、2つのCull IndexとJoin Curvesを、Mergeにつなげてデータを結合します。
この際に、MergeのR端子を右クリックし、Flattenに設定してください。

すると、このように3つのデータが結合されました。
これで、円同士をつなげることができました。
厚みを付ける

最後に、厚みを付けていきます。

Unit Zに、最初の頃に使用した、高さの数値の4000をつなげます。
そして、Unit Zを、ExtrudeのD端子につなげます。
すると、線が押し出されます。
この状態では開いているので、ExtrudeをCap Holesでつなげて閉じます。
すると、上の画像のように、内側の部分の厚みができました。

ベランダ部分を作成していきます。
Mergeを、Offset CurveのC端子につなげます。
Offset CurveのD端子には、オフセットする数値を入力します。
今回は、3000を入力しています。
すると、上の画像のように、線が外側にオフセットされました。

この際に、Offset Curveの右側のC端子を右クリックし、Flattenに設定してください。

その後、MergeとOffset Curveを、Ruled SurfaceのAとB端子につなげます。
すると、2つの線を結ぶサーフェスが作成されました。

その後、ベランダの厚みの数値を、Unit Zにつなげます。
今回は、1000を入力しています。
そして、Unit Zを、ExtrudeのD端子につなげます。
また、Ruled Surfaceを、ExtrudeのB端子につなげます。
すると、上の画像のように、ベランダ部分の厚みができました。
これで全体の完成なので、今回は以上になります。
Comment