On this page | |
Since | 20.5 |
いくつかの入力のコントロールマトリックスからスプラインを生成します。 それらのコントロールマトリックスの位置が、生成されるスプラインの形状を定義し、コントロールマトリックスの上3×3の部分のトランスフォームが、スプラインの向きを定義します。 生成されたスプラインは、可変回数でリサンプリングされ、 xforms サブポートで使用できる出力トランスフォームを生成します。 追加の捻じり(Twist)は、 twists ポートを介して出力トランスフォームに適用できます。
出力トランスフォームは、サンプルの隣接する入力トランスフォームに基づいて補間され、 tangent ベクトルが次のサンプルを指すように調整されます。 デフォルトの接線ベクトルはマイナスZ軸であるため、コントロールマトリックスのマイナスZ軸もデフォルトでスプラインの目的の接線方向を指していることになります。 コントロールマトリックスが異なるローカル接線ベクトルを使用して接線方向を定義する場合は、それに応じて tangent ポートを更新する必要があります。 例えば、コントロールマトリックスが接線方向としてプラスX軸を使用する場合、 tangent を(1, 0, 0)に更新する必要があります。
内部的には、コントロールマトリックスから生成されるスプラインは、指定した order のBezierカーブです。
これは、コントロールマトリックスの数が<number_of_cvs> % (order-1) == 1
の方程式を満たさなければならないことを意味します。
この制約は今後のバージョンのHoudiniで撤廃される可能性がありますが、必要な数の(transform
Pointアトリビュートを持った)コントロールポイントでNURBSカーブを生成し、
rig::SampleSplineTransformsを使用してそのコントロールカーブをサンプリングすることで、これを回避することができます。
入力 ¶
cvs:
VariadicArg<Matrix4>
コントロールスプラインの生成と向きの定義に使用するコントロールマトリックス。
コントロールマトリックスの数は、<number_of_cvs> % (order-1) == 1
の方程式を満たなさなければなりません。
twists:
VariadicArg<Float>
出力トランスフォームに追加する捻り(Twist)。単位はラジアンです。CV毎にTwist値が存在している必要はありません。
0
や2*M_PI
の値を追加すると、出力トランスフォームは、そのトランスフォームのZ軸で全回転で捻れます。
追加されるTwist値は、スプラインの長さに沿った値間で線形補間されます。
order:
Int
生成されるスプラインカーブの階数。
tangent:
Vector3
次のポイントに揃えられる xforms のローカル空間接線ベクトル。 デフォルト値はマイナスZ軸です( xforms のマイナスZ軸は次のポイントの方を指します)。
smooth:
Bool
Trueに設定されている場合、出力トランスフォームにSmoothstepスムージングを追加します。 デフォルト値はFalseです。
出力 ¶
outgeo:
Geometry
リサンプリングされたスプラインを含むジオメトリ。 出力ジオメトリには以下のPointアトリビュートがあります:
-
curveu
:入力ジオメトリ geo 上のサンプリングされたポイントのパラメトリック値。 -
name
:ポイントのトランスフォームに対応する xforms サブポートの名前。 -
transform
:トランスフォームがリサンプリングされた3×3マトリックス。 -
tangentu
:次のポイントの方向を指すベクトル。
arclength:
Float
入力 cvs から生成されたコントロールスプラインの円弧長。
xforms:
VariadicArg<Matrix4>
出力トランスフォーム。 このポートへの接続数が、 outgeo スプラインのリサンプリングされたポイントの数を制御します。
Note
このバージョンのノードで、このポートの名前は resampled から xforms に変更されました。
See also |