GH Basics GH Tips Grasshopper

【Grasshopper Tips】 Deformation of Mesh

今回は、上画像の様にメッシュを変形変形させていきます。非常に簡単な内容となっているので、初学者の方も是非挑戦してみてください。こちらの記事は動画化もしております。動画の方がよい方は以下のリンクからどうぞ!

概要

上画像がプログラムの全体像となっております。各ブロックごとに説明していこうと思います。

球体メッシュ作成

  1. Mesh Sphereコンポーネントで球体のメッシュを作成します。中心は原点(0,0,0)、半径100、メッシュ数はuv方向47としています。
  2. Triangulateコンポーネントで四角形に分割されたメッシュを、三角形メッシュにします。
  3. Deconstruct Meshコンポーネントでメッシュを分割しておきます。

メッシュの頂点を移動

  1. Moveコンポーネントでメッシュの頂点を移動させていきます。Deconstruct Meshコンポーネントから取得できる頂点を接続します。
  2. Deconstruct Meshコンポーネントの出力端子Nから各メッシュの法線ベクトルが取得できます。Amplitudeコンポーネントでこの法線ベクトルの量を再設定していきます。
  3. List Lengthコンポーネントで法線ベクトルの数を取得します。
  4. Randomコンポーネントで法線ベクトルの数だけランダムな数値を作成します。ランダムな数値の範囲は適当に‐28~28としています。(Construct Domainコンポーネントの入力端子AにはExpressionで-xを入力しています)
  5. Rangeコンポーネントで取得したランダムな数値のリストをAmplitudeコンポーネントの入力端子Aに接続しま。法線ベクトルの量がランダムに再設定されました。
  6. Moveコンポーネントの入力端子Tに接続します。頂点が移動したかと思います。
  7. Construct Meshコンポーネントで移動した頂点を使ってメッシュを再度構築します。入力端子FにはDeconstruct Meshコンポーネントで分割したFaceを入力します。これでメッシュの変形が完成です。

色付け

  1. ついでに色付けしていきます。Deconstruct Meshコンポーネントで再構築したメッシュを再度分解します。
  2. Distanceコンポーネントで各頂点と球の中心との距離を取得します。
  3. Boundsコンポーネントで取得した距離の最小値~最大値までのドメインを取得しまます。
  4. Deconstruct Domainコンポーネントでドメインを分解し最小値と最大値を取得します。
  5. GradientコンポーネントでL0に最小値、L1に最大値を、tにDistanceを接続します。これで、変形した際に中心から遠いほどGradiateの右側の色に近づき、近ければ左側の色に近づきます。
  6. Mesh Colorコンポーネントで色付けして完成です。

以上になります。応用していろんな形状を試してみてください。

-GH Basics, GH Tips, Grasshopper
-,