Blender Sverchok NURBS birailノードを見てみる

Sverchok

はじめに

Blenderで使える Sverchok アドオンの中にはSurfaceを作成するものがあります。

まったく使った事がありませんが、TwitterにSverchokで作成したものをアップしていたら

有用な使い方を教えていただいたので興味が出てきました。

車のボンネットのようなものを作る場合何がよいか考えたときNURBS Birail が使えるようなのでこちらのドキュメントを見ていきます

公式ドキュメント情報

参照元

github.com

依存関係

このノードはオプション的にGeomdlライブラリまはたFreeCASライブラリを使用します。

機能

このノードは1つのNURBSカーブ(プロファイルと呼ばれる)が2つの他のNURBSカーブ(パスやレ―ルと呼ばれる)に沿ってスイーピングする事でNURBSサーフェスオブジェクトを生成します。

プロファイルの開始点は最初のパスへ沿っていき、終点は2番目のパスに沿って行きます。

いくつかのプロファイルカーブもまた使用することができます。

この場合結果のサーフェスはそれらを補間したものとなります。もしいくつかのプロファイルカーブが使われたら、使用者はプロファイルが位置しなければならない所を示すパスのカーブTパラメータを与える事が出来ます。またはパスカーブのTパラメータに沿って自動的に均一に配置します。

与えられるプロファイルカーブはXOY平面にあると仮定しています。

このノードはパスカーブに沿っていくつか複製されたプロファイルカーブを配置する事で動作します。次にそれらをロフトします。もしいくつかのプロファイルカーブが使われたら、それらの間の補間したあとにパスカーブに配置されます。

このノードは「NURBS Sweep」ノードと比較することができます。このノードはパスカーブを1つだけ使用しています。

現時点で、このノードは下記のタイプのカーブでうまく動作します

  • NURBS curves
  • Bezier curvesCubic splines
  • Polylines
  • Circular arcs
  • Line segments

単純なカーブから構成される複雑なカーブを出力するノード(例えば”Rounded rectangle”角丸四角)はNURBS出力パラメータを持ちます。それがチェックされている時、そのようなノードはNURBSカーブを出力し、このノードはそれらの出力からも動作します。

入力

このノードは下記のような入力を持ちます

  • 必須 Path1 最初のカーブでプロファイルカーブがスイープしなければならないところです。
  • 必須 Path2 2番目のカーブでプロファイルカーブがスイープしなければならないところです。
  • 必須 Profile カープまたはカーブ。このノードはパスカーブごとに一つのプロファイルカーブ、またはパスカーブ毎のプロファイルカーブのリストで動作します。
  • VSections プロファイルカーブのコピー数です(複数のカーブが使われた場合は補間されたカーブ)。結果として得られるサーフェスのV方向に沿った制御点の数と等しくなります。通常、値が大きいほど掃引手順の精度が高くなりますが、数値が高すぎると変な結果になったり、遅すぎたりすることがあります。デフォルト値は 10 です。
  • V1, V2 Vパラメータ(すなわちパス曲線のTパラメータ)の値で、プロファイル曲線をロフトするために配置しなければならない位置を指定します。Explicit V Valuesパラメータがチェックされている場合、この入力は利用可能で必須です。ノードは、この入力の値の数がプロファイル曲線の数に等しいことを期待します。1つのプロファイル曲線に対しては、これらの入力は意味を持ちません。V1入力は1つ目のパスのための入力であり、V2入力は2つ目のパスのための入力です。
  • Degree V V方向の補間に使用されるNURBS曲線の度数。Sverchokの数値入力のほとんどがそうであるように、この入力はネスティングレベルが2までのデータを処理することができます(数値のリスト)。度数を1にすると、”線形ロフト”、すなわち、複数の罫線のあるサーフェスから構成されたサーフェスになります; 度数を高くすると、より滑らかなサーフェスになります。デフォルト値は3です。

パラメータ

  • Implementation. 使用するNURBS数学の実装を定義します。利用可能なオプションは以下の通りです。
    • Geomdl. Geomdlライブラリを使用します。このオプションはGeomdlパッケージがインストールされている場合のみ有効です。
    • Sverchok. Sverchokのビルドイン機能を使います
    • FreCAD FreeCADライブラリを使います。このオプションはGeomdlパッケージがインストールされている場合のみ有効です。

一般的にビルドイン実装が最も速いです。しかしGeomdl実装はよくテストされています。利用可能な場合、デフォルトはGeomdlです。されていなければビルドイン実装です。

  • Scale all axes チェックされていなければ2つのパスのスペースを埋めるためにプロファイルカーブは一つの軸のみでスケールされます。チェックされていればプロファイルカーブは全ての軸に均一に沿ってスケールされます。デフォルトではチェックされています。
  • Explicit V Values チェックされている場合、ユーザーはパスカーブのパラメータ値を提供することができ、提供されたパスカーブが配置されなければなりません。そうでなければ、ノードはこれらのパラメータを自動的に計算します(均等に)。このパラメータは、プロファイル曲線が1つしかない場合には意味を持ちません。
  • U Knots このパラメータはNパネルのみで利用可能です。 これは、ノードが入力曲線を修正して、全く同じノットベクトルを使用するようにする方法を定義します。利用可能なオプションは以下の通りです。
    • Unify. 他のカーブのノットがある場所には、各カーブごとに追加のノットを挿入します
    • Average. 入力曲線のノットベクトルを平均化してノットベクトルを計算します。これは、入力曲線が同じ数の制御点を持つ場合にのみ機能します。

Unify オプションはよく多くの追加の制御点を追加します。その方が汎用性が高く、多くの場合、より正確です。平均モードは追加の制御点を作成しないので、より高速に動作し、生成されたサーフェスで作業する後続のノードもより高速に動作します。デフォルト値はUnifyです。

  • Metric. このパラメータはNパネルのみで利用可能です。V 方向に沿った補間に使用する距離タイプ。使用可能な値は以下の通りです。
    • Manhattan
    • Euclidian
    • Points
    • Chebyshev
    • Centripetal

出力

  • Surface 生成されたNURBSサーフェス
  • AllProfiles サーフェスを作るために実際に使われたカーブ。これらはProfile入力に渡されたものです。
  • VCurves スキニング時に表面の制御点を計算するために使用された、表面のV方向に沿った曲線

使ってみる

  • ボンネットを作ると考えたときに、このノードで考えると
    • 赤い部分がパス(またはレール)と呼ばれる2つのカーブ
    • 黄色い部分がプロファイル(断面)

という事ですね。

ボンネットじゃなくてもよいですが恐らく最も単純な例なため、こちらの作成をしてみます。

という事で上記のように2つのパスを用意(赤丸部分)

黄色い円の中にあるのは手書きのプロファイル

  • 右下にある Evaluate Curveノードは消し忘れです

手書きのプロファイル(断面の曲線)がいい加減だったためボンネットもボコボコしていますが、驚くほど簡単にできたのでこれはかなり使えそうです。

タイトルとURLをコピーしました