2022-07-12

【Geometry Nodes】Sample Curve(カーブサンプル)ノード【Blender】

カーブに沿った座標を取得するSample Curve(カーブサンプル)ノードを単体で解説。

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

Sample Curveノード

日本語:カーブサンプル

Sample Curveノード外観

概要

例えば次のようなスパイラルカーブがあるとして

スパイラルカーブ

このカーブ沿いに「1m進んだ先の座標を取得は?」

または「始点を0、終点を1とした時に0.25(カーブの長さの25%)の座標は?」

といった目的で使うノード。

つまり、次のようなことが可能。

カーブ上のポジションに沿ってスフィアを移動している。

出し方

Curve > Sample Curve

使い方

上で紹介したスパイラルをなぞる例は次のノードを使用している。

スパイラルをなぞるノードの組み方

Sample Curve以外のノード解説は省略するが、Spiralノードは別記事で解説あり。

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

Factorモード

日本語:係数

Factorモード

この例ではFactorモードが使われている。

このモードにした場合はカーブの何割の位置を取得するかを下の数値入力のところに入力する。

例えば0.25とした場合はスパイラル全体を100%としたとき、25%の位置を取ってくる。

このモードのメリットはカーブが実際何メートルなのかを知る必要が無いこと。

Factor=0.25にしたときの玉の位置

上の映像ではこのFactorにはサイン波を入れて動画している。

サインを入れる

※サインはマイナス値を取るので正の値に変換。

Lengthモード

Lengthモード

Factorでは割合を入れたが、Lengthモードだと長さの絶対値を指定する

上と違って絶対値なので終点が何メートルなのかは分からない。

厳密なコントロールをしたい時に使えるが、終点までの距離をオーバーしてしまっても終点で停止するので注意。

長すぎな例

PositionをOffsetへ

Set Positionを使ってレールにする場合はPositionのソケットをOffsetに入力するようにしよう。

Position => Offset

またTransformノードでも良い。

基本は以上。この先が難しく感じたら無理に覚える必要はない。

Tangent

Tangentソケット

タンジェントは単なる「接線」

ひとまず数学的に難しい計算は必要ないが、ちょっと理解が必要。

次の例でCurve Lineを組み合わせて接線を実際に引いてみよう。

CurveLineを使う例

接線が生成された

Sample Curveによって指定された頂点を通る直線が引かれる。

ちょっと分かりにくいかもしれないので直線を延長して、先程のように円の上を動かしてたのが次。

接線が移動しているのが分かる。

次のノードは参考。少しベクトルの計算が入るので理解できなければスルー推奨。

ノードの組み方

Normal

こちらのソケットはノーマル(法線)方向を出力する。

法線は接線に対して垂直な線

ノードを次のように改造すると

ノーマルを出す

法線方向に線が伸びていることが確認できる。

なぜCurve LineDirectionモードを使っているのか疑問に思う人もいるかと思う。

TangentNormalPositionを原点とした単位ベクトルが出ているだけだからである。

つまり絶対的な座標ではなく、相対的な方向をCurve Lineに入力している形になる。

以上

カーブをレールとして使うケースが殆どだと思うが、使い方によっては色々な可能性を秘めたノードだ。

今回あまり実用的な例が掲載できなかったが、他の使い方も研究したい。



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