Grasshopperの延長についてお探しですね。
広告
RhinocerosとGrasshopperでカーブ上に点を配置する方法を完全マスター
RhinocerosとGrasshopperを使ったパラメトリックモデリングでは、カーブ(曲線)の上に何かを配置する作業がとてもよく出てきます。
でも、「カーブを指定した数で分けたいんだけど…」「きっちり等間隔で点を置きたい」「カーブを伸ばしてから点を打ちたい」といった場面で、どうすればいいか迷ってしまう人は意外と多いんです。
この記事では、Grasshopperの基本中の基本である「Divide Curve」の使い方から、カーブを延長する「Extend Curve」との組み合わせ方、そして実際の作業で役立つ等間隔配置のコツまで、わかりやすく解説していきます。
思い通りの形を作るための基礎をしっかり固めていきましょう!
まずは基本から!「Divide Curve」でカーブを分割しよう
Grasshopperで曲線を分割して点を配置するとき、一番基本になるのが「Divide Curve」というコンポーネントです。
これは、指定した「分割数」に合わせてカーブ上に点を作ってくれる便利なツールです。
使い方はシンプル。
「C (Curve)」の入力端子に対象の曲線をつないで、「N (Count)」に分割したい数(たとえば10)を入れると、カーブ全体が10個のセグメントに分かれるように11個の点ができあがります。
とってもわかりやすくて使いやすいコンポーネントですが、出てくるデータの意味をちゃんと理解しておくことが大切です。
Divide Curveの出力端子には、作られた点の座標リストである「P (Points)」のほかに、「T (Tangents)」と「t (Parameters)」というものがあります。
「T」からは、それぞれの分割点でのカーブの接線ベクトル(曲線の進む方向)が取得できます。
これは、分割点に置くオブジェクトの向きをカーブの流れに合わせたいときに必須のデータです。
「t」からは、カーブのドメイン上でのパラメータ値が取れて、あとでEvaluate Curveなどと組み合わせるときに便利です。
このように、Divide Curveは単に点を打つだけじゃなく、その後のモデリングに必要なベクトル情報やパラメータ情報も一緒に取得できる優れものなんです。
ただし、「指定した数で分割したい」のではなく「指定した距離ごとに分割したい」という場合は、Divide Curveだと思った通りにならないことがあります。
この違いについては、次で詳しく説明しますね。
要注意!「Divide Curve」と「Divide Length」は全然違う
Grasshopperを始めたばかりの人がよくやってしまうミスの一つに、「等間隔に点を置きたい」という目的でDivide Curveを使ってしまうことがあります。
実は、Divide Curveは「カーブ全体の長さをN等分する」ように点を配置するので、結果的に点と点の間隔は同じになります。
でも、「カーブの長さに関係なく、必ず500mm間隔で点を置きたい」みたいな具体的な距離の指定には対応していないんです。
こういうときに活躍するのが「Divide Length」というコンポーネントです。
Divide Lengthは、「L (Length)」の入力端子に指定した実際の距離(たとえば500)をもとに、カーブの始点から順番に点を配置していきます。
これを使えば、曲線がどれだけ長くても、途中で曲がり方が変わっても、点と点の直線距離を正確に一定に保つことができます。
建物の外壁のルーバー(日よけの板)を配置したり、手すりの支柱を等間隔で並べたりする実際の作業では、Divide Lengthの方が適していることが多いです。
ただし、Divide Lengthを使うときの注意点として、カーブの全長が指定した長さの倍数になっていない場合、終点のところに「余り」ができてしまうことがあります。
たとえば、全長1200mmのカーブを500mm間隔で分割すると、始点から0、500、1000の位置に点が置かれて、残り200mmの区間には点が打たれません。
端っこまできれいに配置したい場合は、あらかじめカーブの長さを調整するか、次に説明するカーブの延長テクニックを使ってうまく調整する必要があります。
カーブを延長(Extend Curve)してから分割する実践ワザ
モデリングを進めていると、「今あるカーブの長さを少しだけ伸ばしてから、点を等間隔に配置したい」という場面が出てきます。
こんなときには、「Extend Curve」というコンポーネントを使って、曲線の始点や終点(または両方)を好きな距離だけ延長するテクニックが便利です。
Extend Curveは、元の曲線の性質を保ったまま形を広げられるので、Divide CurveやDivide Lengthの前に挟むことで、もっと自由に点を配置できるようになります。
Extend Curveを使うとき、「T (Type)」の入力端子の設定によって延長のされ方が大きく3つのタイプに分かれます。
これらをうまく使い分けることが、思い通りの形を作るポイントです。
* **Line(直線延長)**:元の曲線の端っこの接線方向に、まっすぐ直線として伸ばします。
* **Arc(円弧延長)**:端っこ付近の曲がり具合を保ちながら、円弧を描くように伸ばします。
* **Smooth(スムーズ延長)**:元の曲線の滑らかさを保ちながら、なめらかに伸ばします。
NURBSカーブの特性を活かしたいときに最適です。
たとえば、手すりのラインを壁面から少し飛び出させたいときや、分割配置したオブジェクトがカーブの端っこにぶつかるのを防ぎたいとき、Extend Curveで余裕を持たせてからDivide Curveなどを使います。
延長する距離はナンバースライダーなどでパラメトリックに調整できるので、デザインを微調整しながら最適な分割位置を探れるのがGrasshopperの大きな魅力です。
等間隔配置を応用したパラメトリックデザインのアイデア
Divide CurveやDivide Lengthでカーブ上に配置した点は、単なる座標データで終わらせず、他のオブジェクトを配置したり変形させたりするための基準点として活用することで本領を発揮します。
パラメトリックデザインでは、これらの分割点を起点にして、データツリーをうまく管理しながら複雑な形を作っていくのが一般的なやり方です。
代表的な応用例として、分割点に対して直方体(ボックス)や円柱(シリンダー)などの部材を一気に配置する方法があります。
このとき、Divide Curveなどから出てくる「T (Tangents)」の接線ベクトルを利用して、「Align Plane」などの平面を操るコンポーネントと組み合わせます。
これで、配置されるすべての部材がカーブの進む方向に対して自動的に直角になったり、特定の角度を向いたりするように設定できます。
曲面ガラスのフレーム割りや、うねるような形の屋根の垂木(たるき)などをモデリングするときに欠かせないテクニックです。
さらに一歩進んだ方法として、等間隔に配置した点のリストに対して「Graph Mapper」や「アトラクター(Attractor)」の考え方を組み込むこともできます。
たとえば、特定のポイント(アトラクターポイント)に近い分割点ほど配置する部材を太くしたり、Graph Mapperのサインカーブを使って部材の高さを波のように変化させたりする操作が簡単にできます。
カーブの分割と延長という基本的なテクニックをしっかりマスターすれば、Grasshopperでのデザインの可能性は一気に広がります。
ぜひこの記事を参考に、いろいろ試してみてくださいね!
広告
