久しぶりの投稿です。
グラデーションのかけ方は様々なやり方があって、その都度、最適な方法を模索することが多いですが、シンプルに縦と横方向に四角形の大きさを変化させたものを作ってみました。
Step.1 適当なサーフェスを用意する
・手始めに、Rhino上で適当なサーフェスを用意します。
Step.2 Grasshopperに取り込む
・Grasshopperに取り込みます。
・サーフェスが複数枚の時はBrep Joinコンポーネントを使って1つのBrepにします。
・同時に、外周のエッジも取得して、Join Curvesコンポーネントを使い閉じた曲線にします。
Step.3 XY平面上にサーフェスを作成する
・Step.2で取り出したカーブをXY平面上に投影し、変曲点で分割して4本のカーブにした後、Network Srfコンポーネントを使ってXY平面上にサーフェスを作成します。
Step.4 サーフェスを縮小させる(任意)
・Step.3で作ったXY平面上のサーフェスをお好みで縮小させます。
Step.5 サーフェスの細分化
・Lunch Boxプラグインを使って、XY平面上のサーフェスを細かく分割します。
・Quad Panelsコンポーネントを使って四角形に区切り、同時にGrid Structureコンポーネントを使って四隅の点も取り出しておきます。
Step.6 横一行ごとに階層分けする
・次に、Step.6で細分化したサーフェスの中心点を求めつつ、階層分けする方法を考えていきます。
・四角形の大きさをまずは縦方向にグラデーションさせることを考えた時、階層の分け方としては、上の図の緑色で示している、List Itemの0番目が縦に色がついている状態が理想です。
(横行ごとに階層分けすると、左端の0番目を選択するので縦列に色が付くため。)
その横に示しているParam Viewerウィンドで{0}から{7}まで、合計8階層分となります。
・今回用意したサーフェスでは、もともとのUV方向の組み合わせが逆転していたため、上の図のように横行(濃い赤色)が0番目となってしまっているので、Flip Matrixコンポーネントを間に挟み、行と列を反転させる処理をかましています。
・元のサーフェスのUVの組み合わせをあらかじめ逆転させておく方法でも結果は同じになります。
Step.7 縦方向の四角形の1辺長さのグラデーションを求める
・今回のケースでは1辺の最小の長さを15mmとし、1.9mmずつ増える設定にしてます。このあたりはお好みの数値になるようスライダーで設定しておきます。
・横行の数はTree Statics, List Lengthコンポーネントを直列につなぐと階層の数値をとることができます。今回は8階層分です。
・ついでに角Rの数値も徐変させるために数列を求めています。細分化した四角形の中心点と四隅の点、それぞれに長さと角Rの徐変量を求めるので合計4つのSeriesコンポーネントを使って数列を求めています。
Step.8 横方向の徐変量を求める
・続きまして、今度は横方向の徐変量を求めて行きます。
・今回のパターンでは横方向に30個の四角形が並びます。一番左側の四角形が最も小さく、右にいくにつれて徐々に大きくなり、7個目から最大の大きさとなり、再び右端で最小の大きさに戻るというケースです。
・大きさの徐変を左と右でそれぞれ6個分で表現しますので、スライダーの数値を2倍にした後、個数のつじつま合わせのため2を引き、この数値を使ってDuplicate Dataコンポーネントを使ってStep.8で求めた大きさを複製します。これが中央部分の最大の四角形の辺の長さとなり、16個分できます。
・左右の徐変量はConstruct Domainコンポーネントを使って最小と最大の辺の長さの範囲を作った後、Rangeコンポーネントを使って実際の徐変長さを求めます。
・最後に、Insert Itemコンポーネントを使って0番目の-1番目(リストの一番最後)に挿入すると、すべての四角形の長さが求まります。
Step.9 四角形を作る
・これまでに求めた数値を使い、XY平面上に四角形を作ります。
Step.10 大きさの微調整
・スケールをかけて大きさを微調整します。
Step.11 完成
・3Dサーフェスに投影して完了です。
0 件のコメント:
コメントを投稿