On this page |
概要
グループとは、ポイント/フェースの集合体に名前を付けたものです。
Group SOPはジオメトリのポイント/フェースを色々な基準に基づいて並べ替えてから、グループ化します。他のオペレータでも、副作用としてグループを作成します。
ポイントやプリミティブを操作するノードのほとんどには、ノードの効果を追加するオプションがあり、入力としてグループしか対応していないものがあります。そのため、ある特性に基づいてポイントのグループを認識して、それをノードに適用します。
ポイントが削除されても、Houdiniは自動的にそのポイントのグループからポイントを除去します。
順番通りのグループと不規則なグループ
ポイントグループは、 順番通り または 不規則 に並べることができます。不規則なグループは、ポイントを作成順に記録し、順番通りのグループは、ポイントを選択順に記録します。
ビューアペインでポイントを選択するとき、シングルクリックで選択すると、順番通りの選択になります。一方、マウスドラッグで囲んで選択すると、不規則なグループになります。
To... | Do this |
---|---|
ポイント/プリミティブのグループを作成する |
|
既存のグループを使ってポイント/プリミティブを選択して、新しいグループを作成する |
|
グループの結合とフィルタリング
Groupノードのパラメータエディタの Combine タブから既存グループと組み合わせて新しいグループを作成します。
-
Groupノードを作成します。どのコンポーネントもグループ化しておく必要はありません。
-
パラメータエディタの Combine タブをクリックします。
-
Groupフィールドの左側のテキストボックスに新しいグループの名前を入力します。
-
続いて、右側のテキストボックスには、コンポーネントを取得するグループの名前を入力(“=”ボタンがオンの場合は、左側のグループは、右側のグループの内容を引き継ぐことを意味します。また“≠”ボタンがオンの場合は、右側のグループの内容を反転して引き継ぐことを意味します)
一度、最初の行を設定すると、追加で新しい行が利用できるようになるので、さらに別の結合/フィルタリングを行なうことができます。
-
追加した行では、右側には結合/フィルタリングしたいグループ名を入力します。
-
左側には、どのようにグループを結合/フィルタリングしたいのか指定します。
グループの構文
ほとんどのジオメトリオペレータ(SOP)は、特定のポイント/プリミティブのサブセットに対して機能します。ビューアでオペレータを使う時は、必要なポイント/プリミティブを選択します。パラメータエディタでは、このポイント/プリミティブのリストを、以下のパターンによって Group パラメータに指定します。
複数パターンは、スペースで区切って定義します。そして、各パターンにマッチしたものが結合されて、グループが作成されます。
パターン |
意味 |
---|---|
|
ポイント、プリミティブ、頂点、エッジすべて。どの要素にもマッチさせたくないのであれば、 |
|
名前の付いたグループのどの要素にもマッチします。 |
|
コンポーネント番号n。 |
|
Group SOP以外のSOPでは、名前の付いたPoint/Primitiveグループ(Group SOPで作成)を指定することができます。 グループ名にはパターンマッチング( |
|
コンポーネント番号nからmまで(nとmを含む)。 |
|
step毎にスキップされたコンポーネント番号nからmまで(nを含む)。例えば、 |
|
コンポーネント番号nからmまでをステップ値stepで定義したもので、さらに、それに該当する番号から連番でkeepの分(該当番号を含めた個数)だけ番号を確保します。例えば、 |
|
パターンにマッチするもの以外のポイント/プリミティブ。例えば、 patternには、数値パターン、アトリビュートパターン、グループ名パターンを指定することができます。 |
|
前のパターンの結果からそのパターンを引いたもの。例えば、 patternには、数値パターン、アトリビュートパターン、グループ名パターンを指定することができます。 |
|
attributeとvalueがop( 例えば、 アトリビュート名の後に 例えば、 文字列アトリビュートに関してはvalueが空白を含んでいるなら、クォーテーションマークで囲わなければなりません。例えば、 文字列アトリビュートでopに アトリビュートの構文と範囲の構文を組み合わせることができます: @id=5-10 整数パターンを持つアトリビュートの構文を使うこともできますが、引用符でパターンを閉じる必要があります: @id="5 8 10 15" @id="0-4 78" これを使用することで、Intrinsicアトリビュートを比較することもできます: @intrinsic:indexorder<100 |
|
指定したアトリビュートの中で、リストの値のどれかを含んだコンポーネント。 例: @id=1,2,90,120 文字列アトリビュートに関しては、スペースを含んだ値はダブルクォーテーションで閉じなければなりません。例: @path=/foo/*,/bar,"some string" |