【集中講座】Grasshopperアルゴリズムを簡単にRhinoコマンド化! Rhino7の新機能<Grasshopper Player>

  • 作成したGrasshopper(以下、GH)アルゴリズムを実務などで繰り返し使用する方や、開発したGHアルゴリズムやスクリプトを他のRhinoユーザーに提供する方向け
  • 難しいプログラミングなどを行わずにGHだけでオリジナルのRhino上で動くプログラムが作成できます
  • Grasshopper PlayerはRhino7から実装された機能です
  • GHを起動し別ウィンドウで操作する必要がないため、
  • 普段GHを扱わない人との自作のアルゴリズムの共有が容易となります
  • ここではGrasshopperアルゴリズム作成~Rhinoでの実行方法までご紹介します

➀ Grasshopper Playerとは

Grasshopper Playerは、Rhino7から新しく追加された機能で、作成したGH定義ファイルを簡易的にRhinoコマンド化・プラグイン化することができる機能です。
Grasshopper Player用のコンポーネントは、GHのParamsタブのUtilグループから確認できます。

② 実際に使ってみる

「円を描いて押し出す」という簡単なGHアルゴリズムを、
Grasshopper Playerを使ってRhinoで実行可能なプログラムにしてみます。

Step1

GHを起動し、アルゴリズムを通常通り作成します。
以下の例は、中心点、半径、高さを入力パラメータとし、[Circle] → [Extrude] の順に組み合わせています。

Step2

Rhinoコマンドとして実行する際の入力値および出力値としたいパラメータの端子に
GrasshopperPlayer用コンポーネントを挿入します。
「Get ~~」 という名称のコンポーネントが入力値や入力オブジェクトを設定するコンポーネント、
「Context ~~」という名称のコンポーネントが出力値や出力オブジェクトを設定するコンポーネントです。

Step3

コマンド実行時にプロンプトに表示される文章を設定します。
Getコンポーネント上で右クリック、「Prompt…」を選択し、文章を入力します。
中心点、半径、高さ、それぞれプロンプトを設定します。

▼記入例

Step4

すべて完了したら通常通りGH定義ファイルを保存します。
ファイル名や保存先は任意で構いません。ここでは「GhPlayer.gh」 という名称で保存しています。

Step5

Rhinoに戻って、[GrasshopperPlayer]コマンドを実行し、先ほど保存したGH定義ファイルを開きます。

Step6

GH定義ファイルで設定したプロンプトが表示されるので、それに合わせて値や座標を入力します。
このプログラムはGHがベースとなっているため、リスト入力のように複数の値を入力できます。入力を終了したい場合は空欄のままでEnter(あるいは右クリック)を押します。

以下が、順番に必要な値を入力して得られた結果です。
このようにGHを開かずに、GHアルゴリズムを使ってBakeまで行ったような結果を得ることができます。

「自分で作ったGHツールを他の人にも使ってもらいたいけど、普段GHを使わない人にはハードルが高そう」 という場合も、この方法ならRhinoのコマンドのように扱えるので共有しやすくなるかもしれません。

③ さらに使いこなす

入力値オプション

Getコンポーネントには、入力オブジェクトの種類に合わせて、入力する値の個数や値の大きさの最小値、最大値を設定するためのオプションがあります。


<オプション例>

  • At least 入力オブジェクトの個数の最小値
  • At most 入力オブジェクトの個数の最大値(設定しておくとEnterを押さなくても次の入力へ移る)
  • Minimum 入力値の下限
  • Maximum 入力値の上限

「At most=1」とし入力値を1つに限定、さらにGH定義ファイル内でGetコンポーネントに値を1つ繋いでおくと、その値をコマンド実行時の初期値とすることができます。


ただし、初期値として設定できるのは、数値または文字列の場合のみです。

既存のオブジェクトを読み込む

上記までの例では、中心点を入力する際、点の位置をクリック、あるいは座標値で指定しました。
このように新たに指定し入力するのではなく、既にRhino上に存在するオブジェクトを読み込みたい場合は、[Get Geometry]コンポーネントを使用します。

[Get Geometry]コンポーネントでは、オプションで入力できるオブジェクトの型がチェックボックスで指定できます。
画像は、入力オブジェクトを 「Points(点)」 のみに限定した例です。

④ 動画でチェック

②で作ったアルゴリズムの [Get Point] を [Get Geometry] に変更 → GrasshopperPlayer実行

McNeel公式サイトでもGrasshopper Playerのサンプルがいくつか公開されていますので是非お試しください。
https://www.rhino3d.com/jp/features/grasshopper/player/