https://www.iaacblog.com/programs/parametric-skins-facade-of-regal-shoes-nudes-office/
今回は、グラスホッパーでREGAL SHOESの外観を再現しました。
動画で見る
全体の様子


上2枚の画像は、グラスホッパーの様子です。


上2枚の画像は、ライノセラス上に書き出した様子です。

上の画像は、最終的にレンダリングした様子です。
それでは、順番に解説していきます。
今回使用したグラスホッパーとライノセラスのデータダウンロードはこちら
ダウンロードできるデータのご利用に関しては、利用規約をご覧ください。
全体コンポーネント
z全体コンポーネント:①Construct Point ②Line ③Divide Curve ④Division ⑤Series ⑥Graph Mapper ⑦Multiplication ⑧Unit Y ⑨Move ⑩Interpolate ⑪Unit Z ⑫Dispatch ⑬Curve ⑭Curve Middle ⑮YZ Plane ⑯Mirror ⑰Flip Curve ⑱Merge ⑲Loft ⑳List Item ㉑Divide Domain² ㉒Isotrim ㉓Area ㉔XZ Plane ㉕Project ㉖Ruled Surface ㉗Surface Closest Point ㉘Vector 2Pt ㉙Extrude






波打つ曲線をつなぐサーフェスを作成する
最初に、波打つ曲線をつなぐサーフェスを作成していきます。

最初に、2つのConstruct Pointを用意します。
1つ目のConstruct Pointはそのままで、2つ目のX端子に、X座標の数値を入力します。
今回は、25000の数値を入力しました。
すると、上の画像のように、原点の0,0,0と25000,0,0の座標に、点が作成されました。

その後、2つのConstruct Pointを、Lineにつなげます。
すると、上の画像のように、2つの点をつなぐ直線が作成されました。

その後、Lineを、Divide CurveのC端子につなげます。
さらに、分割数の数値を、Divide CurveのN端子につなげます。
今回は、20の数値を入力しています。
すると、上の画像のように、直線を20に分割する地点に、分割点が作成されました。

次に、各点を移動させる数値を作成していきます。
先程使用した20の数値を、DivisionのB端子につなげます。
さらに、1の数値を、DivisionのA端子につなげます。
すると、1÷20=0.05の数値が出力されます。
その後、Divisionを、SeriesのN端子につなげます。
さらに、先程の20の数値を、SeriesのC端子につなげます。
すると、0から0.05ずつ増加する数値が、20個作成されます。
この数値は、次に使うグラフのX軸の数値になります。

その後、Seriesを、Graph Mapperにつなげます。
この際に、Graph Mapperを右クリックし、Graph typesからSineを選択してください。
そして、Sineのグラフを、上の画像のように設定します。
その後、Graph Mapperを、Multiplicationにつなげます。
さらに、任意の倍率の数値も、Multiplicationにつなげます。
今回は、1000の数値を入力しています。
すると、Graph Mapperから出力される数値に、1000の数値を掛けることができました。
その後、Multiplicationを、Unit Yにつなげます。
さらに、Divide CurveのP端子を、MoveのG端子につなげます。

すると、上の画像のように、各点が移動しました。

その後、MoveのG端子を、InterpolateのV端子につなげます。
すると、上の画像のように、各点をつなぐ曲線が作成されました。

次に、曲線を真上方向に複数移動させる距離の数値を作成します。
SeriesのN端子に、移動させる間隔の距離の数値を入力します。
今回は、1500の数値を入力しています。
さらに、移動させる個数の数値を、SeriesのC端子に入力します。
今回は、9の数値を入力しています。
すると、0から1500ずつ増加する数値が作成されました。
さらに、InterpolateのC端子を、MoveのG端子につなげます。

すると、上の画像のように、真上方向に曲線を複数移動することができました。

その後、MoveのG端子を、DispatchのL端子につなげます。
その後、DispatchのAとB端子に、Curveをつなげます。
すると、上の画像のように、奇数番目と偶数番目の曲線を、別々で取得できました。

この際に、DispatchのB端子の方のCurveを右クリックし、Graftに設定してください。

