使用ソフトウェア | バージョン | 備考 |
---|---|---|
Blender | 3.2 |
今回は次の作品をジオメトリノードだけで作る(シェーディングは別)
サムネイルだと画質が悪いのでクリックしてフルサイズで見れる。
一番最後に全体のノードをまとめて掲載する。
記事の流れとしては、理解しやすいようにパーツごとに区切って作っていく。
まず最初に
このねじりはどうやって表現するのだろうか。
カーブをねじるSet Curve Tilt
というノードは以前私のBLOGで紹介した。
【Geometry Nodes】Set Curve Tiltノード【Blender】 | 謎の技術研究部
上の記事で紹介している方法でCurve Circle
をねじってみるが
縄にはならない。
実はとてもシンプルで
Curve Circle
をTransform
を複数使って複製+ズラしたカーブを作る
あとはこれをCurve to Mesh
でメッシュ化してSet Curve Tilt
でねじるだけだ。
これをAグループとする(後に使用)
実はこれだけでほぼ完成である。
つまり本物の縄の断面(のようなもの)を複数のカーブを組み合わせて作って、それをねじっているだけだ。
ここからはおまけ。
縄からでているヒゲを作る。
この方法には先日紹介したDistribute Points on Faces
を使う。
【Geometry Nodes】Distribute Points on Facesノード【Blender】 | 謎の技術研究部
これにより縄の表面上のランダムな点を選択し、そこから毛を生やす。
上で書いたAグループからの出力を次のノードにつなぐ。
特に解説するポイントはなく、点をランダムに生成してBezier Segment
を配置しメッシュにしているだけ。
前回の解説でDistribute Points on Faces
のRotation
を使う例を使用している。
これにより、メッシュの法線方向にベジェ曲線が発生するので毛が生えているように見える
これだけだと毛の発生方向が少しつまらないのでBezier Segment
の値を適当に変更しよう。
この方法だと、縄の内側にも毛が生成されているのでポリゴンが重くなる。
実用化する場合はもう少し工夫が必要かもしれない。
このままだと縄がきれいすぎるのでデコボコにしている。
Noise Texture
を使うと隣り合う値がゆったり変化するランダム値が出せる。Subtract
で0.5
を入れているのはNoise Texture
がデフォルトでズレるのを補正Scale
ノードを挟むとベクトルの大きさを変化させられる。デコボコの強さ。Set Position
のOffset
にランダム値が入ってくるので各面がランダムにズレる。最後に全体のノードを掲載
マテリアルは実は結構適当。
縄っぽいマテリアルがよくわからなかったので、麻のテクスチャを重ねて、ラフネスを上げただけ。
なお、v3.2現在はMesh to Curve
で作ったメッシュにUV情報が乗らないので、カメラから計算された空間を使って無理やりテクスチャをいれている。
したがってアニメーションするとテクスチャが移動して不自然となる。
3.3以降でUV展開ができそうなのでそちらはまた別記事にて。
最後にHDRIの背景に混ぜてソレっぽい作例にしてみたので掲載。