2024年1月2日火曜日

【Grasshopper_92】Surfaceモーフィングの法線方向をコントロールする方法


今年最初の投稿はタイトルにある通り、サーフェスモーフィング機能の応用的な使い方を模索してみました。


Grasshopperに標準搭載されている、Surface Morphingコンポーネントを使う場合、上の図のように、押し出し方向がサーフェスの法線方向に固定となるため、ただ並べているだけのような状態となります。

そこで、今回はPaneling Tool for Rhino and Grasshopperプラグインに含まれている機能を使ってトップ画像の形状を作る方法を紹介します。

・はじめに、XY平面上に、モーフィングを行うための元の形状を作ります。形はお好みで、何でもOKです。

・モーフィング先のサーフェスをRhino上で用意し、Grasshopperに取り込みます。こちらもお好みな形でOKです。

・作成した3Dサーフェス上にモーフィングするための区画となる点群(Boxのボトム側4点分)を作ります。

・今回はせっかくなので、グリッドの間隔を変化させてみました。横方向は中央に向かって狭く、縦方向は上に向かって広くなるようGraph Mapperコンポーネントを使って調整します。

・グリッド点はSurface Parameterコンポーネントにつなげて作っています。

・押し出し先となる点群(Boxのトップ側4点分)は、さきほど求めた点群を次の工程でMoveコンポーンエントにつないで移動させますが、その移動量及び移動方向をベクトルで求める必要があります。

・移動方向について、今回のケースでは、Z方向成分を0、Y方向成分を-1とし、X方向については、左端が右斜め下方向、中央が0、右端が左斜め下になるように、0.8から-0.8の範囲でRangeコンポーネントにつないで数列を作り、それらをVector XYZコンポーネントにつないで全グリッド点の移動ベクトルを求めています。

・押し出し量については、下端から上端に向かって凸になるような変化をさせるため、Graph Mapperコンポーネントにつなぎ、3から50までの範囲にしています。

・パスの構造に合わせて、Flip Matrixコンポーネントを複数個、組み合わせる必要があります。

・次に、さきほど求めたベクトルに沿って、グリッド点を移動させます。

・最後に、Morph 3D Mapコンポーネントに所定のデータをつないだら完成です。

・S2は、トップ面の位置をきれいにそろえる場合につなぎます。移動させたグリッド点をSurface from Gridコンポーネントにつなぎ、グリッド点がすべて含まれるサーフェスを作成してからつないでいます。

ベクトルの計算およびリストの行列反転の部分が少々理解するためのハードルが高いですが、様々な場面で応用が効くやり方ですので、是非、チャレンジしてみてください。

0 件のコメント:

コメントを投稿

【Grasshopper_98】SporphとSurface Morphingの特徴、違いなどについて

今年もまたGWに突入しましたね。コロナ明けに円安、インバウンド特需のおかげで東京から郊外に出かけると例年以上に混雑に巻き込まれそうなので、昨年と同様、連休中は家に籠ってブログを更新します。今回のテーマは、Surface MorphingとSporphの違いについてまとめてみました。