第0回 グラスホッパー習得へのロードマップ

0.はじめに


第0回ではまず、以下の4点を頭の中にインプットしていただきたいと思います。

 

1. グラスホッパーでできること

2. グラスホッパー習得のコツ

3. コンポーネントとは

4. グラスホッパーのインターフェース

 

本講習では、可能であれば、基本的なグラスホッパーの習得にとどまらず、構造解析用のプラグインであるKarambaや、多くのCAD・BIMに組み込めるプログラミング言語・Pythonの初歩的なところまで踏み込んでいきたいと思っています。建築の設計・施工においてはプログラミングはまだまだ浸透していませんが、PCを扱う以上、習得すれば便利なことがたくさんあります。学習の先にあるゴールを明確にイメージして、まずはグラスホッパーを効率よく習得していきましょう。

 

 

 

1.グラスホッパーでできること


グラスホッパーは、星の数ほど使い道があります。インターネット上に豊富なプラグインが公開されていますし、PythonやC#等のプログラミング言語を使って自分で新たな機能を付け加えることもできます。建築だけでなく、NC 加工機と組み合わせてアクセサリーを作る人もいれば、メディアートを制作する人もいます。グラスホッパーは非常に汎用性の高いツールなのです。全ての使い方を知ろうとすると大変です。gh公式サイトによれば、動作をつくるコンポーネントは3000個以上あります。)

 

よって講習は、可能な限り実務での作業に基づいて進めていきたいと思っています。受講生のみなさんに積極的に要望を出していただければそれに対応し、より有益な講習にしていけると思いますのでよろしくお願いします。基本的には、パラメトリックモデリング、情報の分析と整理、構造解析、最後に簡単なAI(機械学習)のモデル構築、この4つを自力で行えるようになることを目標に設定しようと思っています。

 

図1.グラスホッパーのレベル別目標

 

AI=機械学習というのは、ライノの外側で行った情報処理をグラスホッパーに持ってくるという意味です。時間がとれそうであれば、簡単なプログラムをトレースしてみるという内容で講習に組み込む予定です。講習の90%以上は下の2段(実務ですぐに使える技術)に関する部分になりますが、興味を持った領域をさらに深めたければ、是非質問してければと思います。

 

 

2.グラスホッパー習得のコツ


グラスホッパー習得のコツは2つです。

 

1. さっさとコンポーネントを覚える

2. とにかく触って遊ぶ

 

CADでいうコマンドに当たるものをグラスホッパーでは「コンポーネント」と呼び、この「コンポーネント」の中にあらゆる機能が詰まっています。グラスホッパーはコンポーネントに始まり、コンポーネントに終わるのです。このコンポーネントが頭に入っていれば、多くの場合、数学を考える必要もありません。もちろん複雑なジオメトリを解いたり、構造解析を行うのであれば、それに準じた数学は必要になると思いますが、基本的なグラスホッパーの習得には、講習で出てくるレベルの数学(法線や内積など)が理解できれば問題ありません。

 

ひとつ例を挙げてみましょう。

図2.コンポーネント

 

これは、「Surface Distance(PtSrfDis)」と呼ばれるコンポーネントで、以下の赤いサーフェスから、均等な距離のグリッド(点)を生成するものです。このサーフェスは適当に膨ませた曲面になっています。

 

 

図3.サーフェスのグリッド化

 

このような有機的な曲面を元に点群を描こうとすれば、通常のプログラミングなら少なくとも割り算ぐらいは必要になってきます。しかしグラスホッパーで重要なことは、「曲面上にグリッドを生成して点群にする」というコンポーネントに辿り着き、上記のように、そのコンポーネントを使うことができるかどうかです。そして、このコンポーネントを頭に入れるには、頑張って暗記するのはしんどいですよね。たくさん触って、動かして遊ぶようにして覚えるのがベストです。講習では、とにかくたくさんのコンポーネントに触れるようにしたいと思います。

 

 

 

3.コンポーネントとは


では、コンポーネントにはどのような種類があるのでしょうか。代表的なコンポーネントをいくつか見ていきましょう。(講習で詳しく解説します。)

 

Params


=パラメーター( parameter)の略で、データの入れ物として使われます。最初は、「Geometry」、「Data」、「Panel」の3つだけ覚えておけば問題ありません。

図4.Params

 

 

Maths


=算術に使います。数値的な計算に加えて、ジオメトリの計算もできます。

 

