| On this page |
概要 ¶
Houdiniでは、パラメータ値のセット、ネットワークアイテム(ノード、ドット、ステッキーノート、ネットワークボックス)のセットを、名前が付いた レシピ として保存することができます。 レシピに保存すれば、必要な時にいつでもそれらのパラメータ値を適用したり、それらのノードを再現することができます。
4種類のレシピを作成することができます: パラメータプリセット、ノードプリセット、デコレーション、ツール。
各レシピは、Data Node Type Categoryとして作成されます。
レシピを保存すると、Houdiniはそのレシピを.hda拡張子のデジタルアセットライブラリファイルに保存します。
これによって、デジタルアセットと一緒にレシピを保存することができるので、そのデジタルアセットファイブラリファイルをインストールすれば、その中に含まれているレシピもインストールされます。
Tip
Houdiniをアップデートした後、recipe.hdaファイルがまだ存在しなかった場合、以前のrecipe.hdaファイルを新しいバージョンのHoudiniのotlsディレクトリにコピーしてください。
そのotlsディレクトリに既にrecipe.hdaファイルが存在した場合、コピーした古いファイルがその既存ファイルを上書きします。
ネットワークエディタ内で既存のノードから直接レシピを作成したり、その内容をレシピとして保存するRecipe Builderを作成することもできます。
パラメータプリセットの保存 ¶
パラメータプリセットは、単一パラメータの値をレシピとして保存します。 これは、大量または複雑なマルチパラメータインスタンスセットを保存してから、それらを様々なパラメータに適用したい場合に役立ちます。
| To... | Do this |
|---|---|
|
パラメータプリセットを作成する |
|
|
マルチパラメータインスタンスを置換ではなく追加するレシピを作成する |
|
|
パラメータプリセットを適用する |
パラメータエディタ内で、パラメータを |
ノードプリセットを保存する方法 ¶
ノードのパラメータ値のセット、さらには、Spareパラメータ値までもレシピとして保存することができ、そして、その保存されたパラメータ値を他のノードに適用することができます。 後でそれらの値すべてを一度に設定したいとなった時に、既存のノードにそのプリセットを適用することができます。
オプションで、ノードの 内容 をレシピの一部として保存することもできます。
これは、例えば、Pyro Solver SOPのDive Targetコンテキスト内の内容をレシピとして保存してそのレシピを適用すれば、ノードに特定のパラメータが設定され、さらにDOPネットワークも入力されるようになるので便利です。
Note
このタイプのレシピは、 既存ノード のパラメータ値と可能であればその内容までを 変更 するためのものです。 特定のパラメータ値と内容を持つ特定のタイプのノードを配置するだけの手段が必要な場合、代わりにツールレシピを使用します(以下参照)。
Spareパラメータをプリセットの一部として保存した場合、そのプリセットを適用すると、それらのSpareパラメータがまだ存在していなければ、ターゲットノード上にそれらのパラメータが作成されます。
| To... | Do this |
|---|---|
|
パラメータ値をプリセットとして保存する |
Tip パラメータエディタペイン内でパラメータを編集した場合、 |
|
パラメータプリセットをノードに適用する |
|
|
既存のパラメータプリセットを編集する |
|
以下のプリセットを編集する方法を参照してください。
デコレーションレシピを保存する方法 ¶
デコレーション はツールレシピに似ていますが、レシピ内の1つのノードを“セントラル”ノードとして指定します。 このセントラルノードとは、ユーザがデコレーションを適用するノードの プレースホルダー のようなものです。デコレーションをネットワークエディタ内の“ターゲット”ノードに適用する時、Houdiniは以下の操作を行ないます:
-
レピシ作成者が保存したパラメータをセントラルノードに適用します。
-
ターゲットノードの周囲にレシピ内のその他のノードを生成します。
-
ターゲットノード上のコネクションを、レシピ作成者が設定したとおりに、新しいノードセットアップ内の適切なノードに接続し直します。
例えば、通常ではPyro Solverの後にボリュームをシャープ化するノードを追加する場合、Pyro Solverとシャープ化ノードで事前作成されたセットアップを配置するツールレシピを作成するか、または、既存のPyro Solverにシャープ化ノードを追加するデコレーションレシピを作成することになると思います。 あるいは、ツールレシピとデコレーションレシピの両方を作成して、ツールレシピを使って新しいセットアップを作成でき、デコレーションレシピを使って既存のセットアップに追加できるようにするのも良いでしょう。
| To... | Do this |
|---|---|
|
ノードセットアップをデコレーションとして保存する |
|
|
デコレーションをノードに適用する |
ネットワークエディタ内でノードを右クリックして Recipes サブメニューを開き、適用したいデコレーションを選択します。 |
以下のデコレーションを編集する方法を参照してください。
ツールレシピを保存する方法 ¶
ツールレシピ は、ノードまたはノードセット(接続と現行パラメータ値を含む)を、Tabメニューの新しいツールとして保存します。 保存した後は、Tabメニューからそのツールを選択することで、その保存されたノードセットアップを再現することができます。
| To... | Do this |
|---|---|
|
ノードまたはノードセットをツールとして保存する |
|
|
ツールレシピの内容を配置する |
ツールレシピの配置の挙動は、単一ノードを生成する他のツールと同様ですが、ツールレシピは複数のノードを一括で生成することができます。
|
|
ツールの内容をノードの入力または出力に接続する |
ワイヤーを開始してツールレシピを選択する挙動は、単一ノードを生成する他のツールと同様ですが、ツールレシピは複数のノードを一括で生成することができます。
|
以下のツールを編集する方法を参照してください。
パターン ¶
プリセットやデコレーションでは、レシピが表示されるノードタイプまたはパラメータをレシピメニューから選択することができます。
Node Type Pattern ¶
-
これは、パラメータプリセット、ノードプリセット、デコレーションに適用されます。 これは、 Pattern パラメータ( Show for が
Nodes Matching a Custom Patternの場合)または Node Type Pattern パラメータのどちらかです。 -
レシピメニュー内でこのレシピが表示されるノードタイプ。デフォルトでは、元のノード(プリセットの場合)またはセントラルノード(デコレーションの場合)と同じノードタイプに対してレシピが表示されます。
-
パターンには、hou.text.patternMatch関数と同様に標準のHoudiniパターンマッチングを使用します。
*ワイルドカードは、どの文字列にもマッチします。 -
パターンには、パターンをスペースで区切ったリストを指定することができます。名前がそのリスト内の どれか にマッチしたノードタイプに対してレシピが表示されます。
-
Houdiniは、ノードの カテゴリを含んだ内部名 (例えば、
acme::Sop/foobar::2.0)とパターンのマッチングを試みます。 -
例えば、
acmeネームスペース内のすべてのノードとマッチさせるには、acme::*を使用します。 -
複数のカテゴリにマッチさせたい場合(例えば、すべてのSOPとすべてのDOPにマッチさせたい場合)、可能性のあるケースにマッチするように複数のパターンをスペースで区切ったリストを記述する必要があります。例えば、ネームスペースのないSOP、ネームスペースのあるSOP、ネームスペースのないDOP、ネームスペースのあるDOPにマッチさせる場合は、
Sop/* *:Sop/* Dop/* *:Dop/*と記述します。 -
パターンにはワイルドカードを使用する必要はありません。レシピを特定のノードタイプのみに表示させたい場合、単にそれらのノードの内部名をスペース区切りのリストで記述すれば良いだけです。
Tip
レシピを作成した後でも、そのパターンで適切にマッチしないことが分かったなら、そのパターンを編集することができます。
ノードがそのパターンにマッチするかどうかをチェックしたいのであれば、hou.text.patternMatchとhou.Node.nameWithCategoryを使用すると良いでしょう:
>>> my_pattern = "acme::*" >>> # このノードがそのパターンにマッチしますか? >>> hou.text.patternMatches(my_pattern, hou.node("/obj/geo1/my_node").type().nameWithCategory()) True
Parm Name Pattern ¶
-
これは、パラメータプリセットに適用されます。
-
レシピメニュー内でこのレシピが表示されるパラメータ名。デフォルトでは、レシピが取得を試みるパラメータと同じパラメータに対して表示されます。
-
末尾が
seedで終わるHoudini内のすべてのパラメータにマッチさせるには、これを*seedに設定し、 Node Type Pattern をオフにします。 例えば、これは、末尾がseedで終わるすべてのパラメータに対してレシピを表示したい場合に役立ちます。
Parm Type Pattern ¶
-
これは、パラメータプリセットに適用されます。
-
レシピメニュー内でこのレシピが表示されるパラメータタイプ。デフォルトでは、レシピが取得を試みるパラメータと同じパラメータに対して表示されます。
-
例えば、
float integerを使用することで、浮動小数点パラメータと整数パラメータに対してのみレシピが表示されます。
Tip
パラメータタイプがパターンにマッチするかどうか確認する方法:
>>> my_pattern = "float" >>> # Does this node match the pattern? >>> hou.text.patternMatches(my_pattern, hou.parmTuple('/obj/geo1/scale').parmTemplate().interfaceType()) True
保存先を選択する方法(上級者向け) ¶
レシピダイアログの Save to メニューのデフォルトは User Preferences です。 これは、すべてのレシピをユーザプリファレンスディレクトリ内のアセットライブラリに保存します。通常はこれで十分です。 しかし、既存のアセットにレシピを埋め込みたい場合、または、レシピを共有して使いたい場合(大規模スタジオの場合)、レシピの保存先を変更したり、レシピアセットの内部名を編集することができます。
例えば、スタジオで共有できるようにツールを作成する場合、ツールを共有ネットワークドライブに保存し、そのツールの内部名には、スタジオ固有のネームスペースとバージョン番号(例えば、acme::vellum_cloth_tool::2.0)を使用したいことでしょう。
保存場所 ¶
| To... | Do this |
|---|---|
|
レシピの保存先を選択する |
レシピダイアログの Save to ポップアップメニューをクリックして、以下のどれかを選択します: User Preferences レシピアセットを Store In Same Library as ‹name› レシピをソースノードタイプと同じアセットライブラリに保存します。 このオプションは、Houdiniにインストールされている“ファクトリー”ノードタイプでは利用不可です。 $HIP/otls Directory アセットを現行シーンファイルと同じディレクトリの $JOB/otls Directory アセットを Embed in Current HIP File アセットを現行シーンファイルの一部として埋め込みます。 これは、自己完結した作業シーンファイルを共有する時に役立つ場合があります。 Note これはシーンファイルのサイズを増やしてしまいます。 Custom File Path このオプションを選択してから、そのポップアップメニューの隣のフィールドに保存先のアセットライブラリのパスを入力するか、 または 、ファイル選択アイコンをクリックして、ファイルダイアログから保存先のファイルを選択します。 Tip Houdiniをアップデートした後、 |
内部名 ¶
各レシピアセットは、名前の干渉が起きないようにデフォルトの内部名が指定されています。
この内部名には、 そのアセットを作成したノードのタイプ をスコープとして、 あなたの名前 ($HOUDINI_AUTHORを設定した場合は、その値)をネームスペースとして、レシピタイトルをエンコードしたバージョンをベース名として使用します。
| To... | Do this |
|---|---|
|
レシピを作成する時に内部名を変更する |
|
レシピを編集する方法 ¶
| To... | Do this |
|---|---|
|
Recipe Managerを開く |
メインメニューから Windows ▸ Recipe Manager を選択します。 |
|
レシピを削除する |
Recipe Managerで、削除したいレシピを選択して、 Delete ボタンをクリックします。 |
|
レシピの名前を変更する |
または
|
|
レシピを非表示にする |
|
|
Recipe Managerからレシピを編集する |
Note レシピを頻繁に編集する場合、編集と再保存をより迅速に行なうことができる |
Tip
レシピはデジタルアセット内に格納されるので、Asset Manager、Type Properties Editor、ノードタイプとアセット定義を制御するHOM関数を使用して、レシピを管理することもできます。
上級者向けオプション ¶
通常ではこれらの設定を変更する必要はありません。 これらの設定をレシピダイアログに表示するには、 Show Advanced Options ボタンをクリックします。
Recursively Save Node Contents
これをオフにすると、ツールまたはデコレーションは、トップレベルのノードのみを持つようになり、サブネットワークまたはロック解除されたアセットの内容は保存されなくなります。
Save Editable Dive Targets
アセットは、定義内のサブネットを編集可能なDive Targetとして指定することができます。 そのアセットインスタンスを作成したユーザは、そのDive Target内で独自のノードを配置して、そのアセットの挙動に影響を与えることができます。 通常では、Houdiniはサブネットワークの内容をレシピの一部として保存します。 このオプションをオフにすると、サブネットワークの内容が無視されます。
セントラル/アンカーノードの編集可能な内容を保存するコントロールと他のすべてのノードの内容を保存するコントロール(Non-Anchor Nodeオプション)が別々に存在します。
Save View Flags (at Top Level)
通常ではビューフラグを変更するようなレシピを適用することはないので、Houdiniはビューフラグ(Output、Display、Render)をレシピの一部として 保存しません 。 非ビューフラグ(“Frozen”や“Bypass”など)が常に保存されます。 このオプションをオンにすると、ビューフラグをレシピの一部として保存することができます。
Only Save Nodes
通常では、Houdiniはステッキーノート、ネットワークボックス、ドットをレシピの一部として保存します。 このオプションをオンにすると、レシピはノードだけを保存し、他のタイプのネットワークオブジェクトを無視します。
最後に呼び出されたレシピ ¶
Houdiniは、パラメータプリセットおよびノードプリセットのレシピをノードに適用する度に、最後に呼び出されたレシピを記録に残します。
サブメニューを使用してレシピを保存すると、そのサブメニューエントリーと共に最後に呼び出されたレシピの名前が Recipeメニューに表示されます。
カスタムプリセットメニューにも、最後に呼び出されたレシピを表示することができます。 詳細は、プリセットメニューサンプルの作成を参照してください。
Recipe Builder ¶
レシピを生成するもう1つの方法は、Recipe Builderを使用することです。 Recipe Builderは、レシピを自動で生成します。 これによって、レシピの内容をサブネットワーク内に配置して、その内容とキャプチャ設定をHIPファイルに保存することができます。
詳細は、Recipe Builderを参照してください。
スクリプト ¶
スクリプトを使用してレシピを作成、適用、実行する方法は、レシピのスクリプトを書く方法を参照してください。
レシピのデータフォーマット ¶
レシピのデータフォーマットの詳細は、レシピのデータ形式を参照してください。