その後、DispatchのA端子の方のCurveを、Curve Middleにつなげます。
すると、上の画像のように、奇数番目の曲線の中点を取得できました。
その後、Curve Middleを、YZ Planeにつなげます。
すると、取得した中点の位置に、Y方向とZ方向からできる作業平面が作成されます。

その後、YZ Planeを、MirrorのP端子につなげます。
さらに、DispatchのA端子の方のCurveを、MirrorのG端子につなげます。
すると、上の画像のように、奇数番目の曲線がミラーされました。

この際に、Mirrorの右側のG端子を右クリックし、Graftに設定してください。
その後、MirrorのG端子を、Flip Curveにつなげます。
すると、曲線の向きを反転することができました。
これにより、ミラーで反対向きになっている曲線を、元の向きに戻せました。

その後、Flip CurveのC端子と、DispatchのB端子の方のCurveを、Mergeにつなげます。
すると、上の画像のように、奇数番目と偶数番目の曲線データを、結合することができました。

この際に、MergeのR端子を右クリックし、Flattenに設定してください。

すると、上の画像のように、曲線をつなぐサーフェスを作成することができました。
これで、波打つ曲線をつなぐサーフェスを作成することができました。
サーフェスを分割する
次に、サーフェスを分割していきます。

サーフェスを分割する数値を作成していきます。
先程使用したSeriesを、List ItemのL端子につなげます。
さらに、-1の数値を、List Itemのi端子につなげます。
すると、サーフェスの一番高い地点の高さの数値が出力されます。
今回の場合、12000の数値が出力されています。
その後、2つのDivisionを用意します。
1000の数値を、2つのDivisionのB端子につなげます。
そして、List Itemを、1つ目のDivisionのA端子につなげます。
さらに、X方向の幅の数値である25000の数値を、2つ目のDivisionのA端子につなげます。
すると、12000÷1000=12と25000÷1000=25の数値が出力されました。
この取得した数値を、比として使います。
その後、2つのMultiplicationを用意します。
任意の倍率の数値を、2つのMultiplicationにつなげます。
今回は、3の数値を入力しています。
その後、2つのDivisionを、Multiplicationにそれぞれつなげます。
その後、List Itemを使用した方のMultiplicationを、Divide Domain²のU端子につなげます。
そして、もう一方のMultiplicationを、Divide Domain²のV端子につなげます。
さらに、Loftを、Divide Domain²のI端子につなげます。
その後、Divide Domain²を、IsotrimのD端子につなげます。

すると、上の画像のように、サーフェスを分割することができました。
各地点のサーフェスから平面までの厚みを付ける
次に、各地点のサーフェスから、平面までの厚みを付けていきます。

平面のサーフェスを作成していきます。
加えて、最初の方に使ったLineを、MoveのG端子につなげます。

すると、上の画像のように、直線が一番高い地点まで移動しました。

その後、MoveのG端子とLineを、Ruled Surfaceにつなげます。
すると、上の画像のように、2つの直線をつなぎ、平面のサーフェスが作成されました。

すると、上の画像のように、分割された各サーフェスの中心点を取得できました。
すると、取得した点の位置に、X方向とZ方向からできる作業平面が作成されます。
その後、XZ Planeを、ProjectのP端子につなげます。
さらに、Isotrimを、ProjectのG端子につなげます。

すると、上の画像のように、分割された各サーフェスが、作成された作業平面に投影されました。

すると、上の画像のように、投影されたサーフェスの中心点を取得できました。

その後、AreaのC端子を、Surface Closest PointのP端子につなげます。
さらに、Ruled Surfaceを、Surface Closest PointのS端子につなげます。
すると、上の画像のように、中心点から平面のサーフェスに最も近い地点に、点が作成されました。

その後、AreaのC端子を、Vector 2PtのA端子につなげます。
さらに、Surface Closest PointのP端子を、Vector 2PtのB端子につなげます。
すると、中心点から、平面サーフェス上に作成された点までのベクトルデータを取得できました。
その後、Vector 2PtのV端子を、ExtrudeのD端子につなげます。
さらに、ProjectのG端子を、ExtrudeのB端子につなげます。
すると、上の画像のように、各地点のサーフェスから平面までの厚みを付けることができました。

これで完成です。
今回は以上になります。
Comment