図5.Math

 

 

Sets


=データツリー(グラスホッパー上のデータ)の編集などに使います。Sets を使いこなせばグラスホッパー初級はクリアです。

図6.Sets

 

Vector


=ベクトルの操作を行います。グラスホッパーは全ての移動や編集にベクトルが必要なので、重要なコンポーネントです。

 


図7.Vector

 

Curves


=カーブを扱います。ライノよりも多くの機能があります。特に分析に関して多くのことができます。

 

 

図8.Curves

 

Surfaces


=サーフェスを扱います。カーブ同様、ライノよりも多様なサーフェスを扱うことができます。逆にライノでしか扱えないようなものもあります。

図9.Surfaces

 

4.最低限知っておくべきインターフェース


グラスホッパーのインターフェースは文字ではなくアイコンを多用しています。アイコンは慣れればわかりやすいですが、実際はグラスホッパーを使い慣れた人でも知らないような、言われなければ絶対わからないような「隠れコマンド」が多いです。講習の中では実務的に不要な物は極力排除して説明をします。別途資料としてグラスホッパーの「小技リスト」のようなページを作っておこうと思います。

 

保存とファイル管理


グラスホッパーの起動の仕方は、ライノの コマンドで「Grasshopper」と入力しEnter キーを押す、これだけです。

 

図10.起動

 

起動してまず行うことは「保存」です。「File」→「Save Documant」か、Ctrl +S です。グラスホッパーにはオートセーブ機能がありますが、保存を一度もしていないと大抵の場合復旧できません。起動したら保存、コレを癖にしておきましょう。グラスホッパーは1つのライノファイルに対して複数ファイルを同時に開く事ができませんが、仮保存のような形でいくつかのファイルをすぐに開けるようにストックしておくことができます。

 

 

図11.仮保存とストック

 

このようにストックしておく際にも、ファイル名がしっかりついていた方が使いやすいですよね。ここのストックに入れてある状態のファイルは、上書き保存をしないでも作業した状態をキープしておくことができます。複数のグラスホッパーコードをひとつのライノファイルで扱うことはよくあるので、このストックは非常に便利です。上書き保存をせずにストックしておいてライノ自体を終了しようとした場合、ライノの保存を確かめるポップアップが出てきた後に、グラスホッパーの保存を確かめるポップアップが出てきます。ここで保存マークが出ているファイルは上書き保存されていないので、もし変更を保存したければここでワンクリックで上書き保存をすることができます。ライノを閉じない限り、グラスホッパーの画面はもう一度開くと自動的に復旧します。

 

 

図12.gh の保存確認

 

ライノデータの読み込み


ライノ上にあるモデルをグラスホッパーで読み込むときは、先ほど紹介した「Prams」という種類のコンポーネントを使います。今回は「Geometry」コンポーネントを使ってライノ上のカーブをグラスホッパーで読み込ませてみましょう。まずライノで適当にカーブを2本描きます。

 

 

図13.ライノのカーブ

 

次に、グラスホッパーで「Geometry」コンポーネントをセットします。コンポーネントをセットする方法は「カンバス上で左ダブルクリックをしてコンポーネント名を入力をする方法」と「上のタブに並んでいるアイコンから選択する方法」があります。使いたいコンポーネントの名前が分かっていればコマンドで、どの種類でタブのどこにあるのかがわかればタブから選んでコンポーネントをセットすれば良いです。タブのアイコンの位置を覚えておく方が、名前を打ち込むよりも早くセットできるかもしれません。

 

 

図14.コンポーネントのセット

 

コンポーネントをセットしたらコンポーネントの上で右クリックをします。この右クリックメニューはコンポーネントによって違います。「Geometry」のコンポーネントで右クリックをすると「Set Multiple Geometries」というメニューが見つかると思います。これを押すとライノ上でジオメトリを選ぶように誘導されるので、選択してエンターを押す( もしくは右クリック) します。これでグラスホッパー上でline のデータが読み込まれます。

 

 

図15.ライノのジオメトリを読み込み

 

読み込みたいデータが一つの場合は「SetoneGeometry」でも良いですが、一つの場合でもエラーは出ないので、常に「SetMultipleGeometries」で良いかと思います。

 

 

 

コンポーネントをつなげる


続いて、このカーブを使ってグラスホッパーで少しモデルを触ってみましょう。「Divide Curve」をセットして、先ほどカーブを読み込ませた「Geometry」コンポーネントと下の図のようにつなげます。

 

 

