Grasshopperのベクトルについてお探しですね。
広告
Grasshopperの「ベクトル」を初心者向けに分かりやすく解説!
Grasshopperを勉強し始めて、多くの人が「あれ?これどういうこと?」とつまずくのが「ベクトル(Vector)」です。
点や線みたいに画面にパッと表示されるわけじゃないので、「ちゃんと設定できてるのかな…」と不安になりますよね。
この記事では、Grasshopperでのベクトルって何なのか、点とどう違うのか、どうやって向きを決めるのか、そして画面に矢印として表示する方法まで、できるだけ分かりやすく説明していきます。
ベクトルが使えるようになると、自分の思い通りの3Dモデルが作れるようになるので、ぜひ最後まで読んでみてください!
ベクトル(Vector)って何?点(Point)とどう違うの?
Grasshopperでいう「ベクトル(Vector)」とは、簡単に言うと「向き」と「長さ(大きさ)」の2つの情報を持ったデータのことです。
高校の数学で習うベクトルと基本的には同じなんですが、3Dモデリングでは「どっちの方向に、どれくらい動かすか」を指示するために使います。
たとえば、オブジェクトを移動(Move)させたり、面を押し出し(Extrude)したりするときには、必ずこのベクトルが必要になるんです。
ベクトルをちゃんと理解していないと、作ったものが思わぬ方向に飛んでいっちゃった…なんてことになりかねません。
初心者がよく混乱するのが、「点(Point)」と「ベクトル(Vector)」の違いです。
点(Point)は、3D空間の中の「ここ!」っていう位置(座標)を表すデータで、それ自体に方向とか移動っていう意味はありません。
一方、ベクトルは「方向と移動する量」を表すデータで、どこから始まるとかいう特定の位置情報は持っていないんです。
つまり、ベクトルは空間のどこに置いても、向きと長さが同じなら全く同じベクトルとして扱われます。
この違いを理解するのがとっても大事です。
Grasshopperの中では、点もベクトルも「X, Y, Z」っていう3つの数字の組み合わせ(例えば{0, 0, 1}みたいな感じ)で表されます。
だから、Panelコンポーネントでデータの中身を見たときには、すごく似て見えちゃうんですよね。
でも、コンポーネントにつないだときの動き方は全然違います。
「ここに置きたい」ときはPoint、「この方向に動かしたい」ときはVectorを使う、というふうに使い分けを意識すると、エラーで悩むことが減りますよ。
ベクトルの「向き」と「長さ」を決める基本コンポーネント
Grasshopperでベクトルを作るには、いくつかの基本的なコンポーネントを使い分ける必要があります。
一番よく使うのは、「Unit X」「Unit Y」「Unit Z」っていう、軸方向を指定するコンポーネントです。
これらはそれぞれX軸、Y軸、Z軸のプラス方向を向いていて、長さが「1」のベクトル(単位ベクトルって言います)を出してくれます。
たとえば、オブジェクトを真上に動かしたいときは、「Unit Z」を使えばOK。
これが一番シンプルで確実な方法です。
もっと自由な方向のベクトルを作りたいときは、「Construct Vector」コンポーネントを使います。
これは、X、Y、Zそれぞれの方向にどれくらいの長さを持たせるかを、数値(Number Sliderとか)で個別に入力して、それらを組み合わせて1つのベクトルを作ってくれるんです。
斜め方向に押し出したいときとか、複雑な移動方向を細かくコントロールしたいときにすごく便利です。
入力する数値をマイナスにすれば逆方向のベクトルも作れるので、かなり自由度が高いですよ。
あと、実際の作業でよく使うのが「Vector 2Pt」コンポーネントです。
これは、スタート地点(A)からゴール地点(B)に向かうベクトルを自動で計算してくれる便利なやつです。
あるオブジェクトを別の場所まで正確に動かしたいとき、このコンポーネントを使えば、XYZの距離とか角度とかを自分で計算しなくて済みます。
2つの点をつなぐだけで、ピッタリな移動ベクトルが手に入るので、作業がめちゃくちゃ楽になります。
見えないデータを見えるようにする!ベクトルの表示方法(Vector Display)
ベクトルを使うときの最大の問題は、データそのものがRhinocerosの画面に表示されない(見えない)ことなんです。
カーブやサーフェスはGrasshopperでコンポーネントをつなげばすぐに赤い線や面として表示されますよね。
でも、ベクトルは単なる「向きと長さ」っていう数値データなので、そのままでは画面に何も出てきません。
だから、「ちゃんと意図した方向を向いてるのかな?」「長さは合ってるのかな?」っていうのが目で確認できなくて、ミスに気づきにくいんです。
この「見えない問題」を解決してくれるのが、「Vector Display」コンポーネントです。
これを使うと、見えないベクトルデータを「矢印」としてRhinocerosの画面に表示できるようになります。
Vector Displayには、「Anchor(基準点)」と「Vector(ベクトルデータ)」の2つの入力があります。
Anchorには矢印の根元になる点(Point)を入力して、Vectorには表示したいベクトルを入力すれば、指定した場所から伸びる矢印がハッキリ見えるようになります。
ここで注意したいのが、さっきも言ったように、ベクトル自体には「位置」の情報が入っていないってことです。
だから、Anchorに基準になる点を入力しないと、Grasshopperは「どこに矢印を描けばいいの?」ってなって、勝手に原点(0,0,0)から描いちゃったりします。
たくさんの点から一斉にベクトルが出るようなデザインを作るときも、このVector Displayを各点につないで矢印の群れを表示すれば、データの流れが一目で分かるようになりますよ。
ベクトルを使いこなしてモデリングをコントロールしよう
ベクトルの考え方と画面への表示方法が分かってくると、Grasshopperでできることがグッと広がります。
一番基本的な使い方は、ジオメトリの移動(Move)と押し出し(Extrude)です。
これらのコンポーネントは、必ず「どっちの方向にどれだけ動かすか」っていうベクトルデータを必要とします。
たとえば、平面のカーブを立体的な建物モデルにするとき、Unit ZとNumber Sliderを組み合わせたベクトルをExtrudeにつなげば、後から高さを自由に変えられる壁が作れます。
これがパラメトリックデザインの面白いところです。
もっと応用的な使い方として、「法線ベクトル(Normal Vector)」を使ったモデリングがあります。
法線ベクトルっていうのは、ある平面や曲面に対して垂直に伸びるベクトルのことです。
Evaluate Surfaceっていうコンポーネントを使うと、曲面上の好きな場所での法線ベクトルが簡単に取得できます。
この法線ベクトルを使ってオブジェクトを配置すれば、うねるような曲面の傾きに合わせてパネルやルーバーをキレイに並べる、みたいな複雑なデザインも論理的に作れるようになるんです。
ベクトルは、Grasshopperっていうビジュアルプログラミングの世界での「力の矢印」とか「動きの指示書」みたいなものです。
拡張機能の磁場(Field)コンポーネントで特定の方向にパーティクルを動かしたり、太陽光が差し込む角度をベクトルで表してシミュレーションしたりと、使い道はいろいろあります。
見えないデータだからって避けずに、Vector Displayで常に状態を確認しながら作業を進める習慣をつければ、もっと複雑で精度の高いデジタルデザインができるようになりますよ!
広告
