On this page | |
Since | 20.0 |
いくつかの入力のコントロールマトリックスからスプラインを生成します。 それらのコントロールマトリックスの位置が、生成されるスプラインの形状を定義し、 そのコントロールマトリックスの左上3×3の部分のトランスフォームが、スプラインの向きを定義します。 そして、 resampled ポートで利用できるように、その生成されたスプラインを任意の数のサンプリング数でリサンプリングして出力トランスフォームを生成します。 さらに、 twists ポートを介してそれらの出力トランスフォームに捻り(Twist)を適用することができます。
Note
出力トランスフォームは、その-Z軸が次のサンプルの方を指し、且つ、その+Y軸がそのコントロールマトリックスの補間された+Y軸にできるだけ近くになるような向きになります。
この挙動は、いくつかの不安定さの原因となっているため、ユーザは、この不安定さを修正したrig::SplineInterpolateTransforms::2.0
を使用するようにしてください。
このrig::SplineInterpolateTransforms::2.0
には、さらにポイントが次のサンプルの方を向くようにユーザ側で接線方向を選択できるような柔軟性が追加されています。
内部的には、コントロールマトリックスから生成されるスプラインは、 order 階数のベジェ曲線です。
これは、コントロールマトリックスの数がCVの数 % (order-1)
の方程式を満たなさなければならないことを意味します。
この制約は将来のバージョンのHoudiniで撤廃される可能性がありますが、必要な数の(transform
Pointアトリビュートを持った)コントロールポイントでNURBS曲線を生成し、rig::SampleSplineTransformsを使用してそのコントロール曲線をサンプリングすることで、これを回避することができます。
入力 ¶
cvs:
VariadicArg<Matrix4>
コントロールスプラインの生成と向きの定義に使用するコントロールマトリックス。
コントロールマトリックスの数は、CVの数 % (order-1)
の方程式を満たなさなければなりません。
twists:
VariadicArg<Float>
出力トランスフォームに追加する捻り(Twist)。単位はラジアンです。
CV毎にTwist値が存在している必要はありません。
0
や2*M_PI
の値を追加すると、出力トランスフォームは、そのトランスフォームのZ軸で全回転で捻れます。
追加されるTwist値は、スプラインの長さに沿って線形的に補間されます。
order:
Int
生成されるスプライン曲線の階数(次数+1)。
smooth:
Bool
Trueの時、出力トランスフォームにSmoothstepスムージングを追加します。 デフォルト値はFalseです。
出力 ¶
resampled:
VariadicArg<Matrix4>
リサンプリングされたトランスフォーム。 このポートの接続数は、生成されたスプライン上のリサンプリングポイントの数を制御します。
See also |