| On this page | 
概要 ¶
ノードの“バンドル”に名前を付けることができます。
そのバンドル名の頭にバンドルの内容を意味する@記号を付ける(例えば@lights)ことで、ノードのリストを受け取るパラメータにバンドルを使用することができます。
Tip
バンドルは元々はLight Linkingで便利なものとして作成していました。しかし、現在推奨されているLight Linkingを自動的に行なう方法は、カテゴリを使用することです。 カテゴリは、ノードのリストを明示的に構築することなく、タグによって動作します。
バンドルは、特定の環境では今でも役立ちます。
バンドルリストは、現行シーンのバンドルすべてを表示します。バンドルは、ノードのグループであり、異なるネットワークのノードもグループにすることができます。バンドルは、名前によってノードのグループを参照することができます。バンドルは、ライトのリンクで特に役に立ちます。
どこでもバンドルを使えるようにするには、Houdiniではノードのリストに@‹bundle›を使う必要があります。例えば、keylightsという名前のバンドルがあれば、@keylightsという名前にすることでライトマスクから参照できるようになります。
バンドルは、フィルターが適切に設定されている時の選択メニューでのみ表示されます。 例えば、オブジェクトを受け入れるだけの選択メニュー(例えば、ROPのCandidate Objects)では、バンドル内のフィルターを Geometry Only に設定する必要があります。
標準(手動)バンドル ¶
標準バンドルの内容は、ノードをバンドルリストペインのバンドル上にドラッグするか、またはツールバーのボタン(以下参照)を使うことで設定することができます。
| To... | Do this | 
|---|---|
| 
             新しくバンドルを作成する  | 
        
    
     Bundle ▸ New Bundle を選択、またはツールバーから  | 
    
| 
             現在の選択からバンドルを作成する  | 
        
    
     ネットワークエディタのバックグラウンドで  | 
    
| 
             バンドルに特定のタイプのノードを限定して追加する  | 
        
    
     左のリストからバンドルを選択して、下にある Filter メニューを使います。  | 
    
| 
             ノードをバンドルに追加する  | 
        
    
     ネットワークエディタからノードをバンドルリストペインのリストのバンドル名の上にドラッグアンドドロップします。 または 
  | 
    
| 
             バンドルからノードを除去する  | 
        
    
 または 
  | 
    
| 
             バンドルのノードのフラグを閲覧・編集する  | 
        
    
  | 
    
| 
             バンドルの名前を変更する  | 
        
    
     左のリストのバンドル名をクリックします。  | 
    
| 
             既存のバンドルを複製する  | 
        
    
     バンドルリストペインでバンドルを選択して、 Bundle ▸ Duplicate を選択します。  | 
    
| 
             複数のバンドルの内容を1つのバンドルに結合する  | 
        
    
     バンドルリストペインで結合したいバンドルを選択して、 Bundle ▸ Merge を選択します。  | 
    
| 
             バンドルを削除する  | 
        
    
     バンドルリストペインから削除したいバンドルを選択して、 Bundle ▸ Delete を選択します。  | 
    
| 
             標準バンドルをスマートバンドルに変換する  | 
        
    
     バンドルリストペインから変換したいバンドルを選択して、 Bundle ▸ Convert To Smart Bundle を選択します。  | 
    
ツールバー ¶
    
        
新しくバンドルを作成します。
        
新しくスマートバンドルを作成します(以下参照)。
        
現在選択しているノードをバンドルの内容に設定します。
        
現在選択しているノードをバンドルの内容に追加します。
        
現在選択しているノードをバンドルの内容から除去します。
        
バンドルのすべてのノードの 選択 フラグをオン・オフします。
        
バンドルのすべてのノードの ディスプレイ フラグをオン・オフします。
        
バンドルのすべてのノードの バイパス フラグをオン・オフします。
        
バンドルのすべてのノードの テンプレート フラグをオン・オフします。
        
バンドルのすべてのノードの エクスポーズ フラグ(ネットワークエディタにノードを表示・非表示する)をオン・オフします。
        
バンドルの内容のノードを選択します。
        
バンドルの内容のノードを追加選択します。
        
バンドルの内容のノードを選択解除します。
スマートバンドル ¶
通常は、バンドルリストペインのバンドル上にノードをドラッグすることでバンドルの内容を定義します。さらには、 スマートバンドル も定義することができます。これはiTunesのスマートプレイリストのようなものです。スマートバンドルは、あなたが定義したパターンに一致するノードを自動的にすべて格納します。
| To... | Do this | 
|---|---|
| 
             スマートバンドルを作成する  | 
        
    
     Bundle ▸ New Smart Bundle を選択するか、またはツールバーの  | 
    
| 
             スマートバンドルのマッチングパターンを編集する  | 
        
    
     スマートバンドルのアイコンをダブルクリックします。 このパターンにマッチしたパスのノードがバンドルに追加されます。ノードを作成/削除すると、バンドルの内容が自動的に更新されます。 パターンは、スペース区切りで複数のパターンを定義することができます。ノードのパスが、そのパターン すべて にマッチすれば、ノードがバンドルに入ります。  | 
    
| 
             スマートバンドルを標準バンドルに変換する  | 
        
    
  | 
    
スマートバンドルパターン ¶
- 
        
        
任意の文字列にマッチさせるには、
*を使います。 - 
        
        
任意の1文字にマッチさせるには、
?を使います。 - 
        
        
指定したパターン以外のパターンにマッチさせるには、
^を使います。 - 
        
        
次の
/の直前までの文字列のパターンにマッチさせるには、%を使います。 - 
        
        
区切り文字
|を使ってカッコの中のパターンにマッチさせるには、(、|、)を使います。 - 
        
        
スラッシュを含まないパターンは、ノードの名前では、どのノードにもマッチします。
 - 
        
        
パターンの終わりに
*を置く(例:/obj/model*)ことで、ノード名がmodelで始まる/obj/下のノードがマッチし、さらに、そのノードの子の階層までがパターンの対象になります。なぜならば、*はスラッシュ(/)にマッチするからです。ノード名が
modelで始まるノードにマッチさせ、その子にはマッチさせたくない場合は、合成パターン:/obj/model* ^/obj/model*/*を使います。2番目のパターンの前にある^は、/obj/model*/*にマッチするノードを含めないことを意味しています。 
スマートバンドルパターンの例 ¶
/obj/%
        
オブジェクトレベルのノードにマッチしますが、その子にはマッチしません。
/obj/node(12|13|14)/child
        
次のパスのどれかのノードにマッチします: /obj/node12/child, /obj/node13/child, obj/node14/child
/obj/*/child
        
objのサブチャイルドでノード名が“child”のノードにマッチします(例:*は“/obj/”と“/child”の間にどの文字にもマッチします)。
カテゴリへの適合 ¶
スクリプトを組むことで、オブジェクトが属するバンドルの名前をカテゴリ名として使用することが可能です。
Pythonセッションモジュールでは、以下の関数を実装することができます( Windows ▸ Python Source Editor )。
def bundleList():
    node = hou.pwd()
    bundles = []
    for b in hou.nodeBundles():
        if b.containsNode(node):
            bundles.append(b.name())
    return ' '.join(bundles)ジオメトリノードの Categories パラメータにpythonexprs('hou.session.bundleList()')を置いてください。そうすると、オブジェクトのカテゴリとしてバンドル名を表示させることができます。