GrasshopperでGraftについてお探しですね。
広告
Grasshopperのデータ階層を理解しよう!Graft・Flatten・Shift Pathの使い方
Grasshopperでパラメトリックモデリングを始めると、多くの人が最初にぶつかる壁があります。
それが「データ階層(ブランチ)」という考え方です。
リストの中のデータがどうグループ分けされているのかを理解して、思い通りにデータを組み合わせるには、Graft、Flatten、Shift Pathといった機能の使い方をしっかり押さえておく必要があります。
この記事では、単なる機能の説明だけでなく、これらがデータツリーにどんな変化を起こすのか、実際の作業でどう役立つのかを、できるだけわかりやすく解説していきます。
データ階層(ブランチ)って何?なぜ大事なの?
Grasshopperのデータ構造は、大きなキャビネットの中に複数の引き出しがあって、さらにその中に個別の書類が入っている状態をイメージするとわかりやすいです。
シンプルなリスト1つだけなら簡単なんですが、たとえば複数の曲線から複数の点を作って、それらを組み合わせて面を張る…みたいな複雑な作業をすると、データは自動的に複数のブランチ(引き出し)に分かれて保存されます。
このデータツリーの仕組みをちゃんと理解しないまま作業を進めると、思ってもみなかった点同士がつながってしまったり、エラーが出てモデル全体が崩れてしまったりします。
こういった複雑なデータツリーを自分の思い通りに整えるために使うのが、Graft、Flatten、Shift Pathといった操作なんです。
Grasshopperでは、入力側と出力側のデータ階層の形が合っていないと、データ同士がうまくペアになってくれません。
Param Viewerなどを使って今のデータがどんな構造になっているかを確認しながら、階層を深くしたり浅くしたり、不要な階層を削ったりする技術を身につけることが、初心者から一歩抜け出すための大事なポイントになります。
Graft(グラフト)でデータを細かく分ける
Graft(グラフト)は、同じブランチ(引き出し)の中に入っている複数のデータを、それぞれ別々の新しいブランチに分けてくれる機能です。
たとえば、1つのブランチに5つの点が入っているとします。
ここにGraftを使うと、1つの点だけが入った5つの新しいブランチができあがります。
つまり、データツリーの階層が1つ深くなって、より細かく分割されるわけです。
コンポーネントを置いて使う方法もありますが、入力端子や出力端子を右クリックして出てくるメニューから直接「Graft」を選ぶこともできます。
Graftが活躍するのは、違うデータ同士を複雑に組み合わせたいときや、個別の処理を並行して行いたいときです。
具体的には、こんな場面で使います。
* X方向とY方向の点リストを総当たりで組み合わせてグリッドを作りたいとき
* 複数の曲線に対して、それぞれ違うスケールや回転角を個別に適用したいとき
* 後の処理でリスト内のデータが混ざらないように、安全に隔離しておきたいとき
このように、Graftで階層をずらす操作は、Grasshopperでデータのマッチングルールを正確にコントロールするための強力な武器になります。
Flatten(フラッテン)で全部まとめて一括処理
Flatten(フラッテン)は、細かく分かれた複数のブランチを全部取っ払って、中に入っている全てのデータを1つのブランチ(リスト)にまとめてくれる機能です。
Graftが引き出しの中身をさらに小分けにする作業だとすれば、Flattenは全ての引き出しの中身を机の上にバーッと出して、1つの大きな束にする作業といえます。
Grasshopperのキャンバス上でワイヤーが二重の破線になっている場合、それはデータが複数のブランチに分かれているサインですが、Flattenを使うと一本の太い実線(単一のリスト)に変わって、データ構造がすごくシンプルになります。
Flattenの一番のメリットは、バラバラになったデータに対して一気に同じ処理をかけられることです。
複数の曲線から抽出したたくさんの点データを、別々のブランチのまま処理しようとすると曲線ごとに計算されてしまいますが、Flattenで1つのリストに統合すれば、全体の点群に対してバウンディングボックスを作ったり、一番高い位置にある点だけを抽出したりする処理がとても簡単になります。
ただし、一度Flattenしてしまうと元の階層構造に戻すのは難しいので、データの関連性を保ったまま処理したい場合は、安易に使わない方がいいです。
Shift Path(シフトパス)で階層を調整する
Shift Path(シフトパス)は、データツリーの階層構造(パス)を指定した数だけ削り落として、データをより浅い階層にまとめるためのコンポーネントです。
Flattenが全ての階層構造を強制的に「ゼロ(単一リスト)」にしてしまうのに対して、Shift Pathは例えば「3階層あるデータを2階層にする」みたいに、構造の段階を保ちながらデータのグループ分けを変更できるのが大きな特徴です。
入力する値によって削る階層の深さを調整できて、深い階層から順番に取り除くか、浅い階層から取り除くかもコントロールできます。
これによって、不要な細分化を解消しつつ必要なグループ分けは残せるので、データツリーを整理するときにすごく便利です。
実際の作業でShift Pathが本領を発揮するのは、いろんな操作を重ねて無駄に深くなってしまったデータツリーを、他のデータ構造と合わせるために整える場面です。
たとえば、{0;0;1}や{0;0;2}といったパス構造をShift Pathで1つ削ると、全部{0;0}という共通のパスにまとまって、バラバラだったデータが1つのリスト内で順番に並び直します。
Graftと組み合わせて使うことで、単なるFlattenによる結合では不可能なレベルでの細かいリスト操作ができるようになり、Grasshopperでのパラメトリックモデリングの自由度と正確性がグッと高まります。
まとめ
データ階層の操作は最初は難しく感じるかもしれませんが、Param Viewerで構造を確認しながら少しずつ試していけば、必ず使いこなせるようになります。
Graft、Flatten、Shift Pathの3つの使い分けができるようになれば、Grasshopperでできることの幅が一気に広がりますよ!
広告
