On this page | |
Since | 20.0 |
いくつかの入力のコントロールマトリックスからスプラインを生成します。 それらのコントロールマトリックスの位置が、生成されるスプラインの形状を定義し、 そのコントロールマトリックスの左上3×3の部分のトランスフォームが、スプラインの向きを定義します。 そして、 resampled ポートで利用できるように、その生成されたスプラインを numsamples のサンプリング数でリサンプリングして出力トランスフォームを生成します。 さらに、 twists ポートを介してそれらの出力トランスフォームに捻り(Twist)を適用することができます。
出力トランスフォームは、サンプルの隣接する入力トランスフォームに基づいて補間され、それから、 tangent ベクトルが次のサンプルの方へ向くように調整されます。
デフォルトの接線ベクトルは-Z軸です。
これは、デフォルトでは、コントロールマトリックスの-Z軸もスプラインの目的の接線方向に向いているはずであることを意味しています。
コントロールマトリックスが異なるローカル接線ベクトルを使用して接線方法を定義している場合、それに応じて tangent ポートを更新してください。
例えば、コントロールマトリックスが+X軸を接線方向として使用する場合、 tangent は(1, 0, 0)
に更新するべきです。
内部的には、コントロールマトリックスから生成されるスプラインは、 order 階数のベジェ曲線です。
これは、コントロールマトリックスの数がCVの数 % (order-1)
の方程式を満たなさなければならないことを意味します。
この制約は将来のバージョンのHoudiniで撤廃される可能性がありますが、必要な数の(transform
Pointアトリビュートを持った)コントロールポイントでNURBS曲線を生成し、rig::SampleSplineTransformsを使用してそのコントロール曲線をサンプリングすることで、これを回避することができます。
入力 ¶
cvs:
Matrix4Array
コントロールスプラインの生成と向きの定義に使用するコントロールマトリックス。
コントロールマトリックスの数は、CVの数 % (order-1)
の方程式を満たなさなければなりません。
twists:
FloatArray
出力トランスフォームに追加する捻り(Twist)。単位はラジアンです。
CV毎にTwist値が存在している必要はありません。
0
や2*M_PI
の値を追加すると、出力トランスフォームは、そのトランスフォームのZ軸で全回転で捻れます。
追加されるTwist値は、スプラインの長さに沿って線形的に補間されます。
numsamples:
Int
出力スプラインで取得されるサンプル数。
order:
Int
生成されるスプライン曲線の階数(次数+1)。
smooth:
Bool
Trueの時、出力トランスフォームにSmoothstepスムージングを追加します。 デフォルト値はFalseです。
byedge:
Bool
スプラインの各セグメントを別々にサンプリングします。 これは、入力ジオメトリのエッジ毎に numsamples の数のポイントをサンプリングします。
出力 ¶
resampled:
Matrix4Array
リサンプリングされたトランスフォーム。
See also |