| On this page | |
| Since | 10.0 |
Foreachとは、その中のネットワークを各グループに対して複数回クックすることによって、小さいグループでチャンネルの処理を行なう特別なサブネットです。 これにより、ネットワークは単一オブジェクトを扱うように設計すればよいだけなので、数百のパーティクルやオブジェクトの処理が非常に簡単になります。
チャンネルグループパターンを指定することによって、入力1のチャンネルはグループに分けられます。 各グループは、他のチャンネルを持たないサブネットによって処理されます。 サブネット内のチャンネル名は、そのチャンネルグループ名をそれらのチャンネル名から除去するので、常に首尾一貫した名前が付けられます。 サブネットは、追加、修正、名前変更、またはチャンネル削除などあらゆる方法でチャンネルを操作することができます。 サブネットの出力に残っているチャンネルは、チャンネルグループ名を再統合してそれらに戻すと、Foreachノードの出力チャンネルに追加されます。
サブネットには、Forノード、4つのサブネット入力、そしてOutoutノードを含んでいます。 Forノードは最近処理されたチャンネルグループのチャンネルを含んでいます。 衝突検出やその他のグループ間の関係を実行する必要がある場合、1番目のサブネット入力には、反復される全てのチャンネルを含みます。 その他の3つのサブネット入力は、サブネットに対する一定の入力を可能にします。
出力ノードは便利です。Foreachは、Audioフラグセットを使ってノードから出力を描画します。
現行のループ反復は、ch()エクスプレッションを使っているFor CHOPの'Current Loop Index'パラメータから要求されることがあります。
Note
チャンネルグループに割り当てられていないチャンネルは処理されず、出力内に存在しなくなります。
パラメータ
Foreach
Channel Group
チャンネルグループのメンバーを記述するパターンのセット。
チャンネル名が変化する部分を記述するには、ワイルドカード*を使います。
チャンネルグループは、*がチャンネルグループ名に置換される時にパターンと合致するチャンネルによって形成されます。
例えば、leg*:tx leg*:ty leg*:tzというパターンは、leg4:tx、leg4:tyおよびleg4:tzが入力1のチャンネル内にあるとき、4と呼ばれるチャンネルグループを作成します。
Note
チャンネルグループは、数字である必要はありません。
合致パターンは*:tx *:ty *:tzということになり、上記の例は、leg4のチャンネルグループの場合です。
Channel Indexing
チャンネルグループ名はサブネット内のチャンネルから取り除かれるので、チャンネル名はループ内で一定のまま残ります。 これらのチャンネルがForeach CHOPに追加されると、それらの名前がチャンネルグループ名と結合して、チャンネルグループ内で各チャンネル用に固有の名前が作成されます。
Append
チャンネルグループ名がチャンネル名に付加されます。
Replace Token
テキスト文字列を使って、チャンネル名のどこにチャンネル名を挿入すべきかを識別します。
Insert at First Separator
チャンネルグループは、チャンネル名の中の最初の区切り文字(:または/)の前に挿入されます。
Insert at Last Separator
チャンネルグループは、チャンネル名の中の最後の区切り文字(:または/)の前に挿入されます
Group Token
Channel Indexing モードがReplaceのときに置換されるトークン。
お持ちのチャンネル内に本来発生しないテキスト文字列(すなわち、't')でなければいけません。 Foreach CHOP内のそれぞれの出力チャンネルは、名前のどこかにこのトークンを含まなくてはいけません(すなわち、IDX用のトークンであれば、handIDX:tx)。
Renumber From
有効の場合、チャンネルグループ名が無視され、指定されたインデックスで始まって各ループ用に1ずつ増えていく数字に置換されます。
Preview Groups
有効の場合、指定されたチャンネルグループのみが処理されます。これにより、グループの一部を急速にプレビューできるようになります。
Debug Group
有効の場合、指定されたチャンネルグループは最後に処理されます。 これは、中のサブネットを、このチャンネルグループをクックした状態で残すので、問題を調査しデバッグすることができます。 これは、単一のチャンネルグループに対してのみ動作します。
Common
これらのパラメータのいくつかは、すべてのCHOPノードで利用できない場合があります。
Scope
影響を受けるチャンネルを決めるために、いくつかのCHOPにはスコープ文字列があります。パターン(例えば、*(すべてに一致)、?(1文字に一致))は、スコープで使用可能です。
以下に可能なチャンネル名マッチングオプションの例を載せます:
chan2
単一チャンネル名に一致します。
chan3 tx ty tz
スペース区切りで4つのチャンネル名に一致します。
chan*
chanで始まる各チャンネルに一致します。
*foot*
チャンネル名にfootが含まれる各チャンネルに一致します。
t?
?は1文字に一致します。t?はtで始まる2文字のチャンネルに一致します。
r[xyz]
rx、ry、rzのチャンネルに一致します。
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 Slicingはクッキングパフォーマンスを良くしメモリ使用量を少なくする機能です。慣例上、CHOPは全体のフレーム範囲のチャンネルを計算します。チャンネルをフレーム毎に評価する必要がないなら、全体のチャンネル範囲をクッキングするのは不必要です。必要なチャンネルの部分だけを計算するほうが効率的です。この部分のことをTime Sliceと呼びます。
Unload
CHOPで使われるメモリをそのCHOPのクックが終わったあとにリリースして、次のCHOPにデータを渡します。
Export Prefix
ExportプリフィックスをCHOPチャンネル名の前に追加することで、エクスポートする場所を決めることができます。
例えば、CHOPチャンネル名がgeo1:txで、プリフィックスが/objなら、チャンネルは、/obj/geo1/txにエクスポートされます。
Note
Export Prefix を空白のままにすることができますが、CHOPトラック名をobj:geo1:txのように絶対パスの名前にする必要があります。
Graph Color
すべてのCHOPには、このオプションがあります。各CHOPはGraphポートの表示で割り当てられたデフォルトのカラーを取得しますが、Graph Color下のCommonぺージ内のカラーを上書きすることができます。Paletteには36個のRGBカラーの組み合わせがあります。
Graph Color Step
グラフがアニメーションカーブを表示し、CHOPに2つ以上のチャンネルがある時、これは、虹色のカラースペクトルを指定して、あるチャンネルから次のチャンネルへカラーを別のカラーに定義します。
ローカル変数
IDX
ループインデックス。
GRP
グループ名。
| See also |