今回は、グラスホッパーで滑らかなカーブで途切れるルーバーの作成方法について解説します。
動画で見る
全体の様子



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



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

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








基準となるサーフェスを作成する
最初に、基準となるサーフェスを作成していきます。

最初に、2つのConstruct Pointを用意します。
1つ目のConstruct Pointには、何も入力しません。
すると、原点の0,0,0の座標に、点が作成されます。
2つ目のConstruct PointのX端子には、X座標の数値を入力します。
今回は、10000の数値を入力しています。
すると、10000,0,0の座標の位置に、点が作成されました。

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

その後、Lineを、Divide CurveのC端子につなげます。
さらに、分割数の数値を、Divide CurveのN端子につなげます。
今回は、10の数値を入力しています。
すると、上の画像のように、線を10等分する位置に点が作成されます。
線を10等分する位置に点があるので、点の数は11個になっています。

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

その後、Seriesを、Graph Mapperにつなげます。
この際に、Graph Mapperを右クリックし、Graph typesからSineを選択してください。
さらに、1つ前の画像を参考に、グラフの形を設定してください。
すると、Graph Mapperから、入力したX軸の数値に該当するY軸の数値が出力されます。
その後、Graph Mapperを、Multiplicationにつなげます。
さらに、任意の倍率の数値も、Multiplicationにつなげます。
今回は、3000の数値を入力しています。

その後、Multiplicationを、Unit Yにつなげます。
さらに、Divide CurveのP端子を、MoveのG端子につなげます。
すると、上の画像のように、点が移動しました。

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

その後、真上方向に移動させる距離の数値を、Unit Zにつなげます。
さらに、InterpolateのC端子を、MoveのG端子につなげます。
すると、上の画像のように、曲線が真上方向に移動しました。

その後、InterpolateのC端子とMoveのG端子を、Ruled Surfaceにつなげます。
すると、上の画像のように、2つの曲線をつないでサーフェスが作成されました。
これで、基準となるサーフェスを作成することができました。
サーフェスの中心にカーブの基準を作成する
次に、サーフェスの中心にカーブの基準を作成していきます。

Ruled Surfaceを、Divide SurfaceのS端子につなげます。
さらに、Divide SurfaceのU端子に、任意の分割数の数値を入力します。
今回は、80の数値を入力しています。
さらに、Divide SurfaceのV端子に、1の数値を入力します。
すると、上の画像のように、サーフェスを縦方向に80個に分割する位置に、点が作成されました。
点の数は、サーフェスの上側と下側がそれぞれ81個になっています。

その後、Divide SurfaceのP端子を、PolyLineのV端子につなげます。
すると、上の画像のように、上下の点をつなぐ線が作成されます。

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

その後、PolyLineを、Curve Middleにつなげます。
すると、上の画像のように、線の中点を取得できます。

次に、中点を移動させる数値を作成していきます。
先程のサーフェスの分割数の80の数値を、DivisionのB端子につなげます。
さらに、1の数値を、DivisionのA端子につなげます。
すると、1÷80=0.0125の数値が出力されます。
その後、先程のサーフェスの分割数の80の数値を、Additionにつなげます。
さらに、1の数値も、Additionにつなげます。
すると、80+1=81の数値が出力されます。
これは、上側と下側の点の個数が81個なので、1を足しています。
その後、Divisionを、SeriesのN端子につなげます。
さらに、Additionを、SeriesのC端子につなげます。
すると、0から0.0125ずつ増加する数値が、81個作成されます。
この数値は、次に使うグラフのX軸の数値になります。

その後、Seriesを、Graph Mapperにつなげます。
この際に、Graph Mapperを右クリックし、Graph typesからSineを選択してください。
さらに、1つ前の画像を参考に、グラフの形を設定してください。
すると、Graph Mapperから、入力したX軸の数値に該当するY軸の数値が出力されます。
その後、Graph Mapperを、Boundsにつなげます。
すると、最小値と最大値の数値範囲が出力されます。
その後、任意の数値を、Negativeにつなげます。
今回は500をつなげているので、-500の数値が出力されます。
その後、Negativeを、Construct DomainのA端子につなげます。
さらに、500の数値を、Construct DomainのB端子につなげます。
すると、-500 To 500という数値範囲が作成されます。
その後、Graph Mapperを、Remap NumbersのV端子につなげます。
さらに、Boundsを、Remap NumbersのS端子につなげます。
さらに、Construct Domainを、Remap NumbersのT端子につなげます。
すると、Graph Mapperから出力される数値が、-500~500の数値に変わりました。

その後、Remap Numbersを、Unit Zにつなげます。
さらに、Curve Middleを、MoveのG端子につなげます。
すると、上の画像のように、中点が移動しました。

その後、上下に移動させる数値を、Negativeにつなげます。
今回は、500の数値を入力しています。
その後、2つのUnit Zを用意します。
500の数値とNegativeを、それぞれUnit Zにつなげます。
その後、2つのMoveを用意します。
先程のMoveのG端子を、新しい2つのMoveのG端子につなげます。
さらに、2つのUnit Zを、それぞれ新しいMoveのT端子につなげます。
すると、上の画像のように、点が上下に移動しました。
これで、サーフェスの中心にカーブの基準を作成することができました。
上下から基準のカーブをつなぐ線を作成する
次に、上下から基準のカーブをつなぐ線を作成していきます。

PolyLineを、End Pointsにつなげます。
すると、先程の縦方向の線の両端の点を取得できます。
その後、2つのLineを用意します。
そして、上の画像のように、End PointsのSとE端子と、2つのMoveのG端子を、2つのLineにつなげます。

すると、上の画像のように、上下から基準のカーブをつなぐ線を作成することができました。

すると、上の画像のように、線データを結合することができました。
これで、上下から基準のカーブをつなぐ線を作成することができました。
直方体のルーバーを作成する
最後に、直方体のルーバーを作成していきます。

Mergeを、Perp FramesのC端子につなげます。
さらに、1の数値を、Perp FramesのN端子につなげます。
すると、各線の両端に、作業平面が作成されます。
その後、Perp FramesのF端子を、RectangleのP端子につなげます。
さらに、辺の長さの数値を、RectangleのXとY端子に入力します。
今回は、XとY端子のどちらにも50の数値を入力しています。
すると、上の画像のように、線の両端に正方形の線データが作成されました。

その後、Perp FramesのF端子を、Deconstruct Planeにつなげます。
すると、作業平面の原点の点データを取得できます。
さらに、RectangleのR端子を、Areaにつなげます。
すると、正方形の中心点の点データを取得できます。

その後、AreaのC端子を、Vector 2PtのA端子につなげます。
さらに、Deconstruct PlaneのO端子を、Vector 2PtのB端子につなげます。
すると、正方形の中心点から、作業平面の原点までのベクトルデータを取得できます。
その後、Vector 2PtのV端子を、MoveのT端子につなげます。
さらに、RectangleのR端子を、MoveのG端子につなげます。
すると、上の画像のように、正方形の線データが、作業平面の原点を中心にする位置に移動しました。

すると、上の画像のように、四角形の線データをつないで直方体が作成されました。
その後、LoftをCap Holesにつなぎ、穴を塞ぎます。
これで、直方体のルーバーを作成することができました。
これで完成です。
今回は以上になります。
Comment