【集中講座】Grasshopperコンポーネント基礎:Image Sampler

Grasshopperコンポーネント基礎講座では、Grasshopper Indexページで紹介されているコンポーネントを解説していきます。

第2回目は「Image Sampler コンポーネント」です。

Image Samplerコンポーネントってなあに?

[Image Sampler]コンポーネントは簡単にいうと、
入力された座標値に、読み込んだ画像のRGB、HSL、明度情報等の値を出力します。
好きな写真の色情報や、アルファチャンネルの情報をもとにジオメトリを作成できます。

どうやって使うの?

実際に使ってみましょう。
写真から明度情報を出力して、「明度によって半径の違う円」を作成してみます。

Step1

まず[Image Sampler]コンポーネントに好きな画像をドラッグします。
明度情報を出力したいので、Channelを「Colour brightness」(一番右)のアイコンに設定します。
▼Wクリックするとが画像のx/y範囲や出力する情報を設定できます。

今回は画像のピクセル数をそのままxとyのドメインに利用しています。

Step2

[Construct Point]コンポーネントと[Series]コンポーネントを使って座標を入力します。
[Construct Point]は、指定したx/y/zの座標をポイントとして出力するコンポーネントです。
ただ、そのまま値を入力すると一直線に座標をとってしまうので[Graft] して階層を作成します。
▼Graftしていないリスト

 [Xのリスト0番&Yのリスト0番]、[Xのリスト1番&Yのリスト1番]、…という組合せで出力されています。
▼x端子を右クリックしてGraftしたリスト

 [Xのリスト0番&Yのリスト0~4番]、[Xのリスト1番&Yのリスト0~4番]、…という組合せで出力されています。

 [Series]は、指定した値でカウントアップしていくリストを出力するコンポーネントです。
S端子に[開始する値]を、N端子には[ステップ数]を、C端子には[リスト総数]を指定します。
 [Series]コンポーネントを[Construct Point]コンポーネントのx端子・y端子に接続します。
▼[0]から始まり[3]ずつ大きくなる、総数[300]のリストをもとにしたポイントが作成されました

 [Image Sampler]で指定した画像の範囲に合うようにポイントを展開します。

Step3

Step2で作成したポイント群を中心にして円を作成するので[Circle]コンポーネントを繋ぎます。
また、このポイント群の座標から画像の明度を出力するために[Image Sampler]コンポーネントを接続します。

結果を見ると円の展開されている範囲や、明度が意図した結果と異なっています。
明度の高いところは円の半径が大きく、明度の低いところは半径が小さく出力されています。

次のStepで[Remap Numbers]コンポーネントを使ってこれを反転させます。

Step4

[Remap Numbers]コンポーネントは、[数値リスト]を[もとの範囲]から[指定した範囲]に並べ替えるコンポーネントです。
V端子には数値のリストを入力します。今回の場合は[Image Sampler]コンポーネントの出力端子と繋ぎます。
S端子にはリストが持つもとの範囲を入力します。GHでは範囲を〇〇 to 〇〇という形式で定義します。
今回は[Bounds]コンポーネントを使って、リストの最小値から最大値までの範囲を出力します。
T端子で並べ替える範囲を指定します。今回は明度を反転させたいのでPanelコンポーネントで[1 to 0]と入力します。

 [Bounds]コンポーネントが出力している値を見てみると、Step2でGraftしたことで余計な階層が作られていることがわかります。
コンポーネントによっては、階層に反応して結果が変わる場合があるので、[Flatten]して階層を取り除きます。
▼[Construct Point]コンポーネントの出力端子を右クリックして[Flatten]します
 

これで結果を確認してみましょう。

今度は思った通りにできました。
明度の高いところは小さな半径で、明度の低いところは大きな円で出力されています。
円の展開される範囲もピクセル数に一致しました。

最後に・・・
[Graph mapper]コンポーネントを繋ぐことで、グラフで視覚的に出力値を操作できます。
[Graph mapper]は入力された複数の値の範囲をグラフで表示し、かつグラフ上でコントロールできるコンポーネントです。

今回は[Image Sampler]コンポーネントをメインに、
[Remap Numbers]、[Bounds]、[Graph Mapper]コンポーネントを紹介しました。

▼Grasshopperコンポーネント基礎講座②Image Samplerコンポーネントを動画で見る▼

~スキルアップ集中講座TOP~