0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ジオメトリノードでオブジェクト間を滑らかに繋ぐ曲線・曲面を作成する

Posted at

オブジェクトをモデリングしている時に
目標となるオブジェクト間を滑らかに繋ぐような曲線や曲面を作成したい場合が出てきます
また、BlenderにもNURBSサーフェイスがありますが 使い勝手がさほどよくありません
image.png
ジオメトリノードで扱いやすい方法を作成できたので書き留めておきます
キャプチャは4.5で作成しましたが 3.3以降のジオメトリノードでも同等のものになるかと思います

ターゲットを滑らかに繋ぐ曲線を作成する

まずは目標となるオブジェクトを用意して コレクションにまとめた状態を作成します
image.png
今回はTarget コレクションに入っているエンプティを順に辿ることを考えます
曲線を生成するためのカーブオブジェクトを適当に作成しておきます

まずは エンプティを直線状に接続する設定をカーブオブジェクトに作成してみます
image.png
カーブオブジェクトの情報は利用せず 新規にカーブを作成しています
カーブリサンプルでTargetコレクションにあるオブジェクトの数だけコントロールポイントのある状態にして
インデックスサンプルでインデックスを元に オブジェクトの位置を取得してコントロールポイントの位置を設定しています

カーブプリミティブのカーブラインで作成した場合 直線状で繋がれることになります
またオブジェクトのインデックスの順序は名前順になっているようです

ここでカーブタイプ設定を「カトマルロム」にしたノードを追加することで
オブジェクトを通過する滑らかな曲線 を作成することができます
image.png

複数のカーブ間を繋ぐ曲面を作成する

曲線と同様の方法で 複数のカーブをつなぐような曲面を作成してみたいと思います

まずは先のものと同様に カーブを並べたコレクションを作成し
ジオメトリオードを設定するためのメッシュオブジェクトを作成しておきます
image.png
カーブの種類が混在していても問題ありません

まずはカーブ同士をまっすぐ結ぶようなメッシュを作成してみます
image.png
カーブリサンプル で元になるカーブを定数で分割して
メッシュプリミティブのグリッドでYの頂点を分割数と同じ数だけ作成するように設定しています
こうすることで 頂点の並び順が揃うことになります

参考までに作成されたメッシュの頂点のインデックスを表示するとこうなります
image.png

もし ねじれた形状になった場合にはカーブの方の名前での並び順や
カーブの方向が逆になっていないか確認してください
カーブの方向は カーブの編集モードでポイントを全選択して
セグメントメニューの「向きの反転」で修正できます

複数のカーブ間を滑らかに繋ぐ曲面を作成する

オブジェクト間を滑らかに繋ぐカーブを利用することで
用意したカーブと交差する方向を滑らかにつなぐ座標を計算できます

まずは接続するカーブの作成
image.png
用意したカーブと交差するカーブを ポイントにインスタンス作成を利用して元のカーブを分割するのと同じ数だけ用意します
(ポイントにインスタンス作成 他のノードはCtrl+Hで利用しているソケット以外を非表示にしています)
また座標を設定するためのインデックスは今回は交差する方向になるため 計算で変更しています

これらを元に 曲面を変形するように設定して
モディファイアパネルに表示するグループ入力をまとめるとこういった感じになります
image.png
元のカーブ上の分割数を「U分割数」 生成した方向の分割数を「V分割数」としています

他のカーブを利用した方法に比べ制約が少ないので
うまく使えばマントのような形状を作るのに使ったりもできるのではないかと思います
何かの参考になれば幸いです

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?