【Blender】ジオメトリノードで三つ編みを作ってみよう -前編-

はじめまして。TAの鈴木です。
去年末から少しずつBlenderに触るようになり
いろいろできると評判のジオメトリノードを使い始めました。
TAに転職したのをきっかけして
繰り返しが多いものはノードで組みたい衝動に駆られました。
ということで手で作るのは面倒だけど規則性があって計算でできる三つ編みの作り方を紹介します。
今回はこれを作ります

前後編にわけて
前編では決まった位置と長さの三つ編みを作り
後編でカーブに合わせて動くようにします。

Blenderの設定

最初にBlender内でスペースバーを押したときの動作を変えます。
デフォルトだとPlayですがSearchに変えてください。
これをしないと使いたいノードがどこにあるのかがわかりにくいです。

ジオメトリノードの追加

さて、作っていきます。
まずBlenderを起動したときにあるCubeにジオメトリノードを追加します。
3dsMaxユーザーには馴染みのあるモディファイアから呼び出すことになります。


これでGeometry Nodesを追加し、
windowの上にあるワークスペース切り替えタブからGeometry Nodesを選びレイアウトを切り替えます。


これでジオメトリノードを使うことができます。

三つ編みの下地作成

三つ編みを計算に基づいて作る方法を考えてみると
いくつも方法はあると思うのですが今回は単純な2点の直線を作ってから間にポイントを作って
それを上下に動かして三つ編みの形状にしていきます。
スペースバーを押して検索ウィンドウを出して
mesh l くらいまで入力するとMesh Lineに絞られるのでノードを出して
下の画像のようにパラメータを入れてGroup Outputに繋げてください。


なにをしているのかというと原点と(0,25,0)の位置に頂点があるエッジを作っています。
このエッジを変形していくことにします。

下地の編集

ポイントの追加

次にこのエッジ上に点を増やして編み込みの形を作りたいのですが
数値を使って点の数を変えるノードがカーブにしかないため
カーブに変換してから点の数を変えます。
以下のように検索でノードを出して繋げてください。


これにより10個のポイントが作られポイントが存在しているはずなのですがビューポート上で見えないので
見えないカーブ上のポイントにポイントをインスタンスで置きます。


ポイントが見えるようになりました。必要に応じて赤丸のradiusでポイントを大きくしてみてください。

インデックスについて

いよいよ編み込みの波打った形を作っていきます。


上の図のようにそれぞれのポイントには始点から終点に向かって0から9までの番号が割り振れらていて
0番目の座標は(0,0,0) 9番目の座標は(0,25,0)というように番号に固有の座標を持っています。
この自動で割り振られる番号のことをインデックスといいます。
このインデックスごとの座標を下のように変えていきます。

インデックスの位置を移動するための準備


上記のようにして現在のポイントの位置にポイントの移動するということをします。
これではポイントの位置は動きませんが XYZの位置の成分を分離するために必要です。

波形の追加


ちょっとわかりづらいかもしれないですが上図のようにしてPositionのY成分だけを分離します。
そしてZ成分を(0)~(1)~(0)~(-1)~(0)~… と循環させることを考えます。使うのはSineです。


検索でmathを入れAddをブルダウンしてSineを選びます。
以下のようにするとインデックスによってZ成分が変わるようになります。

ラジアン単位について

確かに上下に動くようになりましたがインデックスごとに0→1→0→-1・・・とは動いていません。なぜでしょうか?
高校の三角関数を思い出してください。sinΘのΘは弧度法 ラジアン単位です。
ざっくりいうと円周の長さがπのとき Θがπ  πは度数法の180°で90°はπ/2
インデックスの値が1ずつ上がるごとにΘがπ/2ずつあがっていけば sinΘは0→1→0→-1・・・と変化します。


なので上記のようにします。また、Valueを検索で出して値のところでpiと打つと3.142になります。
この弧度法とそこにインデックスを入れるところは最初はよくわからないかもしれないですが何度もやっていると慣れます。

奥行き方向への移動

次は奥行き方向の移動を考えます。
CombineXYZのZにつながっている部分をコピー(ショートカットキー shift+D)してXに繋げます。
ポイントのままだとわかりにくいので Instance on Pointsの接続を切ります。


奥行き方向に動きましたが三つ編みは螺旋上に組み合わさっているので調整します。
インデックスに0.5をかけると波の周期が半分になり螺旋を描くことができます。


これで1つできたので複製するのですがノードが複雑になっているので先に整理します。

ノードの整理

共通で使っている Index とπ/2はまとめてしまってから以下のように選択して右クリックからMake Groupをします。


グループノードにすることでスッキリしました!
またグループノードの右上のアイコンをクリックすることでグループノードの中を変えることができます。

カーブの複製

次はカーブを3つに増やします。
以下のようにセットポジション以下をコピーしてジオメトリのソケットにカーブを繋ぎJoin GeometryでひとまとめにしてからGroup Outputで出力します。


Group Outputに3つのジオメトリを繋いでも大丈夫だろうと考えてしまいますが、ジオメトリは一つしか繋げないので事前にまとめてから繋げます。

複製したカーブの修正

同じカーブなので重なっているのでずらします。


共通しているIndexを整理しつつMathをプルダウンメニューからAddに変えて値を3 5 と変えると
3つの螺旋が組み合わさりました。もう少しです!!

ジオメトリノードの外からパラメータの変更1

ノードを直接触らず三つ編みの具合を調整できるようにしていきます。


GroupInputを検索から出してResample CurveのCountを繋げます。こうすることでジオメトリノードの外から値を変えることができます。
今回のこのCountから編み込みの数を変えることができます。

ジオメトリノードの外からパラメータの変更2

さらにグループノードの中のXとYのところにMultiplyを繋ぎValueをinputに繋ぎ外に出します。


グループノードの外に出て1つのValueをInputに繋ぎ、そのValueに他の2つのValueも繋ぎます。


これによりカーブの振幅を変えられるようになります。
そのままでも良いですがCountとValueをわかりやすい名前に変えます。
Nキーを押してメニューを出してGroupタブから名前を変えたいところをダブルクリックしてください


Count : 編み込みの数 Value : 振幅 など自由にわかりやすい名前に変えてください。
下のように値を変えるとカーブの具合を変えらます。

カーブをポリゴンに変更

最後にカーブをポリゴンに変えていきます。
Set Spline TypeでカクカクしたカーブをNURBSの緩やかなカーブに変え
Curve to MeshのProfile Curveのところに断面になるCurveを繋ぎます。


これで三つ編みができました!!
今回は断面になるCurveをCurve Circleにしましたが自身で編集したCurveにすることもできます。

最後に

さて以上がジオメトリノードで三つ編みを作る方法でした。
どうだったでしょうか?この記事を機にジオメトリノードに興味を持って触ってみようとしてくれる方が増えてくてくれることを祈っています。
後編ではこの三つ編みをカーブに合わせて動かす方法を紹介します。

ではではー

Shinichi Suzuki

17年くらいモデラーをしてからTAになりました。
モデリングをするときに便利なツールを作りたいと思っています。

スキルレーダーチャート

テクニカルアーティスト専用
スキルレーダーチャート
どなたでも無料でご利用いただけます。

ABOUT

TECH COYOTE​

テクニカルアーティストの為のまとめサイトです。​
本サイトでは、ツール開発、業務効率化等について情報発信をしていきます。

COYOTE 3DCG STUDIO

C&R Creative Studios

RECENT TWEET

ページ上部へ戻る