今回は、グラスホッパーで放物線を描くように放射状に広がるルーバーの作成方法について解説します。
動画で見る
全体の様子





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





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

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






スケールが異なる複数の円を作成する
最初に、スケールが異なる複数の円を作成していきます。

CircleのR端子に、半径の数値を入力します。
今回は、1000の数値を入力しています。
すると、上の画像のように、半径1000の円の線データが作成されました。

すると、上の画像のように、円の中心点を取得できます。

次に、円のスケールを変える数値を作成していきます。
最終的に追加する円の個数の数値を用意します。
今回は、10の数値を用意しています。
その後、10の数値を、DivisionのB端子につなげます。
さらに、1の数値を、DivisionのA端子につなげます。
すると、1÷10=0.1の数値が出力されます。
その後、先程の10の数値と1の数値を、Additionにつなげます。
すると、10+1=11の数値が出力されます。
この数値は、最終的な円の個数の数値になります。
その後、Divisionを、SeriesのN端子につなげます。
さらに、Additionを、SeriesのC端子につなげます。
すると、0から0.1ずつ増加する数値が、11個作成されます。
これらの数値は、次に使うグラフのX軸の数値になります。

その後、Seriesを、Graph Mapperにつなげます。
この際に、Graph Mapperを右クリックし、Bezierに設定してください。
さらに、上の画像のようなグラフの形に設定してください。
すると、入力したX軸の数値に該当する、グラフのY軸の数値が出力されます。

その後、Graph Mapperを、Boundsにつなげます。
すると、Graph Mapperから出力される数値の、最小値と最大値からできる数値範囲が作成されます。
その後、Construct DomainのA端子に、1の数値を入力します。
さらに、Construct DomainのB端子に、任意の倍率の数値を入力します。
今回は、14の数値を入力しています。
すると、1 To 14という数値範囲が作成されます。
その後、Graph Mapperを、Remap NumbersのV端子につなげます。
さらに、Boundsを、Remap NumbersのS端子につなげます。
さらに、Construct Domainを、Remap NumbersのT端子につなげます。
すると、Graph Mapperから出力される数値が、1~14の数値の範囲内で値が変わります。

その後、Remap NumbersのR端子を、ScaleのF端子につなげます。
すると、上の画像のように、円のスケールを変えながら、円が複製されました。
これで、スケールが異なる複数の円を作成することができました。
各円を真上方向に移動させて各円をつなぐサーフェスを作成する
次に、各円を真上方向に移動させて、各円をつなぐサーフェスを作成していきます。

最初に、各円を真上方向に移動させる数値を作成していきます。
先程のSeriesを、新たなGraph Mapperにつなげます。
この際に、Graph Mapperを右クリックし、Bezierに設定してください。
すると、先程と同様に、入力したX軸の数値に該当する、グラフのY軸の数値が出力されます。

その後、Graph Mapperを、Boundsにつなげます。
すると、Graph Mapperから出力される数値の、最小値と最大値からできる数値範囲が作成されます。
その後、Construct DomainのA端子に、0の数値を入力します。
さらに、Construct DomainのB端子に、任意の最大の高さの数値を入力します。
今回は、5000の数値を入力しています。
すると、0 To 5000という数値範囲が作成されます。
その後、Graph Mapperを、Remap NumbersのV端子につなげます。
さらに、Boundsを、Remap NumbersのS端子につなげます。
さらに、Construct Domainを、Remap NumbersのT端子につなげます。
すると、Graph Mapperから出力される数値が、0~5000の数値の範囲内で値が変わります。

その後、Remap NumbersのR端子を、Unit Zにつなげます。
さらに、ScaleのG端子を、MoveのG端子につなげます。
すると、上の画像のように、各円が真上方向に移動しました。

すると、上の画像のように、各円の線データをつないでサーフェスが作成されます。
これで、各円を真上方向に移動させて、各円をつなぐサーフェスを作成することができました。
放射状に広がる線をサーフェスに投影する
次に、放射状に広がる線を作成し、サーフェスに投影していきます。

MoveのG端子を、List ItemのL端子につなげます。
さらに、-1の数値を、List Itemのi端子につなげます。
すると、上の画像のように、各円の中から、一番最後の大きな円の線データを取得できます。

その後、List Itemを、Divide CurveのC端子につなげます。
さらに、任意の分割数の数値を、Divide CurveのN端子につなげます。
今回は、100の数値を入力しています。
すると、上の画像のように、線を100等分割する位置に、点が作成されました。

その後、AreaのC端子とDivide CurveのP端子を、Lineにつなげます。
すると、上の画像のように、分割点と円の中心点をつなぐ直線が作成されました。

すると、上の画像のように、サーフェス上に直線が投影されました。
これで、放射状に広がる線を作成し、サーフェスに投影することができました。
投影された曲線からルーバーを作成する
最後に、投影された曲線からルーバーを作成していきます。

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

その後、Perp FramesのF端子を、Deconstruct Planeにつなげます。
すると、各作業平面のX・Y・Z軸のベクトルデータを取得できます。
その後、先程の辺の長さの60の数値を、DivisionのA端子につなげます。
さらに、2の数値を、DivisionのB端子につなげます。
すると、60÷2=30の数値が出力されます。
その後、Deconstruct PlaneのY端子とDivisionを、Multiplicationにつなげます。
その後、Multiplicationを、Negativeにつなげます。
これにより、入力した数値にマイナスが掛けられます。
さらに、RectangleのR端子を、MoveのG端子につなげます。
すると、上の画像のように、正方形の中心が曲線の真下に来るように移動しました。

すると、上の画像のように、正方形の線データをつなぐサーフェスが作成されます。

すると、両端の穴が閉じます。
これで完成です。
今回は以上になります。