今回は上画像の様なランプシェードを作成していきます。このチュートリアルではコンポーネントの数量を可能な限り少なく実装し、21 コンポーネントで実装してみました。チームで開発している人など、可読性を考えると必ずしも少ない方が常によいとは限らないかもしれませんが、リファクタリングの練習に是非参考にしてください。こちらのチュートリアルは動画化しております、動画の方がよい方は以下のリンクからどうぞ!
概要
上画像がプログラムの全体像となっております。
各ブロックごとに解説していきます。
基準となる円を作成
- Circle コンポーネントで基準円を作成します。半径は Gene Pool コンポーネントで 3 つスライダーを設け接続します。入力端子は Graft します。
- Circle コンポーネントに接続する平面位置を、Construct Point コンポーネントで作成します。Z 座標に Gene Pool コンポーネントで 3 つスライダーを用意し接続します。入力端子を Graft します。
- 上画像の様に 3 つの円が作成できていれば OK です。
基準円を分割
- Divide Curve コンポーネントで作成した円を分割します。
- Explode Tree コンポーネントでブランチを取り出します。
- Shift List コンポーネントで、真ん中の円の分割点のリストをずらします。
- Entwine コンポーネントで再度まとめます。
分割点を通る曲線を作成
- Flip Matrix コンポーネントでブランチを反転させます。
- Interpolate コンポーネントで分割点を通る曲線を作成します。
- Relative Item コンポーネントでブランチを 1 つずらした曲線を取得します。入力端子は Simplify し、Offset には{1}を接続します。Wrap Path は Invert して True にします。
- Offset Curve コンポーネントで作成した曲線を内側にオフセットします。
- Rotate コンポーネントでオフセットした曲線を回転させます。
作成した曲線間にサーフェイスを張る
- Ruled Surface コンポーネントで作成した曲線間にサーフェイスを張ります。
- Merge コンポーネントで作成したサーフェイスをまとめます。
完成
完成です。変数を変更していろんな形状を試してみてください。今回はコンポーネント量を少なくすることをテーマにして実装してみました。ただ、可読性がよくパフォーマンスがよい方がもちろんよいかと思いますので、状況に合わせて実装してみてください。