Grasshopperの計算式についてお探しですね。
広告
Grasshopperの四則演算をスッキリ整理!Expressionで計算式をまとめるテクニック
Grasshopperでパラメトリックなモデリングをしていると、スライダーの数値を調整したり、オブジェクトの比率を変えたりするために、足し算や割り算といった計算が頻繁に必要になりますよね。
でも、計算するたびに専用のコンポーネントを置いていくと、あっという間にキャンバスが配線だらけになって、「あれ、これ何してたんだっけ?」と自分でも分からなくなってしまうことはありませんか?
この記事では、Grasshopperでの基本的な四則演算(足し算・割り算・合計)のやり方から、数式を直接書いてプログラムをスッキリさせる「Expression」の便利な使い方まで、詳しく解説していきます。
Grasshopperの四則演算の基本(足し算・割り算)
Grasshopperで数値の計算をするには、まずMathタブにある演算用のコンポーネントを使うのが基本です。
視覚的に分かりやすく、足し算や割り算といった四則演算を組み立てることができます。
たとえば、足し算をしたいときは「Addition」コンポーネントを使います。
A端子とB端子にそれぞれ数値を入れると、R端子(Result)から2つの値を足した結果が出てきます。
同じように、割り算なら「Division」コンポーネントを使って、A端子の数値をB端子の数値で割った結果を取得できます。
これらの演算コンポーネントは機能がシンプルで分かりやすいので、ビジュアルプログラミングが初めての人でもすぐに使えるのが大きなメリットです。
ただ、計算が少し複雑になってくると困ったことが起きます。
足し算の後に掛け算をして、さらに割り算をする…といった具合に、複数のコンポーネントを数珠つなぎにしなければならなくなるんです。
計算の手順が長くなるほどキャンバスのスペースを使ってしまい、たくさんのワイヤーが交差して見づらくなってしまいます。
なので、まずはこれらの基本コンポーネントの役割と動きをしっかり理解した上で、後で紹介するもっと効率的な方法へステップアップしていくのがおすすめです。
複数の数値をまとめて計算する「Mass Addition(合計)」の使い方
2つの数値を足すだけじゃなくて、複数の数値が入ったリスト全体の合計を求めたいときは「Mass Addition」コンポーネントがとても便利です。
Grasshopperでモデリングをしていると、分割した曲線の各セグメントの長さや、作った複数のポリゴンの面積などを、リストデータとしてまとめて扱うことがよくあります。
それら全部の合計を計算したいとき、このMass Additionが活躍してくれます。
数値リストをコンポーネントの入力端子につなぐだけで、自動的に全部の要素を足し合わせて、一瞬で合計値を出してくれるんです。
さらに、Mass Additionには最終的な合計だけじゃなく、計算の途中経過を出力する「Pr(Partial Results)」という便利な端子もあります。
この端子を使うと、リストの数値を1番目、1番目+2番目、1番目+2番目+3番目…という風に、順番に累積して足していった結果を新しいリストとして取得できます。
この機能は、オブジェクトを徐々に間隔を広げながら並べたり、数列に基づいたパターンを作ったりするときにとても役立ちます。
リストのデータ構造への理解と合わせてMass Additionを使いこなせるようになると、Grasshopperで表現できるデザインの幅がグッと広がりますよ。
キャンバスを整理する「Expression」の書き方
計算のロジックが複雑になって、標準の演算コンポーネントだけではキャンバスがごちゃごちゃになってしまう…そんな問題を根本から解決してくれるのが「Expression」コンポーネント(またはEvaluateコンポーネント)です。
この機能を使うと、普通のプログラミング言語と同じように、数式を直接文字で書いて計算を実行できます。
キャンバスをダブルクリックして検索窓に「Expression」と入力してコンポーネントを呼び出すと、最初は入力側の変数端子がxとyの2つ用意されています。
コンポーネント本体をダブルクリックするか、右クリックメニューから設定画面を開くと、専用の数式エディタが立ち上がります。
ここに「x + y / 2」といった具体的な計算式を自由に書いていけます。
変数の数はズームインして表示されるプラスマイナスボタンで自由に増やしたり減らしたりできるので、3つ以上のパラメーターを使った複雑な計算も、たった1つのコンポーネントにスッキリまとめられます。
計算式には単純な四則演算だけじゃなく、sinやcosなどの三角関数、絶対値、平方根といった高度な数学的な関数も使えます。
数式エディタの画面には使える関数の一覧と簡単な説明も載っているので、正しい関数名や書き方が分からないときでも調べながら入力できます。
Expressionを積極的に使うことで、スパゲッティ状態になりがちなGrasshopperのプログラムを、見やすくてメンテナンスしやすい状態に保つことができますよ。
入力端子のExpressionを活用してさらにスマートに計算するコツ
Expressionによる数式の記述は、独立した専用コンポーネントとして使うだけじゃなく、他のコンポーネントの入力(Input)端子に直接組み込んで使うこともできます。
実はこのテクニックこそが、Grasshopperのキャンバスを極限までシンプルに保ち、作業効率を劇的に上げるための強力な武器なんです。
数値を入力する端子を右クリックすると、メニューの中に「Expression」という入力欄があります。
ここに直接簡単な計算式を書き込むことで、事前の演算用コンポーネントを一切置かずに、計算結果だけをダイレクトに渡すことができるんです。
**ポイントはこんな感じ:**
* 入力される値自体を暗黙の変数「x」として扱える
* 足し算なら「x+5」、割り算なら「x/2」のように書く
* 1つのコンポーネントの複数の入力端子に、それぞれ違う計算式を独立して設定できる
例えば、数値スライダーから得た値を常に半分(1/2)にしてから次の処理に渡したい場合、間にDivisionコンポーネントを挟むんじゃなくて、受け取る側の端子のExpression欄に「x/2」と書きます。
これで、ワイヤーの直接的なつながりを保ったまま、内部的に自動で計算が行われます。
Expressionが設定された端子には、小さなアスタリスク(*)のマークが表示されるので、そこで何か計算が行われていることも視覚的に確認できるようになっています。
ただし、あまりにも長くて複雑な数式を端子に直接書き込んでしまうと、後から見返したときにどんな計算ロジックが隠れているのか分かりづらくなるというデメリットもあります。
なので、端子への直接入力は簡単な四則演算や単位変換くらいにとどめておいて、複雑なものは専用のExpressionコンポーネントに任せる、という使い分けがスマートなプログラムを作る最大のコツです。
広告
