Grasshopperを使っていると、特定の操作でジオメトリが意図せずバラバラになったり、不連続な動きをしたりする経験はありませんか?今回は、Evaluate Curveを使ってジオメトリを回転させる際に生じる「不連続性」の問題と、その解決策、さらにはAttractor Pointを用いた全体制御の可能性について深掘りしていきます。
Evaluate Curveで何が起こる?
Rhino/GrasshopperのEvaluate Curveコンポーネントは、曲線上の特定の位置(パラメータ)における点、接線、フレームなどの情報を取得するのに非常に便利です。しかし、この情報を使ってジオメトリを回転させようとすると、特定の角度で「ガタつき」や「不連続性」が生じることがあります。
これは、主に回転の中心点が不統一であったり、回転させるオブジェクトが個別に扱われていたりする場合に起こります。例えば、曲線上に配置された複数のオブジェクトをそれぞれEvaluate Curveで得たフレームで回転させると、曲線自体の滑らかさや、フレームの向きの連続性によっては、全体として不連続に見えてしまうのです。
不連続性を解消するロジック
不連続性を解決するための鍵は、回転の中心と軸を一貫させることにあります。もし複数のジオメトリを回転させる場合、それらを事前にJoinコンポーネントで結合し、単一のオブジェクトとして扱うことを検討しましょう。これにより、回転の中心を一つに定めることができ、個々のジオメトリがバラバラに動くのを防げます。
また、Evaluate Curveから得られる「Frame」情報を使う際は、そのフレームのZ軸(法線方向)を回転軸として利用し、回転の中心をフレームの原点に設定することで、よりスムーズな回転が実現できます。場合によっては、Rebuild Curveで元のカーブを滑らかにし、Evaluate Curveに渡すデータ自体を改善するのも有効な手段です。
アトラクターポイントで全体制御
ソース情報では、アトラクターポイント(Attractor Point)を使ってジオメトリ全体を制御したいという要望も出ていました。これはGrasshopperの得意分野の一つです。アトラクターポイントは、その点からの距離に応じて、ジオメトリのスケール、回転、色、移動量などのパラメーターを変化させる強力なツールです。
Distanceコンポーネントでアトラクターポイントと各ジオメトリとの距離を計算し、その距離をRemap NumbersやGraph Mapperコンポーネントを使って、目的のパラメーター範囲にマッピングします。例えば、アトラクターに近いほど大きく、遠いほど小さくするといった制御が可能です。これを回転角度や移動量に適用すれば、ジオメトリ全体がアトラクターに反応してダイナミックに変化する、高度なパラメトリックデザインが実現できます。
スムーズなジオメトリ操作の鍵
Grasshopperでのスムーズなジオメトリ操作は、データ構造の理解と適切なコンポーネントの選択にかかっています。Evaluate Curveで不連続性に直面した際は、回転の中心と軸の一貫性を確認し、必要に応じてジオメトリの結合やカーブの再構築を試してみてください。そして、Attractor Pointと組み合わせることで、より表現豊かなデザインへと発展させることが可能です。これらのTipsを活用して、あなたのデザインを次のレベルへと引き上げましょう。
