2024年1月4日木曜日

【Grasshopper_93】Voronoi形状を使ったロゴの作り方



おなじみのVoronoiを使った事例の一つとしてロゴを作ってみました。以前のブログの記事で紹介した、Voronoiの大きさを変化させる方法の応用になります。必要な外部プラグインは、OpenNestとAnemoneです。

・最初に、基準となる文字の閉曲線を作っていきます。文字データをカーブにダイレクトに変換するTextという名称のコンポーネントがOpenNestプラグインに入っているのでこれを使います。

・出来上がったカーブをPipeコンポーネントにつないで3D形状化してからXY平面との交線を求めると、上の図のような閉曲線ができます。Illustratorなどでデザインができる人はそちらで作ったものをimportするのももちろん可です。

・oやa、d、eなどの文字(上の図の緑色でハイライトさせた文字)は中抜き状態にする必要があるので、この時点で中抜きが必要になる文字とそれ以外に分離しておきます。交線の数が2かどうかで判定してから分離しています。

・Voronoiの範囲をRectangleコンポーネントを使って定義し、Populate Geometryコンポーネントにつないでランダムな点を適当な個数分、作成します。

・この工程は無くても構わない部分ですが、Voronoi形状の枠の中心部分を細かくして粗密感を出すため、上の図のようにランダム点を枠の中心点に向かう方向に移動させます。外周に近い点ほどたくさん移動させるような感じです。

・次の工程が、Anemoneを使ったループ処理の部分です。長いので、左半分と右半分の2つに分けて解説します。

・大まかにいえば、Voronoi形状を文字の閉曲線で分割する作業です。上の画像ではわかりやすいよう色分け表示していますが、中抜き文字の内側が赤色、外側が緑色、中抜きしない文字が青色、それ以外の外側の部分が黒色です。

・分割する順番は、青→緑→赤の順で、Trim with RegionsコンポーネントにつないでVoronoi形状を分割していきます。分割後の開放区間はConnect Curvesコンポーネントにつないで閉曲線化し、Mergeコンポーネントにつないで一つにまとめます。

・ループ計算後、色分けした閉曲線を階層別に取り出すと後工程で便利なので、同時にEntwineコンポーネントにつないでデータを取り出します。

・Anemoneループ処理の右半分です。

・分割したVoronoi形状の中心点を求め、文字の閉曲線に向かって移動させ、再びVoronoi形状を作成する、というループ処理となります。

・移動量や移動方向の計算は、上の図の緑色でグループ化された個所になります。文字までの最短距離を最大値で割り算していったん0~1の範囲に変換してから係数をかけ合わせるというやり方です。文字から遠いVoronoiほどよりたくさん寄っていく流れとなり、計算回数が増えるにつれて、文字の近くのVoronoiがより細かくなります。

・計算終了後の閉曲線はEntwineコンポーネントから取り出します。

・最後に、好みなデザインに加工したら完成です。


0 件のコメント:

コメントを投稿

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

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