2022-07-19

【Geometry Nodes】縄の作り方【Blender】

複数のカーブをねじる方法を使って縄を作る方法。

Article Image
使用ソフトウェアバージョン備考
Blender3.2

今回の作例

今回は次の作品をジオメトリノードだけで作る(シェーディングは別)

サムネイルだと画質が悪いのでクリックしてフルサイズで見れる。

縄の作例

一番最後に全体のノードをまとめて掲載する。

記事の流れとしては、理解しやすいようにパーツごとに区切って作っていく。

どうやってねじるのか?

まず最初に

ねじりサンプル

このねじりはどうやって表現するのだろうか。

カーブをねじるSet Curve Tiltというノードは以前私のBLOGで紹介した。

【Geometry Nodes】Set Curve Tiltノード【Blender】 | 謎の技術研究部

これだけでは縄にならない

上の記事で紹介している方法でCurve Circleをねじってみるが

Circleをねじるノード

捻れない

縄にはならない。

どうすれば縄になるか

実はとてもシンプルで

Circleを複製

Curve CircleTransformを複数使って複製+ズラしたカーブを作る

複製されたカーブ

Transformを使わなくてもInstance on Pointsを使う方法でも良い。

あとはこれをCurve to Meshでメッシュ化してSet Curve Tiltでねじるだけだ。

縄ベース

これをAグループとする(後に使用)

実はこれだけでほぼ完成である。

ねじりサンプル

なぜこうなる?

つまり本物の縄の断面(のようなもの)を複数のカーブを組み合わせて作って、それをねじっているだけだ。

ヒゲを作る

ここからはおまけ。

縄からでているヒゲを作る。

この方法には先日紹介したDistribute Points on Facesを使う。

【Geometry Nodes】Distribute Points on Facesノード【Blender】 | 謎の技術研究部

これにより縄の表面上のランダムな点を選択し、そこから毛を生やす。

上で書いたAグループからの出力を次のノードにつなぐ。

毛を生やすノード

特に解説するポイントはなく、点をランダムに生成してBezier Segmentを配置しメッシュにしているだけ。

覚えておきたいポイント

前回の解説でDistribute Points on FacesRotationを使う例を使用している。

Rotationを使う

これにより、メッシュの法線方向にベジェ曲線が発生するので毛が生えているように見える

これだけだと毛の発生方向が少しつまらないのでBezier Segmentの値を適当に変更しよう。

問題点

この方法だと、縄の内側にも毛が生成されているのでポリゴンが重くなる。

実用化する場合はもう少し工夫が必要かもしれない。

無駄な毛

縄の表面を少しデコボコに

このままだと縄がきれいすぎるのでデコボコにしている。

picture 11

  • Noise Textureを使うと隣り合う値がゆったり変化するランダム値が出せる
  • Subtract0.5を入れているのはNoise Textureがデフォルトでズレるのを補正
  • Scaleノードを挟むとベクトルの大きさを変化させられる。デコボコの強さ。
  • Set PositionOffsetにランダム値が入ってくるので各面がランダムにズレる。

全体ノード

最後に全体のノードを掲載

全体ノード

マテリアル

マテリアルは実は結構適当。

マテリアルノード

縄っぽいマテリアルがよくわからなかったので、麻のテクスチャを重ねて、ラフネスを上げただけ。

なお、v3.2現在はMesh to Curveで作ったメッシュにUV情報が乗らないので、カメラから計算された空間を使って無理やりテクスチャをいれている。

したがってアニメーションするとテクスチャが移動して不自然となる。

3.3以降でUV展開ができそうなのでそちらはまた別記事にて。

最後の作例

最後にHDRIの背景に混ぜてソレっぽい作例にしてみたので掲載。

最後の作例



謎の技術研究部 (謎技研)