Grasshopperの法線ベクトルについてお探しですね。
広告
Grasshopperで曲面に垂直にオブジェクトを配置する方法
Grasshopperで3Dモデリングをしていると、「複雑な曲面に沿ってオブジェクトをきれいに並べたいな」と思うことってよくありますよね。
でも、単純にコピーや移動をするだけだと、オブジェクトが全部同じ方向を向いたままで、曲面にフィットしてくれません。
初心者の方が最初につまずくポイントでもあります。
この記事では、「Evaluate Surface」というコンポーネントを使って、曲面の法線ベクトル(面に対して垂直な向き)を取得し、オブジェクトをきちんと垂直に配置する方法を、できるだけわかりやすく説明していきます。
Evaluate Surfaceと法線ベクトルって何?
まず、「Evaluate Surface」というコンポーネントについて説明しましょう。
これは、曲面(サーフェス)の好きな場所の情報を教えてくれる、とても便利なツールです。
特に重要なのが「法線ベクトル」という情報。
これは簡単に言うと、**その場所で面に対して垂直に立っている矢印の向き**のことです。
曲面がどっちを向いているか、どんな風に傾いているかを表す大事なデータなんですね。
例えば、曲がった屋根にパネルを並べたり、波打った壁にルーバーを取り付けたりするとき、この「向き」の情報がないと、すべてのパーツが同じ方向(例えば真上)を向いてしまって、曲面に沿った自然な配置ができません。
Evaluate Surfaceを使うと、ただの「位置」だけじゃなくて「向き」も一緒に取得できるので、曲面の流れに沿った美しいデザインが作れるようになります。
このコンポーネントには、ベースとなるサーフェス(S)と、情報を取り出したい場所を示すUV座標(uv)を入力します。
そこから、その位置のポイント(P)と法線ベクトル(N)が出力される仕組みです。
実際に法線ベクトルを取得してみよう
では、実際にEvaluate Surfaceを使って法線ベクトルを取得する手順を見ていきましょう。
ここで大事になるのが「UV座標」という考え方です。
UV座標は、3D空間のX、Y、Z座標とは別物で、**そのサーフェス自身が持っている2次元の地図みたいなもの**です。
住所のようなイメージですね。
この座標を指定するには、「MD Slider」(多次元スライダー)や「Divide Surface」(サーフェス分割)といったコンポーネントを使います。
これをEvaluate Surfaceの「uv」端子につなぐと、指定した場所のポイントと法線ベクトルが「N」から出力されます。
Reparameterize(再パラメータ化)が重要!
ここで初心者がよくつまずくのが「Reparameterize」という処理です。
サーフェスは、作り方によってUVの範囲がバラバラなんです。
あるサーフェスは「0から10」、別のは「-5から15」みたいに。
これだと座標の指定がすごく面倒ですよね。
そこで便利なのがReparameterize機能。
Evaluate Surfaceの「S(サーフェス)」入力端子を右クリックして「Reparameterize」を選ぶと、どんなサーフェスでもUVの範囲が**「0.0から1.0」に統一**されます。
こうすると、0.5を指定すれば必ず中央、1.0なら端っこ、という風に直感的に扱えるようになります。
計算ミスも減って一石二鳥です。
取得した法線ベクトルでオブジェクトを配置する
さて、位置と法線ベクトルが手に入ったら、いよいよオブジェクトを配置していきます。
ここで使うのが「平面(Plane)」という概念です。
Grasshopperでは、オブジェクトを移動させるとき、ただの「点」じゃなくて、**向きと原点を持った「平面」**を基準にします。
普通のXY平面は常に真上を向いているので、これを法線ベクトルの方向に傾ける必要があるんです。
平面を作って向きを調整する
ここで活躍するのが「Adjust Plane」や「Construct Plane」といったコンポーネント。
具体的な手順はこんな感じです:
1. Evaluate Surfaceから出てきた位置を原点にする
2. 法線ベクトル(N)を、新しい平面のZ軸(上向き)として設定する
3. Adjust Planeで、法線ベクトルに沿った新しい平面を作る
こうして作った「曲面に沿って傾いた平面」を、「Orient」コンポーネントのターゲット平面(Target)につなぎます。
配置したいオブジェクト(Geometry)と、そのオブジェクトが今いる基準平面(Source)も一緒に入力すれば、オブジェクトが曲面の起伏にぴったり沿って、法線ベクトルに従った垂直配置が完成します!
応用例とよくあるトラブル
この法線ベクトルを使った配置テクニックは、いろんな場面で使えます。
– 曲面屋根に日除けルーバーを等間隔で並べる
– 製品の表面にスパイク状の装飾を施す
– 波打つ壁にパネルを敷き詰める
などなど、アイデア次第で可能性は無限大です。
よくあるトラブル:ねじれ問題
ただし、法線ベクトルを使うときに注意したいのが「ねじれ」の問題です。
オブジェクトは確かに曲面に垂直になったんだけど、**それぞれがバラバラの方向を向いてしまう**ことがあります。
これは、法線ベクトルが「垂直方向」しか決めてくれないので、平面がくるくる回転してしまうからなんです。
ねじれを直す方法
この問題を解決するには、「Align Plane」などを使って、もう一つの基準ベクトルを設定します。
**手順:**
1. **基準ベクトルを決める**:ワールド座標のZ軸や、サーフェスのU方向など、全体で揃えたい向きを選びます
2. **Align Planeを使う**:作った平面を、基準ベクトルに合わせて回転させます
3. **Orientで配置**:ねじれが直った平面を使って、オブジェクトを配置し直します
こうすることで、単に垂直に立てるだけじゃなくて、オブジェクトの正面がどこを向くかまで完全にコントロールできるようになります。
まとめ
法線ベクトルの取得から平面の構築、ねじれの補正まで、一連の流れを理解すれば、どんな複雑な曲面に対しても自由自在にオブジェクトを配置できるようになります。
最初は難しく感じるかもしれませんが、一度身につければパラメトリックデザインの表現力がぐっと広がりますよ。
ぜひ実際に手を動かして試してみてください!
広告