図16.コンポーネントのつなげかた

 

 

ライノの画面を見ると、「Divide Curve」によってカーブが10等分されました。カンバス上で左ダブルクリックをして「12」と入力しエンターを押すと、12と表示された目盛が出てきます。ここで「DivideCurve」のNのところにこの目盛をつなげると、カーブの分割数を12に変えることができます。このように、コンポーネントは左側にある入力端子にジオメトリや数字などを繋げることで動作します。

 

 

図17.分割数の変更

 

コンポーネントによって生み出された新たなジオメトリや数字は右側の出力端子から取り出すことができます。「DivideCurve」の出力端子はP が「Points(点)」、T が「Tangent(接線ベクトル)」、tが「Parameters(パラメーター)」となっています。こうした中身は「Panel」コンポーネントで見ることができます(カンバスで「//」と入力すると出ます)。コンポーネントがたくさん出てきて混乱したときは、とにかくこのパネルで中身を確認します。パラメーターはデフォルトでは長さを表しますが、入力端子のC のところで右クリックをして「Reparameterize」をオンにすると、パラメーターはカーブの始点を0、終点を1とした時に点がいくつの場所にあるのかを表示すようになります。

 

 

図18.Reparameterize(左)とPanel(右)

 

では出力端子のP(点)を使って球をモデリングしてみましょう。「sphere」と入力して、球のアイコンをクリックします。

 

 

図19.sphere

「sphere」のコンポーネントを「Divide Curve」で作った点とつなげてR(半径)を0.7 とすると、以下のような球がモデリングされました。

 

 

図20.球のモデリング

 

表示の切り替え


球のモデリングができたので、これを使って「表示の設定」の仕方を見てみましょう。グラスホッパーの計算結果をライノで表示するには、「全表示モード」と「選択表示モード」の2つがあります。計算結果をスムーズに確認したり計算速度を上げるために、場合によって効率のよい「モード」がどちらかは変わってきます。

 

図21.カンバス右上にある「表示の設定」

 

デフォルトでは「全表示モード(図21左)」になっていて、選択(コンポーネットをクリック)するとモデルが緑になります。「選択表示モード(右)」にすると選択しなければ何も見えないので、特定のコンポーネントを見たい時に役立ちます。

 

 

図22.「選択表示モード」

 

ライノにデータを返す


最後に、グラスホッパーで作った球を今の状態ではライノで触れませんから、ライノで動かせるようにしてみましょう。この作業を「Bake」と呼びます。「Sphere」コンポーネットの上で右クリックをして「Bake」を選ぶとメニューが出てきて、どのレイヤーに「Bake」するか、グループ化するかなどを選ぶことができます。今回はそのままOKを押してみましょう。これでグラスホッパー上にしかなかった点はライノ上にベイクされ、ライノ上で触れるようになります。

 

 

図23.Bake

 

また、コンポーネントを選択した状態で中ボタンを押すとメニューが現れ、ここで「Bake」を示す目玉焼きアイコンを押すことでもベイクを行うことができます。この方法でベイクされたジオメトリはグループ化されません。

 

 

図24.目玉焼きアイコン

 

 

 

図25.ライノ上にベイクされた球

 

 

5.今回のまとめ


第一回は、グラスホッパーのイントロダクションを行いました。

 

1.グラスホッパーでできること


(1)パラメトリックモデリング
(2)設計情報管理
(3) 構造解析
(4) Python等の他言語、他プラットフォームとの連携

 

2.グラスホッパー習得のコツ


(1)コンポーネントをたくさん覚える
(2)遊ぶように触る

 

3.コンポーネント


(1)Paramas=入れ物
(2)Maths=計算
(3)Sets=ツリー編集
(4)Vector=ベクトル
(5)Curves=カーブ
(6)Surfaces=サーフェス

 

4.インターフェース


(1)保存の仕方(起動したら保存)
(2)ライノデータの読み込み方(「Params」コンポーネントで右クリックして「Set Multiple Geometries」)
(3)コンポーネントのつなげ方(左が入力端子、右が出力端子)
(4)表示の切り替え方(全表示と選択表示)
(5)ベイクの仕方(コンポーネントの上で右クリックか、中クリック)

 

*質問・要望等がありましたら、コメント欄かSlackでお願いします。

Leave a Comment