On this page | |
Since | 10.0 |
ベクトル数学は、投影、内積、距離/長さ計算など、チャンネルと一緒に使用するのに役立つ演算がいくつかあります。 Vectorは、オブジェクトがお互いに向き合っているかどうか、オブジェクトがどれだけ離れているのか、オブジェクト間の角度がどのくらいなのかを判断するのに使うことができます。
このCHOPは、入力チャンネルを Vector Mask パラメータに基づいてベクトルに分離し、それぞれのベクトルに演算を適用します。 2つの入力は、2値ベクトル演算に使用することができます。2番目の入力が1番目の入力ほどベクトルを多く持たない場合、Vectorは、2番目の入力のベクトルを循環させます。
Note
Vector Mask に割り当てられていないチャンネルは、処理されないか、または出力されません。
いくつかのベクトル処理の結果は、スカラーになります。 この場合には、ベクトルチャンネルが削除されて、単一チャンネルに置換されます。 その単一チャンネルの名前は、実行した処理に応じて異なります(例えば、'dist', 'dot', 'angle')。
さらに、オプションのテストを実行すれば、ベクトル処理の結果を、定数値または他のベクトルチャンネルと比較することができます。 このテストの結果を使えば、ベクトルチャンネルを削除したり、それらのベクトルがテストに失敗/合格したどうかを意味する0/1チャンネルを生成することができます。 Test タブには、ベクトルテスト用のパラメータが含まれています。
パラメータ ¶
Vector ¶
Operation
ベクトルに対して実行するベクトル処理を指定します。
Magnitude of A
Aの大きさを計算して、そのベクトルチャンネルを単一スカラーチャンネル'len'で置換します。 2つ以上のベクトルが処理されると、ワイルドカード置換が'len'の後に追加されます(つまり、(tx3,ty3,tz3)ならlen3を生成します)。 この処理には、1つの入力のみが必要なので、2番目の入力は無視されます。
Normalize A
ベクトルを単位ベクトルにします。 この処理には、1つの入力のみが必要なので、2番目の入力は無視されます。
Distance between A and B
AとBのベクトルをポイントと見なして、それらのポイント間の直線距離を計算します。 これはベクトルチャンネルを単一チャンネル'dist'に置換します。
A dot B
入力1(A)のベクトルと入力2(B)のベクトルの内積を計算します。 Aの方がBよりベクトルが多い場合、Bベクトルが最初のベクトルに循環します。 これは、それらのベクトルチャンネルを単一チャンネル'dot'に置換します。
Normalized A dot B
AとBの内積を計算しますが、まず最初にAとBを正規化します。 これは、それらのベクトルチャンネルを単一チャンネル'dot'に置換します。
Angle between A and B
2つのベクトルAとBの間の角度(度)を計算します。 これは、それらのベクトルチャンネルを単一チャンネル'angle'に置換します。
A cross B
AとBの外積を計算します。両方のベクトルは、必ず3つのコンポーネントでなければなりません。 外積は、AとBの両方に直交したベクトルです。
Scalar Project B onto A
これは、BをA上に投影した時に生成されるベクトルの長さを決めます。 これは、それらのベクトルチャンネルを単一チャンネル'proj'に置換します。
Vector Project B onto A
ベクトルA上にベクトルBを投影するので、その結果はAに平行で、その大きさはAとB間の角度に比例します。
Add
ベクトルAをベクトルBに加算します。
Subtract
ベクトルBからベクトルAを減算します。
Reverse Subtract
ベクトルAからベクトルBを減算します。
No operation
そのままベクトルAを通します。一般的には、ベクトルを比較するために Perform Vector Test と一緒に使用する時にのみ役に立ちます。
Vector Mask
ベクトルのメンバーを定義したパターンセット。ワイルドカード*
を使えば2つ以上のベクトルに一致させることができます。
単一ベクトルは、同じワイルドカード置換を使って、各パターンから1つのチャンネルを含みます(つまり、tx* ty* tz*
は(tx1,ty1,tz1)
と(txa,txb,txc)
のようなベクトルを処理します)。
Vector Mask B
2番目の入力(Bベクトル)内のベクトルが異なるベクトル量(例えば、N,P,V)を表現するかもしれない場合に、それらのベクトルに対してベクトルマスクを設定するオプションパラメータ。 無効にすると、 Vector Mask が使われます。
Vector Mask C
3番目の比較入力に対するベクトルマスクで、上記の2つと同様です。 無効にすると、 Vector Mask が使われます。
Align
2つの入力ベクトル処理に対して、このパラメータには、それらの入力のフレーム範囲が異なる時に使用するフレーム範囲と、それらの入力のサンプリングの方法を指定します。
Extend to Min/Max
最も早い開始と最も遅い終了を探し、拡張条件を使って全ての入力をその範囲まで拡張します。
Stretch to Min/Max
最も早い開始と最も遅い終了を探し、それぞれのチャンネルの開始と終了をその範囲まで拡張します。
Shift to Minimum
最も早い開始を探し、全てのチャンネルをシフトするので、その全てのチャンネルがそのインデックスで開始します。 全てのチャンネルは、最長の長さまで拡張されます。
Shift to Maximum
最も遅い終了を探し、全てのチャンネルをシフトするので、その全てのチャンネルがそのインデックスで終了します。 全てのチャンネルを最長の長さまで拡張します。
Shift to First Interval
全てのチャンネルを1番目のチャンネルの開始までシフトし、1番目の入力の範囲を使って全ての入力をサンプリングします。
Trim to First Interval
全てのチャンネルを1番目のチャンネルの範囲までトリムします。
Stretch to First Interval
全てのチャンネルを1番目のチャンネルの範囲まで拡張します。
Trim to Smallest Interval
全てのチャンネルを最小開始/終了の区間までトリムします。 開始および終了値が同じチャンネルでなくても構いません。
Stretch to Smallest Interval
全てのチャンネルを最小開始/終了の区間まで拡張します。 開始および終了値が同じチャンネルでなくても構いません。
Test ¶
比較テストは、初期ベクトル処理の後に実行することができ、そのテストに失敗したベクトルを削除したり、 各ベクトルに対して合格または失敗したサンプルを含んだチャンネルを生成することができます。
Perform Vector Test
ベクトル処理の結果に対してベクトルテストを有効にします。このテストは、その結果を定数値や他の入力と比較します。
Result Vector Test
リストの等号/不等号の条件のどれかを使って、ベクトルを比較する方法を定義します。
Test Against
ベクトルの結果は、定数( Vector Constant )または3つの入力の1つのベクトル/スカラーチャンネルと比較されます。
Vector Constant
このパラメータは、 Test Against を Constant に設定した時の定数です。 これは、(ベクトル結果がベクトル量なら)すべてのフィールドが有効になり、(ベクトル結果がスカラーなら)1番目のフィールドのみが有効になります。
Test Result
ベクトルテストの出力には、元のままのベクトル、修正されたベクトル、またはテスト結果を含んだオン/オフチャンネルのどれかを指定します。
Keep Original Vector A
テストが合格した場合、元のAベクトルが出力で保持されます。テストが失敗した場合、そのベクトルチャンネルが削除されます。 これは、チャンネル数を減らすことで下流のクッキングを高速化するために、テストに失敗したポイントや方向を除去するのに役に立ちます。
Keep Result Vector
テストが合格すると、ベクトル処理の結果が出力に保持されます。テストが失敗すると、そのベクトル処理の結果が除去されます。
Pass/Fail Channel
単一チャンネルは、ベクトル毎にそのベクトルの名前の後に’test'という名前が追加されて作成されます。 このチャンネルは、テストに合格したサンプルに対しては1になり、失敗したサンプルに対しては0になります。 これは、BlendまたはSwitch CHOPを制御するために使うことができます。
Pass If
チャンネルを保持するか破棄するかを決定しているとき( Test Result がKeep Original VectorまたはKeep Result Vectorのとき)、 一部のサンプルはテストが合格し、その他は失敗します。 チャンネルは、丸ごと除去するか丸ごと保持するかのどちらかなので、一部のサンプルで合格して他サンプルで失敗するベクトルチャンネルを解決しなければなりません。
All Samples Pass
ベクトルチャンネルを保持するために、ベクトルテストにおいて全サンプルがテストに合格しなければなりません。
One Sample Passes
ベクトルチャンネルを保持するには、1つのサンプルのみがベクトルテストに合格すればOKです。
A Fraction of the Samples Pass
ベクトルチャンネルを保持するには、指定したサンプルの割合(0.0 から 1.0)がテストに合格しなければなりません。
Pass Fraction
Pass If が'Fraction of the Samples Pass'に設定されている場合、これはテストが合格であるとみなされるために必要なサンプルの割合を設定します。 ゼロでは合格する必要がないことを意味し、1.0は全てのサンプルが合格しなければいけないということを意味します。
Common ¶
これらのパラメータのいくつかは、すべてのCHOPノードで利用できない場合があります。
Scope
影響を受けるチャンネルを決めるために、いくつかのCHOPにはスコープ文字列があります。
Scope 内では、パターン(例えば、*
(すべてに一致)、?
(1文字に一致))が使用可能です。
以下に可能なチャンネル名マッチングオプションの例を載せます:
chan2
単一チャンネル名に一致します。
chan3 tx ty tz
スペース区切りで4つのチャンネル名に一致します。
chan*
chan
で始まる各チャンネルに一致します。
*foot*
チャンネル名にfoot
が含まれる各チャンネルに一致します。
t?
?
は1文字に一致します。t?
はt
で始まる2文字のチャンネルに一致します。
blend[3-7:2]
指定した範囲の番号のチャンネルblend3
、blend5
、blend7
に一致します。
blend[2-3,5,13]
チャンネルblend2
、blend3
、blend5
、blend13
に一致します。
t[xyz]
[xyz]
はチャンネルtx
、ty
、tz
に一致します。
Sample Rate Match
Sample Rate Match オプションは、複数の入力CHOPのサンプルレートが異なる場合を処理します。
Resample At First Input’s Rate
1番目の入力のレートを使って他の入力を再サンプリングします。
Resample At Maximum Rate
一番高いサンプルレートに再サンプリングします。
Resample At Minimum Rate
一番低いサンプルレートに再サンプリングします。
Error if Rates Differ
異なるサンプルレートを受け入れません。
Units
Timeパラメータの単位。
例えば、秒(デフォルト)、フレーム(HoudiniのFPS)、サンプル(CHOPのサンプルレート)の単位で持続する遅延の時間の長さを指定することができます。
Note
Unitsパラメータを変更する時、既存のパラメータを新しい単位に変換しません。
Time Slice
Time Sliceはクッキングパフォーマンスを良くしメモリ使用量を少なくする機能です。慣例上、CHOPは全体のフレーム範囲のチャンネルを計算します。チャンネルをフレーム毎に評価する必要がないなら、全体のチャンネル範囲をクッキングするのは不必要です。必要なチャンネルの部分だけを計算するほうが効率的です。この部分のことを Time Slice と呼びます。
Unload
CHOPで使われるメモリをそのCHOPのクックが終わったあとにリリースして、次のCHOPにデータを渡します。
Export Prefix
Export Prefix をCHOPチャンネル名の頭に追加することで、エクスポートする場所を決めることができます。
例えば、CHOPチャンネル名がgeo1:tx
で、プリフィックスが/obj
なら、チャンネルは、/obj/geo1/tx
にエクスポートされます。
Note
Export Prefix を空白のままにすることができますが、CHOPトラック名をobj:geo1:tx
のように絶対パスの名前にする必要があります。
Graph Color
すべてのCHOPには、このオプションがあります。各CHOPにはグラフ表示用のデフォルトのカラーが割り当てられますが、 Graph Color を使ってそのカラーを上書きすることができます。Paletteには36個のRGBカラーの組み合わせがあります。
Graph Color Step
グラフがアニメーションカーブを表示し、CHOPに2つ以上のチャンネルがある時、これは、虹色のカラースペクトルを指定して、あるチャンネルから次のチャンネルへカラーを別のカラーに定義します。
ローカル変数 ¶
C
現行チャンネル(0からNC-1)。
NC
チャンネルの合計数。
See also |