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

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

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

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

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

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

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

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

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

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

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

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

- Grasshopperから扇部分・骨部分・金物をそれぞれ別レイヤーでRhinocerosにBakeします。
- 適当に好きな和柄の画像をダウンロードしてください(私はこちらを利用させていただきました。http://www.sda.nagoya-cu.ac.jp/sa08m13/images/top.html#summerフリー素材・商用OKなサイトです)。
- 上部のパネル⇒ライブラリにチェックを入れると、右側の様にディレクトリを参照できますので、ダウンロードした画像があるディレクトリを表示します。

- レンダリングビューポートにして、ダウンロードした画像を扇部分にドラッグアンドドロップしてください。扇部分に画像が割り当てられましたが、折れ目ごとにシームができているので修正していきます。

- 扇部分を選択した状態で、プロパティ⇒テクスチャマッピングを選択します。その中のアンラップを選択すると、いい感じにはなるんですが、今回は柄の位置を調整したいので、UVエディタを選択します。(※上画像の赤矢印参照)


- UVエディタを押すと、カーソルが出てくるので、適当に、扇子の脇に四角形を作成します。そうすると上画像のようになるので、その状態で、アンラップを選択します。すると、シームを選択とでてくるので、何も選択せずに適用を押します。

- 最後に、上画像の左の扇部分を移動・回転・スケールさせたりして、いい感じの位置を調整します。(※ガムボール/3色の矢印が表示されてない場合は、画面下のガムボールを選択した状態してください。)
- 骨部分も同様に木のテクスチャを割り当てます。(※私はこちらのサイトを使わせてもらってます。(※https://www.beiz.jp/)
- 金物部分はテクスチャを使用せず適当なマテリアルを割り当ててます。
完成

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