STUDIO TAMA


thumbnail

投稿日:2022-06-25

【Grasshopper Tutorial】 Japanese Folding Fan

  • #Grasshopper

  • #GH Modeling

  • #Rhinoceros

  • #Basic

今回は、上画像の様な扇子を Grasshopper で生成していきます。プログラム自体はさほど難しくないです。Rhinoceros でのテクスチャの割り当てから UV マップの使い方まで簡単にではありますが書いていこうと思います。また、こちらのチュートリアルはプラグイン pufferfish を使用しています。なくてもできますが、あると楽なので是非

こちらからインストール

して望んでください。動画化もしてますので、動画の方がよい方は以下のリンクからどうぞ!

概要

thumbnail

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

基準となる直線の生成

thumbnail
  1. Construct Point コンポーネント で(-2, 0, 0)の点を取得し LineSDL コンポーネント で、その点をスタートとして X 方向に 50 伸びた直線を生成します。
  2. Liner Array コンポーネント で Z 方向に 0.2 ピッチで 20 本複製します。

基準線を扇状に回転

thumbnail
  1. 先ほど複製したした直線を扇状に回転させていきます Rotate コンポーネント を用意し、回転の中心には(0,0,0)を接続します。
  2. 回転角ですが、上画像では 170 度開こうと思うので、170 度 ÷20 本で各直線の回転角のピッチが取得できます。これを Series コンポーネント に接続し、各直線の回転角を取得し radians コンポーネント でラジアン変換して Rotate コンポーネント に接続します。上画像の様に扇状に回転したかと思います。

扇部分生成 ①

thumbnail
  1. 回転させた直線を Shatter コンポーネント で分割していきます。7:3 ぐらいで分けていきたいので 0.3 を接続しております。 2.List Item コンポーネント で分割した直線の長い方を取得します。
  2. プラグイン Pufferfish の Offset Curve コンポーネント で直線を両サイドにオフセットしていきます。今回は左右に 1 ずつオフセットしております。

扇部分生成 ②

thumbnail
  1. 先ほどオフセットしたことで生成された直方体状のポリラインンを Explode コンポーネント で直線に分割していきます。
  2. 分割して 4 本の直線が取得できたかと思いますが、そのうち、扇子の先端側の短い直線を Scale コンポーネントで伸ばします。2.3 倍しております。
  3. 扇子の根元側の短い直線を Flip Curves コンポーネント で反転させます。 4.Ruled Surface コンポーネント で拡大させた直線と反転させた直線との間にサーフェイスを張ります。

扇部分生成 ③

thumbnail
  1. 扇子の山と谷のメリハリを出すために、先ほど生成したサーフェイスを最初に回転させた直線を軸に回転させます。12 度ほど回転させております。

扇部分生成 ④

thumbnail
  1. 続いて、サーフェイス同士の間にもサーフェイスを張っていきます Explode コンポーネント で先ほど回転させたサーフェスのエッジを 4 本の直線に分割します。 2.List Item コンポーネント で各サーフェイスの左側の長い直線と、右側の長い直線を取得します。
  2. 左側の直線に関しては、リストの最後を Cull Index コンポーネント で削除します。
  3. 右側の直線は Shift List コンポーネント でリストを 1 つずらします。この時、Wrap は False にしてリストの最後の値は削除します。
  4. リストを 1 つずらした右側の直線は Flip Curve コンポーネント で反転させます。 6.Ruled Surface コンポーネント でサーフェイスを張ります。

扇部分生成 ⑤

thumbnail
  1. 生成した扇部分のサーフェイスを Merge コンポーネント でまとめます。 2.Brep Join コンポーネント で結合します。 3.Move コンポーネント で Z 方向に若干あげておきます。これで扇部分は完成です。

骨部分の生成 ①

thumbnail
  1. それでは骨部分を生成していきます。序盤に Rotate コンポーネント で直線を回転させたかと思います。その回転させた直線を Pufferfish の Offset Curve コンポーネント を使用しオフセットしていきます。今回は左右に 0.5 ずづオフセットしてます。
  2. オフセットしてできた直方体状のポリラインを、扇部分でやったときと同様に、12 度回転させます。

骨部分の生成 ②

thumbnail
  1. 先ほど回転させたポリラインに Surface コンポーネント を接続し、サーフェイスを張ります。
  2. 骨部分に厚みを持たせるために、生成したサーフェイスを押し出していきますが、扇子の一番上の骨は上方向に、そのほかは下方向に押し出したいので、それぞれ取得します。 3.List Item コンポーネント で-1 番目を取得することで、一番上の骨を取得でき Cull Index コンポーネント で-1 番目を削除することでそれ以外の骨が取得できます。
  3. それぞれ Area コンポーネント でサーフェイスの中心を出し Plane Origin コンポーネント で法線方向のベクトルを取得します。 5.Amplitude コンポーネント で法線方向のベクトル長さを再設定します。一番上の骨は-0.1、そのほかは+ 0.1 としています。 6.Extrude コンポーネント で押し出します。 7.Merge コンポーネント でまとめて、骨部分は完成です。

金物部分生成

thumbnail
  1. 骨部分を束ねている金物部分を生成していきます LineSDL コンポーネント で(0,0,0)をスタートとして、Z 方向に@0.2×20 枚分= 4 の長さの直線を生成します。 2.Curve Middle コンポーネント で直線の中心を取得し Scale コンポーネント で伸ばします。 3.Pipe コンポーネント でパイプ化し、Caps のオプションに2を接続して上下面を球状にキャップして完成です。

Rhinoceros でテクスチャの割り当て

thumbnail
  1. Grasshopper から扇部分・骨部分・金物をそれぞれ別レイヤーで Rhinoceros に Bake します。
  2. 適当に好きな和柄の画像をダウンロードしてください(私はこちらを利用させていただきました。http://www.sda.nagoya-cu.ac.jp/sa08m13/images/top.html#summerフリー素材・商用OKなサイトです)。
  3. 上部のパネル ⇒ ライブラリにチェックを入れると、右側の様にディレクトリを参照できますので、ダウンロードした画像があるディレクトリを表示します。
thumbnail
  1. レンダリングビューポートにして、ダウンロードした画像を扇部分にドラッグアンドドロップしてください。扇部分に画像が割り当てられましたが、折れ目ごとにシームができているので修正していきます。
thumbnail
  1. 扇部分を選択した状態で、プロパティ ⇒ テクスチャマッピングを選択します。その中のアンラップを選択すると、いい感じにはなるんですが、今回は柄の位置を調整したいので、UV エディタを選択します。(※上画像の赤矢印参照)
thumbnail
thumbnail
  1. UV エディタを押すと、カーソルが出てくるので、適当に、扇子の脇に四角形を作成します。そうすると上画像のようになるので、その状態で、アンラップを選択します。すると、シームを選択とでてくるので、何も選択せずに適用を押します。
thumbnail
  1. 最後に、上画像の左の扇部分を移動・回転・スケールさせたりして、いい感じの位置を調整します。(※ガムボール/3 色の矢印が表示されてない場合は、画面下のガムボールを選択した状態してください。)
  2. 骨部分も同様に木のテクスチャを割り当てます。(※私はこちらのサイトを使わせてもらってます。(※https://www.beiz.jp/
  3. 金物部分はテクスチャを使用せず適当なマテリアルを割り当ててます。

完成

thumbnail

そんな感じで完成です。

いかがだったでしょうか。Grasshopper 自体はさほど難易度は高くないかと思います。難しかったかたは、Panel コンポーネントで中身を確認しながら実装してみてください。

目 次