| Inheritance |
|
メソッド ¶
シェーダ情報 ¶
shaderName(as_otl_path=True, shader_type_name=None)
→ str
(シェーダが組み込みシェーダの場合)このVOPで定義されたシェーダの名前、またはこのVOPが存在するSHOPで定義されたシェーダ名を返します。
as_otl_pathがTrueなら、そのSHOPタイプのopdef:パスを返します。
shader_type_nameは、使用するシェーダコンテキストタイプを示した文字列です。
いくつかのノードには、いくつかのシェーダタイプが備わっており、各シェーダタイプの名前は異なっています。
これはvopnet material SHOPなどの複数コンテキストシェーダノードにのみ適用可能です。
shaderNameForSignature(signature=None)
→ str
このVOPに指定されたシグネチャのシェーダの名前を返します。
VOPシグネチャ別にシェーダ関数名が異なるので、このメソッドは、パラメータで指定されたシグネチャのシェーダ名を返します。
signatureを指定しなかった場合、このノードの現在のシグネチャが使用されます。
shaderCode(shader_type=hou.shaderType.Surface)
→ str
このSHOPに対して生成されたVEXまたはRSLのコードを返します。指定したシェーダタイプを使用することで、出力コンテキストを制御することができます。 そのVOPが、カプセル化されたシェーダとしてパッケージ化することができるサブネットであれば、カプセル化されたシェーダを定義するための固有のコードが出力されます。 そうでない場合は、全体のVOPネットワークに対して生成されたコードが出力されます。
shaderLanguageName()
→ str
シェーダを記述している言語の名前を返します。
setShaderLanguageName(language_name)
→ bool
このノードのシェーダ言語を設定します。 成功すればTrueを返しますが、指定した言語が見つからず、このノードに設定できなければFalseを返します。
ほとんどの場合、VOPノードは、オペレータレンダーマスクやシェーダジェネレータや親から言語を推測するので、 この関数がコールされることはほとんどありません。 しかし、場合によっては、その暗黙的な推測を上書きする必要があり、通常では、サブネットやParameter VOPなどのビルトインオペレータで使用します。
renderMask()
→ str
ノードが有効なシェーダを表現するレンダラーのマスクを返します。
shaderString(render_type=None, shader_type=hou.shaderType.Surface, as_encapsulated=False)
→ str
指定したタイプのレンダラーが受け取ることができる入力ストリームに、シェーダ割り当てとして指定するのに適したシェーダ名とパラメータ値を暗号化した文字列を返します。 VOPがいくつかのシェーダコンテキスト(例えば、サーフェスコンテキストやディスプレイスメントコンテキスト)を備えたマテリアルであれば、明示的にシェーダタイプを用意する必要があります。 as_encapsulatedがTrueなら、その返されるシェーダ文字列は、シェーダを、必要に応じて親を参照するパラメータ付きの親シェーダに埋め込んで暗号化します。
code()
→ str
このノードを定義しているVEXまたはRSLのコードを返します。
outerCode()
→ str
このノードに関連した外部コードを返します。
入力と出力 ¶
inputDataTypes()
→ tuple of str
このノードの入力データタイプすべてのタプルを返します。非表示の入力コネクタのデータタイプも含まれます。
このメソッドで返された文字列を使用して、Parameter VOPやConstant VOPのTypeパラメータを設定することができます。
isInputGroupExpanded(group)
→ bool
groupで指定した名前のグループがNetwork Viewに展開されている場合はTrueを返します。
groupパラメータには、hou.VopNode.inputGroupNameメソッドが返す値を指定します。
入力/出力のディテールフラグの設定が原因でグループが現在非表示になっていても、そのグループの現在展開されている状態を返します。
グループ名が無効の場合はTrueを返します。
inputGroupNames()
→ tuple of str
このVOPノードの入力グループの名前を返します。 すべてのグループに入力が含まれるわけではないので、すべてのグループがNetwork Viewに表示されるわけではないことに注意してください。 どの入力が特定のグループの一部なのかを判断するには、hou.VopNode.inputsInGroupメソッドを使用します。
inputsInGroup(group)
→ tuple of int
groupで指定した名前のグループに表示されるすべての入力の入力インデックス値を返します。
このパラメータには、hou.VopNode.inputGroupNameメソッドが返す値を指定してください。
このメソッドは、そのグループが展開されているのか折り畳まれているのかどうかに関わらず、同じ入力セットを返します。
そのグループ名に何も入力がなかったり、無効なグループ名だった場合は、空っぽのタプルを返します。
inputIndexOrder()
→ tuple of int
hou.Node.setInputとそれに関連した関数に渡すことができる入力インデックス番号を意味した整数のタプルを返します。 そのインデックス番号の順番は、このオブジェクトのネットワークビュータイルに表示される入力の順番を意味します。 この順番は、このノードのパラメータペインで行なった入力のグループ化の方法によって変わります。
outputDataTypes()
→ tuple of str
このノードの出力データタイプすべてのタプルを返します。非表示の出力コネクタのデータタイプも含まれます。
このメソッドで返された文字列を使用して、Parameter VOPやConstant VOPのTypeパラメータを設定することができます。
subnetTerminalChild(output_name)
→ tuple of houNode and str
指定した名前のサブネット出力コネクタに呼応するノードと入力名のタプルを返します。
setInputGroupExpanded(group, expanded)
groupパラメータで指定した名前の入力グループを展開した状態に設定します。
これは、Network Viewでのこの入力グループの見た目を制御します。
groupにNoneを渡すと、すべての入力グループが展開または折り畳まれます。
isInputCompatible(idx, other, other_idx, allow_conversions = False) ->
bool`
このオブジェクトの入力idxをotherノードのother_idx出力に接続できればTrueを返します。
これらの2つの入力が同じデータタイプであれば、接続することができます。
allow_conversionsパラメータをTrueに設定するとチェックが寛容的になるので、明示的に変換ノードを使用せずに出力データタイプを自動的に入力データタイプに変換できれば(例えば、float出力をvector入力に変換)、
入力コネクションが受け入れられます。
findBypassInputName(output_name)
→ str
このノードのバイパスフラグがオンの時に、指定した出力がパイプしている入力の名前を返します。
入力ノードの制御 ¶
insertParmGenerator(input_name, parm_gen_type, reference_input_defaults)
→ hou.VopNode
1個のParameter VOPやConstant VOPを作成して、それを、このノードのinput_nameで指定された入力に接続します。
parm_gen_typeはhou.vopParmGenTypeの値でなければなりません。
reference_input_defaultsがTrueなら、このノードは、新しく作成されたノードのデフォルトを参照します。
その結果のParameter VOPまたはConstant VOPが返されます。
insertParmGeneratorsForAllInputs(parm_gen_type, reference_input_defaults)
→ dict of str
to hou.VopNode
複数のParameter VOPやConstant VOPを作成して、それらを、このノードの接続されていない入力に接続します。
parm_gen_typeはhou.vopParmGenTypeの値でなければなりません。
reference_input_defaultsがTrueなら、このノードは、新しく作成されたノードのデフォルトを参照します。
キーが入力名、値がhou.VopNodeオブジェクトの辞書を返します。
deleteIndependentInputNodes(input_index):, make_parm_node, reference_input_defaults)
→ bool
特定の入力に接続されている一連のノードを、それらのノードがこのノードの指定された入力に繋がっている場合にのみ、削除します。 それらのノードが削除されたらTrue、そうでないならFalseを返します。
setIsInputVisible(input_name, is_visible)
このノードの入力コネクタを表示/非表示します。その入力はinput_nameで指定します。 is_visibleがTrueなら、そのコネクタが表示され、そうでないなら非表示になります。
isInputVisible(input_name)
→ bool
input_nameで指定したこのノードの入力コネクタが可視であればTrueを、そうでないならFalseを返します。
フラグ ¶
setDebugFlag(on)
ノードのDebugフラグをオン/オフに切り替えます。
on引数の値はTrueかFalseです。
このノードが書き込み不可であれば、hou.PermissionErrorを引き起こします。
isDebugFlagSet()
→ bool
このノードのDebugフラグがオンならTrueを返します。そうでないならFalseを返します。
setDetailLowFlag(on)
このノードの入力と出力に対してLow Detailフラグをオン/オフに切り替えます。
このフラグをオンにすると、このノードのすべての入力と出力が、このノードの一箇所に接続されている時に表示されます。
このフラグは、このノードのオペレーションに影響せず、Network Viewでの見た目のみに影響します。
on引数の値はTrueかFalseです。
このノードが書き込み不可であれば、hou.PermissionErrorを引き起こします。
isDetailLowFlagSet()
→ bool
このノードのLow DetailフラグがオンならTrueを返します。そうでないならFalseを返します。
setDetailMediumFlag(on)
このノードの入力と出力に対してMedium Detailフラグをオン/オフに切り替えます。
このフラグをオンにすると、このノードに接続された入力と出力のみがNetwork Viewに表示されます。
このフラグは、このノードのオペレーションに影響せず、Network Viewでの見た目のみに影響します。
on引数の値はTrueかFalseです。
このノードが書き込み不可であれば、hou.PermissionErrorを引き起こします。
isDetailMediumFlagSet()
→ bool
このノードのMedium DetailフラグがオンならTrueを返します。そうでないならFalseを返します。
setDetailHighFlag(on)
このノードの入力と出力に対してHigh Detailフラグをオン/オフに切り替えます。
このフラグをオンにすると、このノードに接続されたすべての入力と出力が、他のノードとの接続の有無に関わらずNetwork Viewに表示されます。
このフラグは、このノードのオペレーションに影響せず、Network Viewでの見た目のみに影響します。
on引数の値はTrueかFalseです。
このノードが書き込み不可であれば、hou.PermissionErrorを引き起こします。
isDetailHighFlagSet()
→ bool
このノードのHigh DetailフラグがオンならTrueを返します。そうでないならFalseを返します。
bypass(on)
このノードのバイパスフラグをオン/オフに切り替えます。
このバイパスフラグがオンの時、このノードはシーンに何の影響も与えません。
on引数の値はTrueかFalseです。
このノードが書き込み不可であれば、hou.PermissionErrorを引き起こします。
isBypassed()
→ bool
このノードのバイパスフラグがオンならTrueを返します。そうでないならFalseを返します。
setCompressFlag(on)
このノードのCompressフラグをオン/オフに切り替えます。
このCompressフラグがTrueの時、このノードはNetwork Viewにプレビュー画像を表示しません。
このCompressフラグがFalseの時、プレビュー画像がNetwork Viewに表示されます。
on引数の値はTrueかFalseです。
このノードが書き込み不可であれば、hou.PermissionErrorを引き起こします。
isCompressFlagSet()
→ bool
このノードのCompressフラグがオンならTrueを返します。そうでないならFalseを返します。 Compressフラグは、このノードに対してNetwork Viewでプレビュー画像を表示するかどうかを制御します。
setMaterialFlag(on)
このノードのMaterialフラグをオン/オフに切り替えます。 このMaterialフラグがTrueの場合、このノードがオブジェクトやジオメトリに割り当てられるマテリアルとして使用されることを意味します。 このノードは、Materialノード選択に表示され、 Save All Material SHOPs のオプションを有効にして生成されるIFDに保存されます。
このノードが書き込み不可であれば、hou.PermissionErrorを引き起こします。
isMaterialFlagSet()
→ bool
このノードのMaterialフラグがオンならTrueを返します。そうでないならFalseを返します。 Materialフラグは、このノードをオブジェクトやジオメトリに割り当てられるマテリアルとして使用されることを意味します。
extraBindings()
→ tuple of str
生成されるコードにそのVOPノードが追加するバインドのリストを返します。 特にSnippet VOP用に実装されているので、これによって、そのVOPはアドホック(一時的)な@参照で作成されるバインドを判断することができます。
usdShaderParms(force_parms_at_default=False)
→ tuple of str
USDシェーダプリミティブで編集する必要のある値のシェーダパラメータ名のリストを返します。 このリストには、(ノードパラメータに強制変換のタグがない限り)シェーダパラメータとして指定されていてアクティブになっているもののデフォルト値ではないノードパラメータが含まれます。
force_parms_at_defaultがTrueの場合、デフォルト値のシェーダパラメータも返されます。
False(デフォルト)の場合、デフォルト値のシェーダパラメータは除外されます。
usdPreviewShaderParms()
→ tuple of str
標準のUSDプレビューシェーダを作成するために値が使用されているシェーダパラメータ名のリストを返します。 通常では、これらのパラメータには特別な“ogl_*”予備データでタグ付けされています。
その他 ¶
currentSignatureName()
→ str
このノードの現行シグネチャ名を返します。HDAノードには、いくつかの有効なシグネチャが備わっています。 そして、この関数は現在使用されているシグネチャの名前を返します。 シグネチャは、入力タイプのセットで定義され、各セットが名前に割り当てられています。
parmDefinerNode()
→ hou.VopNode
このノードがバインドされているパラメータを定義したParameter VOPノードを返します。 このメソッドは、Parameter VOPノードにのみ適用されます。
このノードがParameter VOPでなかったり、このノードが定義ノードだった場合は、Noneを返します。
Methods from hou.NetworkItem ¶
networkItemType()
→ hou.networkItemType
このオブジェクトで表現されたネットワークアイテムのタイプを示した列挙値を返します。
この値は、isinstanceビルトインPython関数でそれに一致したクラスを使用することと等価です(例えば、hou.networkItemType.Connectionはhou.NodeConnectionと等価です)。
Methods from hou.NetworkMovableItem ¶
name()
→ str
このノードの名前を返します。hou.NetworkMovableItem.pathも参照してください。
setName(name, unique_name=False)
このノードの名前を設定します。その新しい名前に英数字、.、-、_以外の文字が含まれている場合、hou.OperationFailedを引き起こします。
ノードの名前を変更できなかった場合(例えば、他のノードで同じ名前が既に使用されていたり、そのノードがルートノードまたはトップレベルマネージャ(例えば、/obj)だったり、そのノードがロックアセット内にある場合)は、hou.OperationFailedを引き起こします。
unique_nameパラメータをTrueに設定すると、指定した名前が既存ノードの名前と被らないように変更させることができます。
digitsInName()
→ int
ノードの名前の最後の桁の値を返します。 桁がなければ0を返します。
例えば、geo102ノードは102、light12to34ノードは34を返します。
path()
→ str
ネットワーク内のこのノードのフルパス(つまり、/から始まります)を返します。
relativePathTo(base_node)
→ str
他のノードオブジェクトを基準として、このノードの相対パスを返します。
>>> box1 = hou.node("/obj/box_object1/box1") >>> sphere1 = hou.node("/obj/sphere_object1/sphere1") >>> box1.relativePathTo(sphere1) '../../sphere_object1/sphere1' >>> hou.node("/obj").relativePathTo(box1) 'box_object1/box1' >>> box1.relativePathTo(box1) '.'
parent()
→ hou.Node
このアイテムを含んだノードを返します。
そのアイテムがルートノード(つまり、/)であれば、このメソッドはNoneを返すことに注意してください。
>>> hou.node("/obj/box_object1").parent() <hou.Node at /obj> >>> print hou.node("/").parent() None
parentNetworkBox()
→ hou.NetworkBox or None
このアイテムを含んだ親のネットワークボックスを返します。それがネットワークボックスに含まれていなければNoneを返します。
isPicked()
→ bool
hou.NetworkMovableItem.isSelectedをコールする事と等価です。
setSelected(on, clear_all_selected=False, show_asset_if_selected=False)
このアイテムを選択または選択解除します。オプションで、このネットワーク内で選択されているアイテム以外すべてを選択解除することができます。
show_asset_if_selectedがTrueで、このアイテムがNodeの場合、このペインは、代わりに選択したアイテムのトップレベルのアセットを表示します。
setPicked(on)
すべてのオプションのパラメータのデフォルト値でhou.NetworkMovableItem.setSelectedをコールする事と等価です。
setColor(color)
指定したhou.Colorで、ネットワークエディタ内のこのアイテムのタイルのカラーを設定します。
sessionId()
指定したHoudiniセッション内でこのアイテムを固有に識別するための整数値を返します。
このIDは、単一Houdiniプロセス内でのみ固有であることが保証されます。
このIDは、アイテムの保存、復元、参照をするのが簡単になるので便利です。
また、このIDは特定のアイテムサブクラスに対しても固有です。
そのため、NetworkBoxと同じセッションIDを持つNodeが存在することがあります。
セッションIDからノードを取得するにはhou.nodeBySessionId()を、セッションIDからネットワークボックスを取得するにはhou.networkBoxBySessionId()を、 もっと汎用的にセッションIDとアイテムサブクラスを示した列挙値を組み合わせてそのタイプのアイテムを取得するにはhou.itemBySessionId()を参照してください。
position()
→ hou.Vector2
ネットワークエディタグラフ内のこのアイテムのタイルの位置をVector2として返します。
move()とsetPosition()も参照してください。
setPosition(vector2)
ネットワークエディタグラフ内のこのアイテムのタイルの位置を設定します。 アイテムの位置を動かせなかった場合は、hou.InvalidInputを引き起こします。
move(vector2)
ネットワークエディタグラフ内のこのアイテムのタイルを、指定したhou.Vector2の分だけ動かします。
アイテムを絶対位置で動かすには、setPosition()を使用します。
アイテムの現行グラフ位置を取得するには、position()を使用します。
指定した位置にアイテムを動かせなかった場合は、hou.InvalidInputを引き起こします。
shiftPosition(vector2)
hou.NetworkMovableItem.moveをコールする事と等価です。
size()
→ hou.Vector2
ネットワークエディタグラフ内のこのアイテムのタイルのサイズをVector2として返します。
Methods from hou.Node ¶
node(node_path)
→ hou.Node or None
指定したパスのノードを返します。ノードが見つからなければNoneを返します。
相対パス(つまり、/で始まらないパス)を指定した場合、このノードを基準に検索が実行されます。
例えば、変数n内のノードの親ノードを取得するには、n.node("..")を使用します。
geo5という名前の子ノードを取得するには、n.node("geo5")を使用します。
light3という名前の兄弟ノードを取得するには、n.node("../light3")を使用します。
戻り値は、Nodeのサブクラスのインスタンスであることに注意してください。 例えば、見つかったノードがオブジェクトノードであれば、戻り値は、hou.ObjNodeインスタンスになります。
パスが絶対パス(つまり、/で始まるパス)なら、このメソッドは、hou.node(node_path)のショートカットです。
相対パスなら、hou.node(self.path() + "/" + node_path)のショートカットです。
hou.node()も参照してください。
nodes(node_path_tuple)
→ tuple
of hou.Node or None
これは、node()と同様ですが、複数のパスを受け取り、複数のNodeオブジェクトを返します。これは以下と等価です:
nodes = [self.node(path) for path in paths]
item(item_path)
→ hou.NetworkMovableItem or None
指定したパスのネットワークアイテムを返します。そのアイテムが存在しなかった場合はNoneを返します。
相対パス(つまり、/で始まらないパス)を指定すると、このノードを基準に検索が実行されます。
そのパスが絶対パス(つまり、/で始まる)の場合、このメソッドは、hou.item(node_path)のショートカットです。
それ以外の場合、hou.item(self.path() + "/" + item_path)のショートカットです。
hou.item()も参照してください。
戻り値がNetworkMovableItemのサブクラスのインスタンスである場合があることに注意してください。 例えば、見つかったアイテムがオブジェクトノードであれば、その戻り値はhou.ObjNodeインスタンスです。 そのアイテムがネットワークボックスであれば、その戻り値はhou.NetworkBoxインスタンスです。
items(item_path_tuple)
→ tuple
of hou.NetworkMovableItem or None
これは、item()と同様ですが、複数のパスを受け取り、複数のNetworkMovableItemオブジェクトを返します。これは以下と等価です:
items = [self.item(path) for path in paths]
isNetwork()
→ bool
このノードがネットワークの場合、つまり、子ノードを含むことができるノードの場合はTrueを返します。
それ以外の場合はFalseを返します。
これは、hou.Node.createNodeなどのいくつかの他のメソッドをコールすると、そのメソッドはhou.OperationFailedを引き起こすことを意味します。
isEditable()
→ bool
このノードがHDAでない、且つ、HDA内部にない場合、このメソッドはTrueを返します。
このノードがHDAノードだった場合、そのノードがロック解除されていればTrueを返し、ロックされていればFalseを返します(これは、not node.matchesCurrentDefinition()と等価です)。
このノードがロックされたHDAノード内部にある場合、このメソッドは、このノードがそのロックされたHDA内の編集可能サブネットまたはそのサブネット内部にある場合はTrueを返します。 それ以外はFalseを返します。
このメソッドは、このノードの子に特定のタイプの変更を加えることができるかどうかを反映します。
ノード間のワイヤー接続やフラグの設定といった変更は、子ノードへの編集であり、親ノードまたは周辺ノードの動作にも影響を与えます。
例えば、ノードにディスプレイフラグを有効にできるかどうかを判断するには、node.parent().isEditable()をテストすることになります。
パタメータ値の変更など、ノード自体の単なる内部的なノードの変更に関しては、node.isEditableInsideLockedHDA()をテストすれば良いです。
children()
→ tuple
of hou.Node
このノードの子であるノードのリストを返します。 ファイルシステムと同じように、ノードの子はフォルダ/ディレクトリのような構成になっています。
子ノードの数を調べるには、len(node.children())を使用します。
その結果の子の順番は、Houdiniでのユーザ定義の順番と同じです。 この順番を確認するには、Network Viewペインをリストモードに切り替え、そのリスト順を user defined に設定します。 ノードの順番を変更するには、そのリスト内でノードをドラッグアンドドロップします。
def pc(node): '''特定のノードの子の名前をプリントします。 この関数は、Pythonシェルでインタラクティヴに動作させる時に役に立ちます。''' for child in node.children(): print child.name() def ls(): '''現行ノード下のノードの名前をプリントします。''' pc(hou.pwd())
以下のエクスプレッションは特定のノードタイプの子のリストを評価します:
[c for c in node.children() if c.type() == node_type]
allItems()
→ tuple
of hou.NetworkMovableItem
このノードのすべての子を含んだタプルを返します。
childrenとは違い、このメソッドはhou.NetworkBox, hou.SubnetIndirectInput, hou.StickyNote, hou.NetworkDotのオブジェクトも返します。
allSubChildren(top_down=True, recurse_in_locked_nodes=True, sync_delayed_definition=False)
→ tuple of hou.Node
このノードのサブチルドレンすべてを再帰的に返します。
例えば、hou.node("/").allSubChildren()は、HIPファイル内のノードすべてを返します。
top_down
Trueの場合、この関数は、上から下に検索して、返されたタプル内のノードをその子の前に配置します。 Falseの場合、下から上に検索して、子を親の前に配置します。
recurse_in_locked_nodes
Trueの場合、この関数は、ロックされた子ノード(isEditable()メソッドがFalseを返す子ノード)の中を再帰検索して、
戻り値のタプルの中に、そのロックされた子ノードの子を含めます。
Falseの場合、この関数は、ロックされた子ノードの中を再帰検索しないので、戻り値のタプルの中には、そのロックされた子ノードの子は含まれません(もちろん、ロックされた子ノードはそのタプルに含まれます)。
例えば、‹recurse_in_locked_nodes›がTrueで、hou.node("/obj/geo1")の中にPlatonic Solidsノード(ロックされたノード)があった場合、
hou.node("/obj").allSubChildren()が返すタプルには、Platonic Solidsノードとその子ノードが含まれます。
‹recurse_in_locked_nodes›がFalseの場合、その戻り値のタプルにはPlatonic Solidsノードが含まれますが、その子ノードは含まれません。
sync_delayed_definition
場合によってはこのノードが評価されるまでノードの内容はロードしたくないです。
すべてのノードが無駄に展開されないようにするために、デフォルトでは、ノードの内容は未展開のままにされて返されません。
‹sync_delayed_definition›をTrueに設定すると、すべての子ノードが再帰的に同期されて、ネットワーク全体が完全にインスタンス化され、
同期されたすべてのノードが返されます。
返されるのはタプルであって、ジェネレータではないことに注意してください。 つまり、戻り値を通じてループしている間にノードを削除したり作成しても安全であることを意味します。
以下の関数は、指定したノード内の特定のタイプの子すべてを削除します:
def removeSubChildrenOfType(node, node_type): '''特定のタイプの子すべてを再帰的に削除します。''' for child in node.allSubChildren(): if child.type() == node_type: child.destroy()
このコードは、例えば、/obj下にあるVisibility SOPすべてを削除します:
>>> removeSubChildrenOfType(hou.node("/obj"), hou.sopNodeTypeCategory().nodeTypes()['visibility'])
allSubItems(top_down=True, recurse_in_locked_nodes=True, sync_delayed_definition=False)
→ tuple of hou.NetworkMovableItem
このノード内のすべてのサブアイテム(ノード、ネットワークボックス、ステッキーノートなど)を再帰的に返します。
例えば、hou.node("/").allSubItems()は、hipファイル内のすべてのノードネットワークアイテムを返します。
このメソッドのパラメータの詳細は、hou.Node.allSubChildrenを参照してください。
allNodes()
→ generator of hou.Node
このノード内に含まれたすべてのノード(このノードを含む)のシーケンスを再帰的に返します。 このメソッドは、以下の点でhou.Node.allSubChildrenと異なります:
-
戻りのシーケンスには、このノードが含まれます。
-
上から下または下から上の走査順を保証していません。
-
このメソッドはジェネレータであり、タプルを返さないので、その戻り値によってループさせてノードを作成または削除するのは危険です。
以下は、/obj下のすべてのノードのパスを出力した例です:
root_node = hou.node("/obj") for node in root_node.allNodes(): print node.path()
glob(pattern, ignore_case=False)
→ tuple of hou.Node
パターンに合致した子ノード名のタプルを返します。
パターンには、スペース区切りで複数のピースを含めることができます。
パターンピース内のアスタリスク(*)は、どの文字にも合致します。
デフォルトでは、Houdiniは、各パターンピースで既に合致したノードを追加します。
しかし、そのパターンピースがキャレット(^)で始まっていれば、Houdiniは、その結果からそのピースの合致を排除します。
デフォルトのパターンマッチは、大文字小文字を区別します。
大文字小文字を区別せずにパターンマッチングを行なうには、ignore_caseをTrueに設定します。
この設定は、ノード名のマッチングの時にだけ大文字小文字の区別をしない事に注意してください。
グループ、ネットワークボックス、バンドル名のマッチングでは、大文字小文字の区別がされます。
このメソッドは、空っぽのパターンを指定した場合に空っぽのタプルを返します。
>>> obj = hou.node("/obj") >>> obj.createNode("geo", "geo1") <hou.ObjNode of type geo at /obj/geo1> >>> obj.createNode("geo", "geo2") <hou.ObjNode of type geo at /obj/geo2> >>> obj.createNode("geo", "grid") <hou.ObjNode of type geo at /obj/grid> >>> obj.createNode("geo", "garbage") <hou.ObjNode of type geo at /obj/garbage> >>> obj.createNode("geo", "box") <hou.ObjNode of type geo at /obj/box> >>> def names(nodes): ... return [node.name() for node in nodes] >>> names(obj.glob("g*")) ['geo1', 'geo2', 'grid', 'garbage'] >>> names(obj.glob("ge* ga*")) ['geo1', 'geo2', 'garbage'] >>> names(obj.glob("g* ^ga*")) ['geo1', 'geo2', 'grid']
hou.Node.recursiveGlobも参照してください。
recursiveGlob(pattern, filter=hou.nodeTypeFilter.NoFilter, include_subnets=True)
→ tuple of hou.Node
hou.Node.globと同様に、パターンに合致した名前の子ノードのタプルを返します。 違うのは、その合致した子ノードからさらに再帰的にその子ノードすべてが追加されます。 さらに、その結果はノードタイプでフィルタリングすることができます。
Houdiniは、パターンに対して子ノードをマッチングしてから、その合致した子ノードのサブ子ノードを再帰的に追加し、 そしてフィルタを適用します。
pattern
子ノード名は、この文字列パターンに対してマッチングされます。
パターン構文に関する情報は、hou.Node.globとhou.NodeBundleを参照してください。
子ノードがパターンに合致、且つ、include_subnetsがTrueの場合、そのサブ子ノードすべてがパターンに関係なく(フィルタリングに基づいて)結果に追加されることに注意してください。
filter
合致したノードを特定のタイプに制限するためのhou.nodeTypeFilter列挙値 (例: object nodes, geometry object nodes, surface shader SHOPsなど)。
パターンとフィルタの挙動は、Houdiniのノードバンドルの挙動と非常に似ています。 詳細は、hou.NodeBundleを参照してください。
パターンが無効な場合は、hou.OperationFailedを引き起こします。
createNode(node_type_name, node_name=None, run_init_scripts=True, load_contents=True, exact_type_name=False, force_valid_node_name=False)
→ hou.Node
node_type_nameタイプのノードをこのノードの子として新しく作成します。
node_name
新しいノードの名前。指定しなかった場合、Houdiniはノードタイプ名に番号を追加します。 その番号は、固有のノード名になるまで番号を上げます。 名前を指定し、ノードがその名前で既に存在する場合、Houdiniは番号を追加して固有の名前を作成します。
run_init_scripts
Trueの場合、ノードタイプに関連した初期化スクリプトが新しいノードに対して実行されます。
load_contents
Trueの場合、サブネットの内容がカスタムサブネットオペレータに対して読み込まれます。
exact_type_name
Trueの場合、ノードのタイプ名がnode_type_nameで指定した通りのままになります。
そうでない場合、指定したnode_type_nameに合致する優先度の高いオペレータタイプを使用することができます。
例えば、“hda”を指定すると新しいバージョンの“hda::2.0”に合致したり、または“namespaceA::hda”と“namespaceB::hda”のオペレータが2つ利用可能な場合なら、
“namespaceB”が優先され、作成されるノードのタイプは“namespaceB::hda”になります。
force_valid_node_name
Trueの場合、node_nameが無効であっても有効な名前で新しいノードを作成します。
例えば、node_nameがfoo barだった場合、その新しいノード名はfoo_barになります。
force_valid_node_nameがFalseの場合、且つ、node_nameが無効だった場合、hou.OperationFailed例外が引き起こされます。
指定したノード名が無効、且つ、force_valid_node_nameがFalseの場合は、hou.OperationFailedを引き起こします。
このノードに子を含めることができなかった場合は、hou.OperationFailedを引き起こします。
このノードがロックされたアセット内にあった場合は、hou.PermissionErrorを引き起こします。
>>> obj = hou.node("/obj") # Houdiniにノードタイプ名に基づいた名前を選択させます。 >>> obj.createNode("geo") <hou.ObjNode of type geo at /obj/geo1> # Houdiniに固有の名前を選択させます。 >>> obj.createNode("geo") <hou.ObjNode of type geo at /obj/geo2> # ノードに特定の名前を指定します。 >>> obj.createNode("geo", "foo") <hou.ObjNode of type geo at /obj/foo> # Houdiniに私達が提案した名前から固有の名前を作成させます。 # また、ジオメトリオブジェクトに初期スクリプトを実行させなければ、中身が空っぽになります。 >>> obj.createNode("geo", "geo1", run_init_scripts=False) <hou.ObjNode of type geo at /obj/geo3> >>> obj.node("geo1").children() (<hou.SopNode of type file at /obj/geo1/file1>,) >>> obj.node("geo3").children() ()
destroy(disable_safety_checks=False)
このノードを削除します。
Nodeインスタンスを削除した後に、それに対してメソッドをコールすると、Houdiniはhou.ObjectWasDeletedを引き起こします。
ロックされたアセット内のノードを削除しようとした場合は、hou.OperationFailedを引き起こします。
disable_safety_checksをTrueにすると安全性チェックが無効になるので、ノードをクック中にこのメソッドがコールされるとHoudiniがクラッシュしてしまう場合があります。
copyItems(items, channel_reference_originals = False, relative_references = True, connect_outputs_to_multi_inputs = True)
→ tuple
of hou.NetworkMovableItem
指定したアイテムすべてのコピーをこのネットワーク内に作成します。これらのアイテムは、このネットワークの子である必要はありませんが、すべてのアイテムが同じ親ネットワーク内に含まれている必要があります。
channel_reference_originalsがTrueの場合、新しいノードすべてのパラメータが元のノードのチャンネル参照に設定されます。
コピーしたノードがサブネットワークであれば、トップレベルのノードのみが元のサブネットワークのチャンネル参照を構築します。
そのサブネットワーク内の子ノードは、元の子ノードの単純コピーになります。
relative_referencesパラメータは、チャンネル参照がソースノードの相対パスまたは絶対パスのどちらを使用するのかを制御します。
connect_outputs_to_multi_inputsがTrueで、コピーされるアイテムの出力が複数の入力ノードに接続されている場合(例えば、Merge)、そのコピーされた新しいアイテムの出力にもその複数の入力ノードが接続されます。
通常では、コピーされるノードには、そのコピーされるセットの外側のノードへの出力はありません。
新しいネットワークアイテムすべてのtupleを返します。
このノードに子を含めることができなかった場合はhou.OperationFailedを引き起こします。 このノードがロックされたアセット内にあった場合はhou.PermissionErrorを引き起こします。
deleteItems(items, disable_safety_checks=False)
指定したhou.NetworkMovableItemオブジェクトのタプル内のすべてのアイテムを削除します。
これは、それらのアイテムをループさせて個々にdestroy()をコールするよりも非常に効率的です。
また、これは他のオブジェクトも削除しないと削除することができないオブジェクトが存在する場合でも安全に処理します。
指定した1つ以上のアイテムがこのノードの子でなかった場合は、hou.OperationFailedを引き起こします。 このノードがロックされていたり、ロックされたデジタルアセット内にあった場合は、hou.PermissionErrorを引き起こします。
disable_safety_checksをTrueにすると安全性チェックが無効になるので、ノードをクック中にこのメソッドがコールされるとHoudiniがクラッシュしてしまう場合があります。
canCreateDigitalAsset()
→ bool
このノードからデジタルアセットを作成することができればTrueを返します(例えば、hou.OpNode.createDigitalAssetが成功できるかどうか)。
isCurrent()
→ bool
ノードが、ネットワーク内で最後に選択したノードであるかどうかを示すブールを返します。
各ネットワーク(つまり、子を含んだノード)自体には、選択したノードのリストが記録されており、最後に選択したノードが特別な意味を持っています。 例えば、ピン留めしていないパラメータペインで表示されるノードがそれです。
Houdiniですべてのネットワーク内の選択したノードすべてのタプルを取得するには、hou.selectedNodes()も参照してください。 このリストの最後のノードもHoudiniでは特別な意味をもち、グローバルの現行ノードに相当します。
setCurrent(on, clear_all_selected=False)
このノードを最後に選択したノードとして設定または未設定にします。
各ネットワーク(つまり、子を含んだノード)自体には、選択したノードのリストが記録されており、最後に選択したノードが特別な意味を持っています。 例えば、ピン留めしていないパラメータペインで表示されるノードがそれです。
onがTrueの場合、このノードが最後に選択したノードになります。
Falseで、このノードが最後に選択したノードだった場合、そのノードが非選択になり、最後から2番目に選択したノードが最後に選択したノードになります。
clear_all_selectedがtrueの場合、Houdiniは、その処理を実行する前に、このネットワーク内のすべてのノードを非選択にします。
hou.Node.setSelectedとhou.selectedNodes()も参照してください。
selectedChildren(include_hidden=False, include_hidden_support_nodes=False)
→ tuple
of hou.Node
選択されたこのノードの子を含んだタプルを返します。 最後に選択したノードが特別な意味を持ち、そのノードはhou.Node.isCurrentを使って取得することもできることを覚えておいてください。
以下のサンプルは、/obj内の選択したオブジェクトすべての名前をプリントします:
for n in hou.node("/obj").selectedChildren(): print n.name()
選択した子ノードの合計を調べるには、len(node.selectedChildren())を使用します。
selectedItems(include_hidden=False, include_hidden_support_nodes=False)
→ tuple
of hou.NetworkMovableItem
選択されているこのノードの子を含んだタプルを返します。
selectedChildrenとは違い、このメソッドは、選択されたhou.NetworkBox, hou.SubnetIndirectInput, hou.StickyNote, hou.NetworkDotのオブジェクトも返します。
以下のサンプルは、/obj内の選択したアイテムすべての位置をプリントします:
for n in hou.node("/obj").selectedItems(): print n.position()
numItems(item_type=None, selected_only=False, include_hidden=False)
→ int
選択されていて且つitem_typeで指定したタイプのノードの子の数を返します。
item_type
Noneにすると、選択されているすべてのタイプのアイテムの数が返されます。
hou.networkItemType値を指定すると、選択されているそのタイプのアイテムの数が返されます。
selected_only
Trueにすると、選択されているアイテムのみが数えられます。
type()
→ hou.NodeType
このノードに対してhou.NodeTypeオブジェクトを返します。
例えば、すべてのカメラノードインスタンスは、同じノードタイプを共有します。
childTypeCategory()
→ hou.NodeTypeCategory
このノードの子に相当するhou.NodeTypeCategoryを返します。 例えば、このノードがジオメトリオブジェクトの場合、その子はSOPです。 オブジェクトサブネットの場合、その子はオブジェクトです。
inputs()
→ tuple
of hou.Node
このノードの入力に接続されているノードのタプルを返します。 入力がhou.SubnetIndirectInputに接続されている場合、それに該当する親サブネットの入力に接続されているノードが返されます。 言い換えれば、間接入力の存在を隠すということです。つまり、その結果のノードは、すべてが呼び出し側のノードの兄弟であるとは限りません。
特定の入力が接続されていない(または、それが間接入力に接続されていても、それに該当するサブネットの親入力が接続されていない)場合は、タプルのその箇所にNone値が配置されます。
inputsFollowingOutputs()
→ tuple
of hou.Node
このノードの入力に接続されているノードのタプルを返します。 入力がhou.SubnetIndirectInputに接続されている場合、それに該当する親サブネットの入力に接続されているノードが返されます。 言い換えれば、間接入力の存在を隠すということです。つまり、その結果のノードは、すべてが呼び出し側のノードの兄弟であるとは限りません。
さらに、その入力がSOPsの非プライマリ出力に接続されている場合、返されるノードは、サブネットそのものではなく、SOPネットワーク内のノードになります。 これは、1番目の出力のノードをこのノードの入力にマッチさせようとするような複数の出力を理解しないコードで使用することができます。
その入力が接続されていない(または、それが間接入力に接続されていても、それに該当するサブネットの親入力が接続されていない)場合は、None値が返されます。
特定の入力が接続されていない(または、それが間接入力に接続されていても、それに該当するサブネットの親入力が接続されていない)場合は、タプル内のその位置にNone値が格納されます。
input(inputidx)
→ hou.Node
このノードの指定された入力に接続されているノードを返します。 入力がhou.SubnetIndirectInputに接続されている場合、それに該当する親サブネットの入力に接続されたノードが返されます。 言い換えれば、間接入力の存在を隠すということです。つまり、その結果のノードは、すべてが呼び出し側のノードの兄弟であるとは限りません。
その入力が接続されていない(または、それが間接入力に接続されていても、それに該当するサブネットの親入力が接続されていない)場合は、None値が返されます。
inputFollowingOutputs(inputidx)
→ hou.Node
このノードの指定された入力に接続されているノードを返します。 入力がhou.SubnetIndirectInputに接続されている場合、それに該当する親サブネットの入力に接続されたノードが返されます。 言い換えれば、間接入力の存在を隠すということです。つまり、その結果のノードは、すべてが呼び出し側のノードの兄弟であるとは限りません。
さらに、その入力がSOPsの非プライマリ出力に接続されている場合、返されるノードは、サブネットそのものではなく、SOPネットワーク内のノードになります。 このメソッドを使用することで、このノードの入力に呼応する1番目の出力を持ったノードを取得したい時に、コードが複数出力を考慮しなくて済みます。
その入力が接続されていない(または、それが間接入力に接続されていても、それに該当するサブネットの親入力が接続されていない)場合は、None値が返されます。
outputs()
→ tuple
of hou.Node
このノードの出力に接続されたノードのタプルを返します。
このメソッドは、[connection.outputNode() for connection in self.outputConnections()]のショートカットです。
inputConnections()
→ tuple
of hou.NodeConnection
このノードのトップに繋がっている接続のhou.NodeConnectionオブジェクトのタプルを返します。 このタプルの長さは、このノードに入ってくる接続の数と同じになります。 このノードに何も繋がっていなかった場合は、空っぽのタプルが返されます。
接続されたノード自体のリストを取得するには、hou.Node.inputsを使用します。 (接続の有無に関係なく)接続可能なコネクタのリストすべてを取得するには、hou.Node.inputConnectorsを使用します。
>>> cookie = hou.node("/obj").createNode("geo").createNode("cookie") >>> cookie.setInput(1, cookie.parent().createNode("box")) >>> cookie.inputConnections() (<hou.NodeConnection from grid1 output 0 to cookie input 1>,) >>> cookie.inputConnectors() ((), (<hou.NodeConnection from grid1 output 0 to cookie input 1>,))
hou.Node.inputConnectorsも参照してください。
outputConnections()
→ tuple
of hou.NodeConnection
このノードの下から繋がっている接続のNodeConnectionオブジェクトのタプルを返します。 このノードの出力に何も繋がっていなかった場合は、空っぽのタプルが返されます。
接続されたノード自体のリストを取得するには、hou.Node.outputsを使用します。
このメソッドは、reduce(lambda a, b: a+b, self.outputConnectors(), ())のショートカットです。
ほとんどのノードは出力コネクタを1つしか持たないので、このメソッドは通常では、self.outputConnectors()[0]と等価です。
>>> box = hou.node("/obj").createNode("geo").createNode("box") >>> box.parent().createNode("xform").setFirstInput(box) >>> box.parent().createNode("subdivide").setFirstInput(box) >>> box.outputConnections() (<hou.NodeConnection from box1 output 0 to xform1 output 0>, <hou.NodeConnection from box1 output 0 to subdivide1 input 0>)
hou.node.outputConnectorsも参照してください。
inputConnectors()
→ tuple
of tuple
of hou.NodeConnection
hou.NodeConnectionオブジェクトのタプルのタプルを返します。 その結果のタプルの長さは、このノードに接続可能な入力の最大数と同じです。 なにかそのコネクタに接続されていれば、各サブタプルは必ず1個のノード接続を含みます。 何も接続されていなければ、それは空っぽのタプルです。
hou.NodeConnectionとhou.Node.inputConnectionsも参照してください。
outputConnectors()
→ tuple
of tuple
of hou.NodeConnection
hou.NodeConnectionオブジェクトのタプルのタプルを返します。 その結果のタプルの長さは、このノードの出力コネクタの数と同じです。 各サブタプルは、そのコネクタから出ているコネクションすべてを含み、そのコネクタに何も接続されていなければ、それは空っぽのタプルです。
>>> split = hou.node("/obj").createNode("dopnet").createNode("split") >>> split.parent().createNode("rbdsolver").setFirstInput(split) >>> split.parent().createNode("gravity").setFirstInput(split, 1) >>> split.parent().createNode("merge").setFirstInput(split, 1) >>> split.outputConnectors() ((<hou.NodeConnection from split1 output 0 to rbdsolver1 input 0>,), (<hou.NodeConnection from split1 output 1 to gravity2 input 0>, <hou.NodeConnection from split1 output 1 to merge1 input 0>), (), ())
hou.NodeConnectionとhou.Node.outputConnectionsも参照してください。
indirectInputs()
→ tuple
of hou.SubnetIndirectInput
サブネットのhou.SubnetIndirectInputオブジェクトを返します。
このノードがサブネットワークでない場合は、hou.InvalidNodeTypeを引き起こします。
subnetOutputs()
→ tuple
of hou.Node
サブネットワークの子出力ノードを返します。
SOPsなどの特定のネットワークには、通常のディスプレイノードまたはレンダーノードをオーバーライドして複数の出力を可能にするための特別なOutputノードがあります。 何かしらのOutputノードが存在すれば、これは、それらのノードのリストを返します。 何もOutputノードが存在しなければ、クックのターゲットがディスプレイノードなのか出力ドライバなのかに応じて、ディスプレイノードまたはレンダーノードのどちらかが返されます。 サブネットに何も子がなければ、空っぽのリストが返されます。
inputAncestors(include_ref_inputs=True, follow_subnets=False, only_used_inputs=False)
→ tuple
of hou.Node
このノードの入力ノードすべてのタプルを返します。include_ref_inputsがFalseの場合、参照入力を辿りません。
follow_subnetsがTrueの場合、サブネットワークノードを単一ノードとして扱わず、そのディスプレイノードから始まる子ノードも辿ります。
only_used_inputsがTrueの場合、最後のクックに関係したノードのみを辿ります。
inputs()メソッドも参照してください。
inputIndex(input_name)
指定した名前のノード入力のインデックスを取得します。
入力名を使用するノードカテゴリに関しては、指定した名前の入力のインデックスを返します。 VOPノードに関しては、その名前が、それに該当する入力を持ったノードパラメータ名にもなります。
outputIndex(output_name)
指定した名前のノード出力のインデックスを取得します。
入力名を使用するノードカテゴリに関しては、指定した名前の出力のインデックスを返します。
setInput(input_index, item_to_become_input, output_index=0)
item_to_become_inputがNoneでない場合、他のノードの出力コネクタをこのノードの入力コネクタに接続します。
それ以外の場合、入力コネクタに接続されたすべてのノードの接続を解除します。
input_index
このノードの入力コネクタのインデックス。
item_to_become_input
Noneの場合、このメソッドは、入力コネクタからのすべてのノードを接続解除します。
hou.Nodeまたはhou.SubnetIndirectInputの場合、このメソッドは、その出力をこのノードの入力コネクタに接続します。
output_index
他のノードの出力コネクタのインデックス。
output_indexが無効の場合は、hou.InvalidInputを引き起こします。
item_to_become_inputがこのノードと同じネットワーク内にない場合は、hou.OperationFailedを引き起こします。
ノードがロックされたアセット内にある場合は、hou.PermissionErrorを引き起こします。
setNamedInput(input_name, item_to_become_input, output_name_or_index)
input_nameで指定されたこのノード上の入力を、output_nameまたはoutput_indexで指定したitem_to_become_input上の出力に接続します。
setFirstInput(item_to_become_input, output_index=0)
self.setInput(0, item_to_become_input)のショートカット。
詳細は、hou.Node.setInputを参照してください。
setNextInput(item_to_become_input, output_index=0, unordered_only=False)
他のノードからの出力コネクタを、このノードの1番目の非接続入力コネクタまたは複数入力コネクタに接続します。
ノードにOrdered InputsとUnordered Inputs(複数入力コネクタ)がある場合、unordered_onlyパラメータを使用することで強制的に入力を、Ordered Inputではなく、Unordered Inputs(複数入力コネクタ)に接続することができます。
このメソッドは、ほぼ以下と等価です:
for input_index, connectors in enumerate(self.inputConnectors()): if len(connectors) == 0: self.setInput(input_index, item_to_become_input, output_index) raise hou.InvalidInput("All inputs are connected")
すべての入力が接続されていれば、hou.InvalidInputを引き起こします。 詳細は、hou.Node.setInputを参照してください。
insertInput(input_index, item_to_become_input, output_index=0)
入力ワイヤーを挿入します。つまり、input_indexの後の入力コネクタ毎に、その入力コネクタの内容を次のコネクタにシフトさせて、 hou.Node.setInputをコールします。パラメータの意味については、hou.Node.setInputを参照してください。
numOrderedInputs()
→ int
いくつかのノードでは、特有の意味を持つ専用の入力をいくつか持っており、その後に任意の数の追加入力を持っています。
この追加入力では隙間は許可されていません(これらの入力のことをUnordered Inputsと呼びます)。
これは、Multiple Solver DOPなどのDOPノードがそうです。
この関数は、そのUnordered Inputsの前の専用(またはOrdered)の入力の数を返します。
このノードのhou.Node.typeオブジェクトに対してhou.NodeType.hasUnorderedInputs関数が
Trueを返す場合は、この関数はゼロ以外の値を返すだけです。
createInputNode(input_index, node_type_name, node_name=None, run_init_scripts=True, load_contents=True, bool exact_type_name=False)
新しくノードを作成し、そのノードをこのノードの入力の1つに接続します。その新しいノードを返します。
input_index
このノードの入力コネクタのインデックス。
node_type_name
作成するノードのタイプの名前。詳細は、createNodeメソッドを参照してください。
node_name
詳細は、createNodeメソッドを参照してください。
run_init_scripts
詳細は、createNodeメソッドを参照してください。
load_contents
詳細は、createNodeメソッドを参照してください。
exact_type_name
詳細は、createNodeメソッドを参照してください。
createOutputNodeメソッドも参照してください。
createOutputNode(node_type_name, node_name=None, run_init_scripts=True, load_contents=True, bool exact_type_name=False)
新しくノードを作成し、その1番目の入力のこのノードの(1番目の)出力に接続します。その新しいノードを返します。
パラメータの詳細は、createNodeメソッドを参照してください。
createInputNodeメソッドも参照してください。
inputNames()
→ tuple of str
このノードに対して入力名すべてのタプルを返します。不可視の入力コネクタの名前も含まれます。
inputLabels()
→ tuple of str
このノードの入力ラベルすべてのタプルを返します。非表示の入力コネクタのラベルも含まれます。
outputNames()
→ tuple of str
このノードに対して出力名すべてのタプルを返します。
outputLabels()
→ tuple of str
このノードの出力ラベルすべてのタプルを返します。
editableInputStrings(input_index)
→ dict
of str
to str
指定した入力インデックスに関連のある文字列キー/値のペアの辞書を返します。 これらの文字列の目的は、あるノードタイプを他のノードタイプに変換することです。
このメソッドは、そのノードタイプがこの機能を利用していなければ例外を引き起こします。 そのノードタイプが、編集可能な入力データに対応しているかどうか判断するには、hasEditableInputDataを使用します。
editableInputString(input_index, key)
→ str
指定した入力インデックスとキーに関連のある文字列を返します。 この文字列の目的は、あるノードタイプを他のノードタイプに可変させることです。
このメソッドは、そのノードタイプがこの機能を使用していない場合に例外を引き起こします。 hasEditableInputDataを使用することで、ノードタイプが編集可能入力データに対応しているかどうかを判断することができます。
setEditableInputString(input_index, key, value)
指定した入力インデックスとキーに関連のある文字列を設定します。 この文字列の目的は、あるノードタイプを他のノードタイプに可変させることです。
このメソッドは、そのノードタイプがこの機能を使用していない場合に例外を引き起こします。 hasEditableInputDataを使用することで、ノードタイプが編集可能入力データに対応しているかどうかを判断することができます。
isSubNetwork()
→ bool
ノードがサブネットワークならTrue、そうでないならFalseを返します。
collapseIntoSubnet(child_nodes, subnet_name=None, subnet_type=None)
→ hou.Node
このノードの子ノードのシーケンスを指定すると、それらの子ノードをサブネットワークに折りたたみます。 つまり、このノードのネットワーク内にサブネットが作成され、このネットワークの指定した子をそのサブネット内に移動させます。
child_nodes
新しいサブネットに入るこのノードの子ノード。
subnet_name
新しいサブネットノードの名前。Houdiniに自動的に名前を選択させる場合は、Noneにします。
subnet_type
新しいサブネットノードのタイプ。自動的にHoudiniにプライマリサブネットワークタイプを選択させたいのであればNoneにします。 これが推奨です。
child_nodes内のノードがこのネットワークの子でない場合やchild_nodesが空っぽのシーケンスの場合は、hou.OperationFailedを引き起こします。
このサンプルの関数は、単一ノードを受け取り、それをサブネットに置換し、そのノードをサブネットに移動させます..
def collapseSingleNodeIntoSubnet(node, subnet_name=None): node.parent().collapseIntoSubnet((node,), subnet_name=None)
extractAndDelete()
→ tuple
of hou.NetworkMovableItem
このサブネットノードの子を移動させて、このノードの兄弟にし、このノードを削除します。このメソッドは、collapseIntoSubnet()と逆のメソッドです。
抽出されたすべてのアイテムを含んだタプルを返します。
このノードがサブネットワークでない場合は、hou.InvalidNodeTypeを引き起こします。
comment()
→ str
ノードのコメント文字列を返します。
setComment(comment)
このノードに関連したコメントを設定します。
appendComment()も参照してください。
appendComment(comment)
指定したテキストを、このノードに関連したコメントに追加します。
isDisplayDescriptiveNameFlagSet()
→ bool
ネットワークエディタ内でノードが説明的名前を表示するかどうかを示すブールを返します。
setDisplayDescriptiveNameFlag(on)
ネットワークディター内でこのノードが説明的名前を表示するかどうか設定します。
creator()
→ Node
このノードから、異なるタイプの最初の親を返します。 単純なネットワークでは、これはparent()と同じですが、その親が同じノードタイプの場合(例えば、どちらもSOPだった場合)、異なるタイプが見つかるまで処理が繰り返されます。 これは、コンテナノードを検索するのに役立ち、例えば、入れ子状になったSOPネットワークについて気にすることなく、SOPが格納されているObjectを検索することができます。 とはいえ、SOPの親が必ずしもObjectであるとは限らないことに注意してください!
network()
→ Node
creatorメソッドのエイリアス。
moveToGoodPosition(relative_to_inputs=True, move_inputs=True, move_outputs=True, move_unconnected=True)
→ hou.Vector2
ノードをその入力や出力の近くで上手く間隔を空けて動かし、そのノードの新しい位置を返します。
layoutChildren(items=(), horizontal_spacing=-1.0, vertical_spacing=-1.0)
このノードのすべてまたは一部の子ノードをネットワークエディタ内で自動的に配置します。
items
配置する子hou.NetworkMovableItemオブジェクトのシーケンス。 このシーケンスには、ノード、ドット、サブネット入力を含めることができます。 このシーケンスが空っぽの場合、このメソッドは、このノードのすべての子アイテムの位置を変更します。
horizontal_spacing
タイルの幅と高さの比率は、共通入力を持つノード間の間隔に影響します。 このパラメータが-1の場合、Houdiniはデフォルトの間隔を使用します。
vertical_spacing
タイルの幅と高さの比率は、ノードとその出力ノード間の間隔に影響します。 このパラメータが-1の場合、Houdiniはデフォルトの間隔を使用します。
isHidden()
ノードがネットワークエディタ内で非表示かどうか返します。 Houdiniは、“exposed”という用語を使用して、非表示でないノードを参照することもできます。
可視ノードを不可視ノードに接続した場合、ネットワークエディタは、その可視ノードから不可視ノードまでのワイヤーを破線で表示します。
hou.Node.hideも参照してください。
hide(on)
ネットワークエディタ内にノードを非表示または表示します。不可視ノードに関する詳細は、hou.Node.isHiddenを参照してください。
errors()
→ tuple
of str
このノードの最後のクックからのエラーのテキストを返します。エラーがなければ空っぽのタプルが返されます。
warnings()
→ tuple
of str
このノードの最後のクックからの警告のテキストを返します。警告がなければ空っぽのタプルが返されます。
messages()
→ tuple
of str
このノードの最後のクックからメッセージのテキストを返します。メッセージがなければ空っぽのタプルが返されます。
iterNetworkBoxes()
→ generator of hou.NetworkBox
このノード内のすべてのネットワークボックスを巡回するジェネレータを返します。
findNetworkBox(name)
→ hou.NetworkBox
このノード内の指定した名前のネットワークボックスを返します。または指定した名前のネットワークボックスが存在しなかった場合はNoneが返されます。
findNetworkBoxes(pattern)
→ tuple
of hou.NetworkBox
このノード内のパターンに合致した名前のネットワークボックスのリストを返します。
createNetworkBox(name=None)
→ hou.NetworkBox
このネットワーク内にネットワークボックスを作成します。このノードがネットワークでない場合は、hou.OperationFailedを引き起こします。
nameを指定しなかった場合は、Houdiniは、そのネットワークボックスにデフォルトの名前を付けます。
ネットワークボックス名はネットワークエディタペイン内に表示されません。 その代わり、hou.NetworkBox.setCommentメソッドによって“コメント”を指定することができます。 このコメントは、ネットワークボックスのタイトルバーに表示されます。
copyNetworkBox(network_box_to_copy, new_name=None, channel_reference_original=False)
→ hou.NetworkBox
ネットワークボックスをコピーし、そのコピーを返します。
new_nameを指定した場合、そのネットワークボックスがnew_nameという名前の新しいネットワークボックスにコピーされます(既にその名前のネットワークボックスが存在すれば別の名前が生成されます)。
channel_reference_originalがTrueの場合、そのコピーで作成されたすべてのオペレータは、元のオペレータを参照するように設定されたアニメーション可能なパラメータを持ちます。
このノードがネットワークでない場合や、ノードの子タイプがネットワークボックスのノードタイプに合致しなかった場合は、hou.OperationFailedを引き起こします。
iterStickyNotes()
→ generator of hou.StickyNote
このノード内のすべてのステッキーノートを巡回するジェネレータを返します。
findStickyNote(name)
→ hou.StickyNote
このノード内の指定した名前のステッキーノートを返します。指定した名前のステッキーノートが存在しなかった場合は、Noneを返します。
findStickyNotes(pattern)
→ tuple
of hou.StickyNote
このノード内のパターンに合致した名前のステッキーノートのリストを返します。
createStickyNote(name=None)
→ hou.StickyNote
このネットワーク内にステッキーノートを作成します。このノードがネットワークでない場合は、hou.OperationFailedを引き起こします。
nameを指定しなかった場合、Houdiniは、そのノートをデフォルトの名前にします。
copyStickyNote(network_box_to_copy, new_name=None)
→ hou.StickyNote
ステッキーノートをコピーして、そのコピーを返します。
new_nameを指定した場合、そのステッキーノートがnew_nameという名前の新しいステッキーノートにコピーされます(既にその名前のステッキーノートが存在すれば別の名前が生成されます)。
このノードがネットワークでない場合や、ノードの子タイプがステッキーノートのノードタイプに合致しなかった場合は、hou.OperationFailedを引き起こします。
createNetworkDot()
→ hou.NetworkDot
このネットワーク内にネットワークドットを作成します。このノードがネットワークでない場合は、hou.OperationFailedを引き起こします。
copyItemsToClipboard(items)
子アイテムのシーケンス(ノード、ネットワークボックス、ステッキーノートなど)を指定すると、このネットワークまたは他のネットワーク内にそれらをペーストできるように、 それらのアイテムがクリップボードに保存されます。
items
このノードの子であるhou.NetworkMovableItemのシーケンス。
これらのノードまたはネットワークボックスがこのノードの子でない場合は、hou.OperationFailedを引き起こします。 このノードの内容を読み込む権限がない場合は、hou.PermissionErrorを引き起こします。
pasteItemsFromClipboard(position = None)
hou.Node.copyItemsToClipboardを使って保存されたファイルの内容を、このノードの内容に読み込みます。
positionパラメータを2つのfloat値のタプル(またはhou.Vector2のような同等のもの)として指定すると、ペーストしたアイテムが、その位置を中心に配置されるように移動されます。
このノードがネットワークでない場合やクリップボードからアイテムを読み込む時にエラーが発生した場合は、hou.OperationFailedを引き起こします。 このノードがロックされたデジタルアセットインスタンスであれば、hou.PermissionErrorを引き起こします。
__eq__(node)
→ bool
Nodeオブジェクト間に==を実装します。
例えば、hou.root() == hou.node(“/”)はTrueを返します。
同じHoudiniノードに対して複数のPython Nodeオブジェクトが存在できます。
hou.node()の2つの同一コールは、異なるPython Nodeオブジェクトを返し、それぞれ同じHoudiniノードを意味します。
==(別名__eq__)を使用してそれらのノードを比較すると、Trueを返し、
is(オブジェクト同一性テスト)を使用してそれらのノードを比較するとFalseを返します。
__ne__(node)
→ bool
Nodeオブジェクト間に!=を実装します。__eq__()を参照してください。
setUserData(name, value)
このノードインスタンス上に名前付き文字列を追加/設定します。
name
ユーザ定義データに対する固有名(キー)。異なる名前を使用することで、複数のユーザ定義データをノードに追加することができます。
value
格納する文字列。
この名前/値のペアがHIPファイルに格納され、それがopscriptとhou.Node.asCodeからの出力に含まれます。
以下のサンプルは、ユーザ定義データを設定、アクセス、削除する方法について説明しています:
>>> n = hou.node("/obj").createNode("geo") >>> n.setUserData("my data", "my data value") >>> n.userData("my data") 'my data value' >>> n.userDataDict() {'my data': 'my data value'} >>> n.destroyUserData("my data") >>> n.userDataDict() {} >>> print n.userData("my data") None
詳細とサンプルは、ノード毎のユーザ定義データを参照してください。
Tip
ユーザデータキーの頭にnodeinfo_を付けると、(その接頭辞なしで)そのキーと値がNode Infoポップアップウィンドウのカスタムフィールドとして表示されます。
userDataDict()
→ dict
of str
to str
このノードに対するユーザ定義の名前/文字列のペアすべてを含んだ辞書を返します。
詳細は、hou.Node.setUserDataを参照してください。
userData(name)
→ str
or None
この名前のユーザ定義データを返します。この名前のデータが存在しなかった場合は、Noneが返されます。
詳細は、hou.Node.setUserDataを参照してください。
このメソッドは以下のように実装されています:
def userData(self, name): return self.userDataDict().get(name)
destroyUserData(name, must_exist=True)
この名前のユーザ定義データを削除します。
詳細は、hou.Node.setUserDataを参照してください。
この名前のユーザデータが存在しない且つmust_existがTrueの場合は、hou.OperationFailedを引き起こします。
isFlagReadable(flag)
→ bool
指定したフラグが読み込み可ならTrue、そうでないならFalseを返します。
flagは、hou.nodeFlag値でなければなりません。
isFlagWritable(flag)
→ bool
指定したフラグが書き込み可ならTrueを、そうでないならFalseを返します。
flagは、hou.nodeFlag値でなければなりません。
setGenericFlag(flag, value)
bool、valueに基づいて、指定したフラグの値を設定します。
flagは、hou.nodeFlag値でなければなりません。
Methods from hou.OpNode ¶
createOrMoveVisualizer(output_index)
このノードの特定の出力のデータを可視化するためのノードを作成します。
現行ネットワーク内に既にビジュアライザノードが存在する場合には、そのビジュアライザノードが、ここで指定したoutput_indexに移動して接続されます。
このメソッドは、SOPとVOPのノードに対してのみ実行されます。
他のノードタイプに対しては、このメソッドをコールしても何も実行されません。
copyTo(destination_node)
→ hou.Node
このノードをノード階層内の新しい場所にコピーします。destination_nodeの中に新しいノードが配置されます。
このメソッドは、その新しいノードを返します。
destination_nodeに新しいノードを配置することができなかった場合はhou.OperationFailedを引き起こします。
ロックされたアセットの中にdestination_nodeがあった場合はhou.PermissionErrorを引き起こします。
reorderChild(src, dest)
If this node is a network, re-order the user-defined order of its children
by taking the child at index src and moving it to index dest, shifting
over the children in between. After the reorder, the moving child will be
directly before the child formerly at index dest. To move a child to the
very end of the list, set dest to be equal to the number of children.
Raises hou.OperationFailed if this node is not a network. Raises hou.PermissionError if this node is or is inside a locked digital asset.
parm(parm_path)
→ hou.Parm or None
指定したパスのパラメータを返します。そのパラメータが存在しなかった場合はNoneを返します。
globParms(pattern, ignore_case=False, search_label=False, single_pattern=False)
→ tuple of hou.Parm
パターンに一致したパラメータのタプルを返します。
パターンには、スペース区切りで複数のピースを含めることができます。
パターンピース内のアスタリスク(*)は、どの文字にも合致します。
デフォルトでは、Houdiniは、各パターンピースで既に合致したパラメータを追加します。
しかし、そのパターンピースがキャレット(^)で始まっていれば、Houdiniは、その結果からそのピースの合致を排除します。
デフォルトのパターンマッチは、大文字小文字を区別します。
大文字小文字を区別せずにパターンマッチングを行なうには、ignore_caseをTrueに設定します。
この設定は、ノード名のマッチングの時にだけ大文字小文字の区別をしない事に注意してください。
グループ、ネットワークボックス、バンドル名のマッチングでは、大文字小文字の区別がされます。
デフォルトでは、パターンに合致した名前のパラメータのみが返されます。search_labelをTrueに設定すれば、パターンに合致したラベルのパラメータも返されます。
single_patternがTrueの場合、パターンをスペースで区切っても、そのパターンは1パターンとして扱われます。
このメソッドは、空っぽのパターンを指定した場合に空っぽのタプルを返します。
evalParm(parm_path)
→ int
, float
, or str
指定したパラメータを評価し、その結果を返します。
allParms()
→ generator of hou.Parm
このノード内に含まれたすべてのノード(このノードを含む)のパラメータすべてのシーケンスを再帰的に返します。
このメソッドはジェネレータであり、タプルを返しません。
以下は、/obj下のすべてのノードのパラメータパスを出力した例です:
root_node = hou.node("/obj") for parm in root_node.allParms(): print parm.path()
setParms(parm_dict)
Parm名と値をマッピングした辞書を指定すると、このノード上のそれに相当する各Parmを、その辞書で指定された値に設定します。
以下のサンプルは、一度にtxとsyのパラメータを設定します:
>>> node = hou.node("/obj").createNode("geo") >>> node.setParms({"tx": 1, "sy": 3})
Parm名はパラメータとパラメータタプルのどちらにも試されるので、ベース名も使用することができます:
>>> node = hou.node("/obj").createNode("geo") >>> node.setParms({"t": (1, 2, 3), "s": (3, 3, 3)})
パラメータ名のどれかが無効の場合、hou.OperationFailedを引き起こします。
setParmExpressionsメソッドも参照してください。
setParmsPending(parm_dict)
Parm名と値をマッピングした辞書を指定すると、このノード上のそれに相当する各Parmの保留値を設定します。 パラメータとパラメータタプルのどちらにも対応しています。
パラメータ名のどれかが有効でなかった場合は、hou.OperationFailedを引き起こします。
setPendingメソッドも参照してください。
setParmExpressions(parm_dict, language=None, replace_expressions=True)
Parm名とエクスプレッション文字列をマッピングした辞書を指定すると、このノード上のそれに相当する各Parmを、その辞書で指定されたエクスプレッション文字列に設定します。
languageとreplace_expressionsのParmに関しては、hou.Parm.setExpressionを参照してください。
以下のサンプルのエクスプレッションは、一度にtxとsyのパラメータを設定します:
>>> node = hou.node("/obj").createNode("geo") >>> node.setParmExpressions({"tx": 'ch("ty")', "sy": "sin($F)"})
パラメータ名のどれかが無効の場合、hou.OperationFailedを引き起こします。
setParmsメソッドも参照してください。
parmTuple(parm_path)
→ hou.ParmTuple or None
指定したパスでのパラメータタプルを返し、それがなければNoneを返します。
このメソッドはparm()と同様ですが、hou.Parmの代わりにhou.ParmTupleを返します。
evalParmTuple(parm_path)
→ tuple
of int
, float
, or str
指定したパラメータタプルを評価し、その結果を返します。
parmTuples()
→ tuple
of hou.ParmTuple
このノード上のパラメータタプルすべてのリストを返します。
このメソッドはparms()と同様ですが、hou.Parmの代わりにhou.ParmTupleを返します。
parmsInFolder(folder_names)
→ tuple
of hou.Parm
このノード上のフォルダ内のパラメータのリストを返します。 フォルダと(あれば)そのサブフォルダ内のパラメータすべてを返します。
folder_names
フォルダ名文字列のシーケンス。例えば、RenderフォルダのShadingフォルダ内のパラメータのリストを取得するには、("Render", "Shading")を使用します。
このフォルダ名は、内部パラメータではなくパラメータダイアログで使用されるラベルを意味します。
このシーケンスが空っぽの場合、このメソッドは、parms()と同様にノード上のパラメータすべてを返します。
folder_namesで指定したフォルダが存在しなかった場合は、hou.OperationFailedを引き起こします。
例えば、ノードのRenderフォルダにShadingサブフォルダが含まれていると仮定します。 以下のコードの行は、そのRenderフォルダ内のパラメータを返します:
# "Render"の後のカンマは、その"Render"が括弧で閉じた単一文字列としてではなく、 # タプル/シーケンスの中に"Render"が含まれていることをPythonに伝えている # ことに注意してください。 >>> node.parmsInFolder(("Render", ))
以下のコードの行は、Shadingサブフォルダ内のパラメータを返します。
>>> node.parmsInFolder(("Render", "Shading"))
hou.Parm.containingFoldersとhou.Parm.containingFolderSetParmTuplesも参照してください。
Note
このメソッドは、フォルダパラメータに似た挙動をするマルチパラメータに対して動作しません。 マルチパラメータ内のパラメータのリストを取得したいのであれば、hou.Parm.multiParmInstancesをコールしてください。
parmTuplesInFolder(folder_names)
→ tuple of hou.ParmTuple
このノード上のフォルダ内のパラメータタプルのリストを返します。
このメソッドは、parmsInFolder()と同様ですが、hou.Parmの代わりにhou.ParmTupleのリストを返します。
引数に関する情報は、上記のparmsInFolder()を参照してください。
hou.Parm.containingFoldersとhou.Parm.containingFolderSetParmTuplesも参照してください。
expressionLanguage()
→ hou.exprLanguage列挙値
ノードのデフォルトのエクスプレッション言語を返します。
エクスプレッションをまだ含んでいないパラメータにエクスプレッションを入力すると、ノードのエクスプレッション言語を使用して、そのエクスプレッションの評価方法が決められます。 GUIのパラメータダイアログ内でノードのエクスプレッション言語を変更することができます。
ノードのエクスプレッション言語を変更しても、既にエクスプレッションを含んだパラメータ(つまり、キーフレーム突きのパラメータ)の言語は変わりません。
パラメータに既にエクスプレッションが入っていて、GUIでそのエクスプレッションを変更しても、ノードのエクスプレッション言語の値に関係なくエクスプレッション言語が変わらないことに注意してください。
Pythonからパラメータ内の既存エクスプレッションの言語を変更するには、parm.setExpression(parm.expression(), language)のようにhou.Parm.setExpressionを使用してください。
setExpressionLanguage(language)
ノードのデフォルトエクスプレッション言語を設定します。
詳細は、expressionLanguage()を参照してください。
parmAliases(recurse=False)
→ dict of hou.Parm to str
ノードのパラメータ上のパラメータエイリアスの辞書を返します。 辞書内のキーは、エイリアスを持つパラメータで、その値はエイリアス名です。
recurse
このノードと その子 のパラメータエイリアスを返します。
clearParmAliases()
ノードのパラメータからエイリアス名すべてを削除します。
spareParms()
→ tuple of hou.Parm
このノードのSpareパラメータ(ユーザ定義パラメータ)のリストを返します。
removeSpareParms()
このノードからすべてのSpareパラメータを削除します。
revertParmInterface()
すべてのSpareパラメータをベースパラメータの後に移動させることで、パラメータインターフェースを元に戻します。
parmTemplateGroup()
→ hou.ParmTemplateGroup
このノードの現在のパラメータレイアウトに相当するparmテンプレートのグループを返します。
現行パラメータグループを取得したり、それを修正したり、それを使ってhou.Node.setParmTemplateGroupをコールすることで、 このノードのパラメータレイアウトの編集(Spareパラメータの追加削除、ビルトインパラメータの並べ替えや非表示など)をすることができます。
以下のサンプルは、ジオメトリオブジェクトを作成し、そこにMy Parmsフォルダを追加し、そのフォルダにMy Parm floatパラメータを追加します。
パラメータは、作成されたジオメトリオブジェクトにのみ追加されます。つまり他のジオメトリオブジェクトは影響を受けません。
>>> node = hou.node("/obj").createNode("geo") >>> group = node.parmTemplateGroup() >>> folder = hou.FolderParmTemplate("folder", "My Parms") >>> folder.addParmTemplate(hou.FloatParmTemplate("myparm", "My Parm", 1)) >>> group.append(folder) >>> node.setParmTemplateGroup(group)
詳細とサンプルは、hou.ParmTemplateGroupとsetParmTemplateGroupメソッドを参照してください。
setParmTemplateGroup(parm_template_group, rename_conflicting_parms=False)
このノードのSpareパラメータを変更します。
parm_template_group
新しいパラメータレイアウトを含んだhou.ParmTemplateGroupオブジェクト。
rename_conflicting_parms
Trueの場合、同じパラメータタプル名を持つグループ内のパラメータの名前が自動的に変更されます。
Falseで、同じ名前のパラメータが存在すれば、このメソッドはhou.OperationFailedを引き起こします。
各ノードタイプは、必ず存在するパラメータのセットを持っていて、特定のタイプでなければならないことに注意してください。 パラメータテンプレートグループにノードタイプで必要なパラメータがなかった場合、そのパラメータが下に追加され、不可視に設定されます。 同様に、パラメータテンプレートグループが、必要なパラメータのタイプ、範囲、ラベル、他のプロパティを修正しようと試みる場合、そのパラメータの可視設定以外の変更すべてが無視されます。
このメソッドは、このクラスの他のパラメータ関連メソッド(addSpareParmTuple, removeSpareParmTuple, replaceSpareParmTuple, addSpareParmFolder, removeSpareParmFolder)よりも優先度が高いです。 その理由は、簡単にパラメータを制御することができるからです。
デジタルアセットのパラメータインターフェースを変更するには、hou.HDADefinition.setParmTemplateGroupを参照してください。
addSpareParmTuple(parm_template, in_folder=(), create_missing_folders=False)
→ hou.ParmTuple
Spareパラメータタプルをノードのパラメータの最後に追加します。
in_folderが空っぽのシーケンスでない場合は、このメソッドは、それらのパラメータを特定のフォルダのパラメータの最後に追加します。
parm_template
パラメータタプルのタイプ、デフォルト値、範囲などを指定したhou.ParmTemplateサブクラスインスタンス。
in_folder
パラメータを保持するフォルダを指定したフォルダ名のシーケンス。
このパラメータが空っぽのシーケンス(例えば())の場合、Houdiniはフォルダ内にパラメータを格納しません。
例えば、("Misc", "Controls")の場合、Houdiniは“Misc”フォルダ内の“Controls”フォルダ内にパラメータを格納します。
例えば、("Misc",)の場合、Houdiniは“Misc”フォルダ内にパラメータを格納します。
create_missing_folders
Trueでin_folderで指定したフォルダの位置が存在しなかった場合、このメソッドは、その見つからなかったフォルダを作成します。
このメソッドは、parm_templateに対してhou.FolderParmTemplateを渡すことで単一フォルダを追加することができることを覚えておいてください。
removeSpareParmTuple()とaddSpareParmFolder()のメソッドも参照してください。
このメソッドは廃止され、代わりにsetParmTemplateGroupを使用してください。
removeSpareParmTuple(parm_tuple)
指定したSpareパラメータタプルを削除します。
addSpareParmTuple()も参照してください。
このメソッドは廃止され、代わりにsetParmTemplateGroupを使用してください。
addControlParmFolder(folder_name=None, parm_name=None)
コントロールパラメータフォルダをトップレベルの最前面フォルダとして追加します。
これは、カスタマイズしたコントロールパラメータの可視性を良くするために使用します。
同じ名前のフォルダが既に存在していれば、新しいフォルダは作成されません。
folder_nameがNoneの場合、そのフォルダ名前は'Controls'に設定されます。
parm_nameがNoneの場合、そのパラメータ名は'folder'に設定されます。
現行フォルダが存在しない場合、既存パラメータはグループ化されて'Parameters'という名前の新しいフォルダに格納され、新しいコントロールパラメータフォルダの後に配置されます。
addSpareParmFolder(folder_name, in_folder=(), parm_name=None, create_missing_folders=False)
フォルダをSpareパラメータに追加します。
セット内のフォルダすべてが1個のパラメータに相当することを覚えておいてください。
これがセットに入る最初のフォルダの場合、parm_nameがパラメータ名として使用されます。
そうでない場合、parm_nameは無視され、セット内の最初のフォルダのパラメータ名が使用されます。
これがセット内の最初のフォルダでparm_nameがNoneの場合、デフォルトが’sparefolder0'です。
parm_nameが既に使用されていれば、固有の名前が自動的に生成されます。
create_missing_foldersがTrueの場合、このメソッドは、in_folder内に存在しないフォルダを作成します。
そのため、このメソッドを使用すれば、SpareフォルダとSpareパラメータを同時に追加することができます。
addSpareParmTupleメソッドにhou.FolderParmTemplateを渡すことで、フォルダを追加することができるので、このメソッドは廃止されました
また、addSpareParmTupleも廃止され、代わりにsetParmTemplateGroupを使用してください。
removeSpareParmFolderとaddSpareParmTupleのメソッドも参照してください。
このメソッドは廃止され、代わりにsetParmTemplateGroupを使用してください。
removeSpareParmFolder(folder)
Spareパラメータから空っぽのフォルダを削除します。
folderはフォルダ名のシーケンスです。
そのため、Outputフォルダを削除するには、"Output"の代わりに("Output",)を使用してください。
addSpareParmFolder(), hou.ParmTemplateGroup.remove, hou.ParmTemplateGroup.findFolderも参照してください。
replaceSpareParmTuple(parm_tuple_name, parm_template)
既存のSpareパラメータタプルを新しいタプルに置換します。古いパラメータタプルが削除され、新しいパラメータタプルがそこに追加されます。
parm_tuple_name
置換するSpareパラメータタプルの名前。 この名前のパラメータタプルが存在しなかった場合や、その名前がSpareパラメータでない場合は、hou.OperationFailedを引き起こします。
parm_template
新しいパラメータタプルを記述したhou.ParmTemplate。
新しいパラメータタプルは、古いパラメータタプルと同じ名前であっても、そうでなくても構いません。 同じ名前のパラメータタプルを用意することで、既存のSpareパラメータタプルを修正することができます。
非Spareパラメータタプルを置換することができないことに注意してください。 とはいえ、hou.ParmTuple.hideを使用すれば、非Spareパラメータの可視性を変更することができます。
デジタルアセットのすべてのインスタンスのパラメータを変更するには、hou.HDADefinition.replaceParmTupleを使用します。
このメソッドは廃止され、代わりにsetParmTemplateGroupを使用してください。
localVariables()
このノードのパラメータエクスプレッション内で$接頭辞を使って参照可能なローカル変数のリストを返します。
localAttributes()
このノードのパラメータエクスプレッション内で@接頭辞を使って参照可能なローカル変数のリストを返します。
このリストには、このノード内でアトリビュートとして定義されているローカル変数と、このノードが最後にクックされた時に利用可能だったコンテキストオプションが含まれます。
saveParmClip(file_name, start=None, end=None, sample_rate=0, scoped_only=False)
このノードのパラメータに関連のあるアニメーションを、‹file_name›で指定したClipファイルに保存します。 ‹file_name›の拡張子によって、保存されるファイルのフォーマットが決まります。
以下の拡張子のどれかを使用することができます:
-
.clip: アニメーションをプレーンテキスト(ASCII)のclipファイルとして保存します。 -
.bclip: アニメーションをbclip(バイナリclip)ファイルとして保存します。 -
.bclip.sc: アニメーションをBlosc圧縮のbclipファイルとして保存します。
Clipファイルに使用するサンプルレートを指定するには、‹sample_rate›にゼロ以外のプラスの値を設定します。 例えば、現行フレームレートが24(hou.fps())で、‹sample_rate›を12に設定すると、その‹sample_rate›が現行フレームレートの半分なので、そのアニメーションが2フレームおきにサンプリングされます。
‹start›がNoneでない場合は、その指定したフレーム(この番号を含む)からアニメーションの保存を開始します。
Noneの場合、グローバルの開始フレーム(この番号を含む)からアニメーションが保存されます。
同様に‹end›がNoneでない場合は、その指定したフレーム(この番号を含む)でアニメーションの保存を終了します。
Noneの場合、グローバルの終了フレーム(この番号を含む)までアニメーションが保存されます。
グローバルの開始/終了フレームは、Global Animation Optionsウィンドウで指定します。
‹scoped_only›がTrueの場合、スコープされたパラメータに関連のあるアニメーションのみが保存されます。
スコープされたパラメータがなかった場合、自動スコープのパラメータに関連のあるアニメーションが保存されます。
‹scoped_only›がFalseの場合、このノードのパラメータに関連のあるアニメーションが保存されます。
このノードのパラメータに何もアニメーションがなければ、hou.OperationFailed例外を引き起こします。
‹scoped_only›がTrueの場合、スコープされたパラメータに何もアニメーションがない、または、(このノードにスコープされたパラメータがない場合では)自動スコープのパラメータにアニメーションがなければ、この例外が引き起こされます。
アニメーションをファイルに保存した際にエラーが起きれば、hou.OperationFailed例外を引き起こします。
start >= endの場合はhou.InvalidInput例外を引き起こします。
‹start›のみを指定する場合には、必ずグローバルの終了フレーム未満の値を指定してください。
‹end›のみを指定する場合には、必ずグローバルの開始フレームより大きい値を指定してください。
loadParmClip(file_name, sample_rate=0, start=None)
‹file_name›で指定したClipファイルを、このノードのパラメータのアニメーションとして読み込みます。 対応しているClipファイルフォーマットのリストは、hou.Node.saveParmClipを参照してください。
このノードのパラメータの名前に合致しないClipファイルのトラックは無視されます。
‹sample_rate›には、ゼロ以外のプラスの値を設定します。そこで指定した値がアニメーションを読み込む時に使用されます。 例えば、現行フレームレートが24(hou.fps())で、‹sample_rate›を12に設定すると、その‹sample_rate›が現行フレームレートの半分なので、そのアニメーションが2フレームおきにキーフレーム付きで読み込まれます。
‹start›には、読み込んだアニメーションを開始させるフレームを指定します。 デフォルトでは、Clipファイルで指定されたフレームからアニメーションが開始します。
Warning
読み込んだアニメーションの範囲内にあるこのノードのパラメータの既存のキーフレームは、その読み込んだデータで上書きされます。
ファイルからアニメーションデータを読み込んだ際にエラーが起きれば、この関数は、hou.OperationFailed例外を引き起こします。
parmClipData(start=None, end=None, binary=True, use_blosc_compression=True, sample_rate=0, scoped_only=False)
→ str
for Python 2, bytes
for Python 3
このノードのパラメータのClipデータを返します。 このメソッドはhou.Node.saveParmClipと同様ですが、アニメーションをClipファイルに保存するのではなくて、Clipデータ(ファイルの内容)を返します。
‹start›, ‹end›, ‹sample_rate›, ‹scoped_only›は、hou.Node.saveParmClipと同じ挙動です。
‹binary›がTrueの場合はバイナリClipデータを返し、Falseの場合はプレーンテキスト(ASCII)Clipデータを返します。
‹use_blosc_compression›がTrueの場合はBlosc圧縮のバイナリClipデータを返します。
これはプレーンテキスト(ASCII)Clipデータには使用することができません。
返されるクリップデータは、Python3だとbytesオブジェクト、Python2だとstrオブジェクトです。
詳細は、HOMバイナリデータを参照してください。
このタプルのパラメータに何もアニメーションがなければhou.OperationFailed例外を引き起こします。
start >= endの場合はhou.InvalidInput例外を引き起こします。
‹start›のみを指定する場合には、必ずグローバルの終了フレーム未満の値を指定してください。
‹end›のみを指定する場合には、必ずグローバルの開始フレームより大きい値を指定してください。
binary = False且つuse_blosc_compression = Trueの場合はhou.InvalidInput例外を引き起こします。
setParmClipData(data, binary=True, blosc_compressed=True, sample_rate=0, start=1)
‹data›で指定したClipを、このノードのパラメータのアニメーションとして読み込みます。 このメソッドはhou.Node.loadParmClipと同様ですが、Clipファイルの代わりにClipデータからアニメーションを読み込みます。
このクリップデータは、Python3だとbytesオブジェクト、Python2だとstrオブジェクトでなければなりません。
詳細は、HOMバイナリデータを参照してください。
‹sample_rate›と‹start›はhou.Node.loadParmClipと同じ挙動です。
‹binary›と‹blosc_compressed›には入力データのタイプを指定します。
‹binary›がTrueの場合、指定するデータはバイナリClipデータです。
Falseの場合、指定するデータはプレーンテキスト(ASCII)Clipデータです。
‹blosc_compressed›がTrueの場合、指定するデータはBlosc圧縮バイナリデータです。
これはプレーンテキスト(ASCII)Clipデータには使用することができません。
指定したデータが無効であれば、hou.OperationFailed例外を引き起こします。
binary = False且つblosc_compressed = Trueの場合はhou.InvalidInput例外を引き起こします。
references(include_children = True)
→ tuple
of hou.Node
パラメータエクスプレッション、nameによるノード参照、他のノードで生成されたデータに依存したエクスプレッションのどれかによって、 このノードが参照しているノードのタプルを返します。この返されるタプルは、あるノードが他のノードに影響を与えるすべての方法(入力の接続を除く)を反映しています。
この結果は、ノードの最後のクックによって異なる可能性があることに注意してください。まず最初にノードに対してcook()をコールすることを推奨します。
dependents(include_children = True)
→ tuple
of hou.Node
パラメータエクスプレッション、nameによるノード参照、他のノードで生成されたデータに依存したエクスプレッションのどれかによって、 このノードを参照しているノードのタプルを返します。この返されるタプルは、あるノードが他のノードに影響を与えるすべての方法(入力の接続を除く)を反映しています。
この結果は、ノードの最後のクックによって異なる可能性があることに注意してください。
fileReferences(recurse = True, project_dir_variable = "HIP", include_all_refs = True)
→ tuple
of hou.Parm and str
tuples
このノードからの(テクスチャ、ジオメトリファイル、アセットライブラリなどの)外部ファイル参照を表現したタプルのシーケンスを返します。
recurseがTrueの場合、このノードのすべての子ノードに適用されます。
recurse
オペレータ階層全体に再帰的に適用します。
project_dir_variable
環境変数の名前を指定することができます。アセットのパスがその変数のパスから始まっていれば、この関数は、そのアセットのパスを環境変数に置換してパスを返します。
include_all_refs
これがTrueの場合、この関数は、すべてのファイル参照を返します。 これがFalseの場合、この関数は、選択されたファイル参照のみを返します。
hou.fileReferences()も参照してください。
createDigitalAsset(name=None, hda_file_name=None, description=None, min_num_inputs=0, max_num_inputs=0, compress_contents=False, comment=None, version=None, save_as_embedded=False, ignore_external_references=False, change_node_type=True, create_backup=True, install_path=None)
→ Node
このノードからデジタルアセットを作成します。通常では、このメソッドはサブネットノードに対してコールします。
name
新しく定義するデジタルアセットのノードタイプの名前。
hda_file_name
Houdiniがデジタルアセットを保存する先のHDAファイルの名前。
Noneの場合、Houdiniは$HOME/houdiniX.Y/hda/OPcustom.otlを使用します。
description
Tabメニューで表示させる名前。Noneの場合は、Houdiniは説明用の名前を使用します。
min_num_inputs
デジタルアセットのインスタンスの接続に必要な最小入力数。 詳細は、hou.HDADefinition.minNumInputsを参照してください。
max_num_inputs
入力コネクションに対してデジタルアセットのインスタンスで利用可能な入力コネクタの数。 詳細は、hou.HDADefinition.minNumInputsを参照してください。
compress_contents
このデジタルアセットの内容をHDAファイル内に圧縮するかどうか。 詳細は、hou.HDAOptions.compressContentsを参照してください。
comment
ユーザ定義のコメント文字列。詳細は、hou.HDADefinition.commentを参照してください。
version
ユーザ定義のバージョン文字列。詳細は、hou.HDADefinition.versionを参照してください。
save_as_embedded
デジタルアセットの定義をHDAファイルではなくHIPファイルに保存するかどうか。
このパラメータがTrueの時、Houdiniはhda_file_nameパラメータを無視します。
このパラメータをTrueに設定する事は、このパラメータをFalseに設定してhda_file_nameパラメータを“Embedded”に設定する事と同じです。
ignore_external_references
Trueの場合、Houdiniは、このデジタルアセットの内容が、そのアセット外側のノードを参照していても警告を発しません。
change_node_type
通常では、Houdiniはデジタルアセットを作成したノードを新しいデジタルアセットタイプに変更します。 このフラグをFalseに設定することで、そのノードをそのままにします。
create_backup
既存のHDAファイルを変更する前にバックアップを作成します。
install_path
新しいHDAのインストール先。 指定しなかった場合、“Current HIP File”または“Scanned Asset Library Directories”のどちらかにインストールされます。
createCompiledDigitalAsset(name=None, hda_file_name=None, description=None)
このノードから、コンパイルしたデジタルアセットを作成します。 通常では、このメソッドはVOPネットワークノード(例えば、Material Shader Builder SHOP, Surface Shader Builder SHOP, VEX Surface SHOP Type VOPNET)に対してコールします。 デジタルアセットはコンテンツセクションを持ちません。つまり、内部にVOPネットワークを持ちませんが、代わりに、シェーダコードを用意するには、保存したVEXコードセクションに依存します。
コンパイルしたHDAを作成した後、そのVEXコードセクションが今まで手動で変更していれば、それに該当するVEXオブジェクトコードセクションは、hou.HDADefinition.compileCodeSectionを使用して再コンパイルすることができます。
name
新しくデジタルアセットを定義するノードタイプの名前。
hda_file_name
Houdiniがデジタルアセットを保存する先のHDAファイルの名前。
Noneの場合、Houdiniは$HOME/houdiniX.Y/hda/OPcustom.otlを使用します。
description
Tabメニューで表示させる名前。Noneの場合は、Houdiniは説明用の名前を使用します。
changeNodeType(new_node_type, keep_name=True, keep_parms=True, keep_network_contents=True, force_change_on_node_type_match=False)
→ hou.Node
ノードを(同じコンテキスト内で)新しいタイプに変更します。
new_node_typeは、変更したいタイプの内部文字列名です。
Keep_name, keep_parms, keep_network_contentsは、ノードのタイプが変わった後に、
それぞれノードを同じ名前、同じパラメータ値、同じ内容に保持することを意味します。
force_change_on_node_type_matchは、ノードのタイプが既に指定したタイプの時でも、その変更を実行するべきかどうかを指示します。
allowEditingOfContents(propagate=False)
デジタルアセットの内容を編集できるように、そのデジタルアセットのロックを解除します。
この関数を使用するには、必ずHDAを修正する権限がなければなりません。
matchCurrentDefinition()
このノードがロック解除されたデジタルアセットの場合、そのデジタルアセットの内容を、その定義に保存されている内容に戻してロックします。 パラメータ値は変更されません。
このノードがロックされていたり、デジタルアセットでない場合は、このメソッドは何の効果もありません。
hou.Node.matchesCurrentDefinitionとhou.Node.isLockedも参照してください。
matchesCurrentDefinition()
→ bool
ノードの内容がそのタイプ定義にロックされているかどうか返します。
syncDelayedDefinition()
このノードがデジタルアセットで、その内容が現在Delay-Sync(遅延同期)状態である場合、その内容が同期されます。 既に同期されていたり、同期可能なアセットでない場合は、何も起きません。
isDelayedDefinition()
→ bool
このノードがデジタルアセットで、その内容が現在Delay-Sync(遅延同期)状態である場合、Trueを返します。 それ以外の場合、Falseを返し、同期できないノードが含まれていることを意味します。
isLockedHDA()
→ bool
このノードがデジタルアセットのインスタンスの場合、それがロックされているかどうか返します。 それ以外の場合はFalseを返します。
ロック解除されたデジタルアセットとデジタルアセットのインスタンスではないノードとを区別するには、ノードのタイプが定義を持っているかチェックします:
def isUnlockedAsset(node): return not node.isLockedHDA() and node.type().definition() is not None
ロック解除されたデジタルアセットインスタンスすべてを保存してロックする方法のサンプルは、hou.HDADefinition.updateFromNodeを参照してください。
isInsideLockedHDA()
→ bool
このノードはロック解除されたデジタルアセットの内にあるかどうか返します。このノードがロックされたHDA内になければ、そのノードをHDA定義から除外することができます。
isEditableInsideLockedHDA()
→ bool
ロックされたHDAノード内にノードが含まれている場合で、そのロックされたHDA内で編集可能としてマークされていなければFalseを返します。 編集可能としてマークされていればTrueを返します。 特に、この関数はロックされたHDA内にノードが含まれていなければ(または、そもそもHDA内に含まれていなければ)Trueを返します。
isMaterialManager()
→ bool
ノードにマテリアルが含まれていればTrueを返します。
hdaModule()
→ hou.HDAModule
このメソッドは、self.type().hdaModule()のショートカットで、Pythonパラメータとボタンコールバックでのエクスプレッションの長さを短くすることができます。
詳細は、hou.NodeType.hdaModuleを参照してください。
hmメソッドとhou.phm()も参照してください。
hm()
→ hou.HDAModule
このメソッドは、self.hdaModule()のショートカットです。
hou.phm()も参照してください。
hdaViewerStateModule()
→ hou.HDAViewerStateModule
このメソッドは、大元のNodeに関係のあるhou.HDAViewerStateModuleのインスタンスを作成します。
hou.NodeType.hdaViewerStateModuleも参照してください。
hdaViewerHandleModule()
→ hou.HDAViewerHandleModule
このメソッドは、大元のNodeに関連付けられているhou.HDAViewerHandleModuleのインスタンスを作成します。
hou.NodeType.hdaViewerHandleModuleも参照してください。
syncNodeVersionIfNeeded(from_version)
指定したバージョンのHDA定義から現行バージョンのHDA定義へノードを同期化します。 hou.HDADefinition.versionも参照してください。
outputForViewFlag()
→ int
表示目的で使用されるノードの出力を示した整数を返します。
Warning
サーフェスノードアセットが使用しているOutputノードのインデックスが
-1に設定されている場合、このメソッドは、マイナス値を返します。
一部のノードでは、この“トリック”を利用してビューア内にプレビュージオメトリを表示しているので、完全に堅牢なものにするには、
あなたのコードに0未満の値の処理を入れてください(残念ながら、その場合にどの出力が実際に使用されているのかはっきりしないです)。
setOutputForViewFlag(output)
このノードの表示目的で使用する出力を設定します。
creationTime()
→ datetime.datetime
ノードが作成された時の日付と時間を返します。
modificationTime()
→ datetime.datetime
ノードが最後に修正された時の日付と時間を返します。
creatorState()
→ str
これは、作成に使用されたビューポートツールの名前を返します。 この名前はデフォルトでは設定されず、通常では空っぽの文字列です。
setCreatorState(state)
これは、このノードを作成したツールの名前を設定します。ノードタイプ名とは違う名前でこれをコールする場合、setBuiltExplicitly(False)もコールしてください。
isBuiltExplicitly()
→ bool
このノードが明示的に構築されたかどうか返します(デフォルトはTrue)。 ほとんどのノードは明示的に構築されていますが、いくつかのノードはHoudiniで暗黙的に作成されています。 例えば、複数のSOPからジオメトリを選択して、オペレーションを実行した場合、Houdiniは、そのオペレーションを実行する前に暗黙的にmerge SOPを配置します。 SOPでジオメトリを再選択した時、Houdiniは暗黙的に作成されたSOPを自動的に削除します。
setBuiltExplicitly(built_explicitly)
このノードが明示的に構築されたかどうか設定します(デフォルト値はTrue)。 Falseに設定すると、このノードが色々なメニューとNetwork Viewペインのリストモードで表示されなくなります。 このフラグは、通常では、パラメータを変更しそうにない中間ユーティリティノードのために使用されます。
isTimeDependent(for_last_cook=False)
→ bool
ノードが時間依存かどうか返します。時間依存ノードは、フレームが変わる度に再評価されます。
By default, this will cook out-of-date nodes first to get the latest time
dependency status. Pass in for_last_cook=True to get the time dependency
status of the last node cook to avoid this.
lastCookTime()
→ float
ノードの最後のクックの期間(ミリ秒)を返します。
cook(force=False, frame_range=())
ノードを再クックするように頼んだり、強制させます。
frame_range
オブジェクトをクックするフレーム。これは、開始フレーム、終了フレーム、増分の順番で指定した2または3つの整数のタプルです。
2つのタプル(start, end)を指定すると、増分は1になります。
needsToCook(time=hou.time())
→ bool
ノードを再クックする必要があるかどうか尋ねます。
invalidateOutput()
このノードの出力データを無効化して、そのノードとその依存ノードをDirtyにします。 このノードまたはその依存ノードがUIペイン(例えば、ビューポート)内に表示されていれば、これによって、そのペインはリフレッシュして再びそれらのノードをクックします。
Note
現在のところ、このメソッドは、複数の出力を持つノードに対して1番目の出力のみを無効化します。
cookCount()
→ int
現行セッションで、このノードがクックされた回数を返します。
lastCookContextOptions(only_used_options=False)
→ dict
of str
to str
or float
このノードの直近のクック時に設定されたコンテキストオプションの辞書を返します。
only_used_optionsをTrueに設定すると、その返されるコンテキストオプション値は、このノード(またはその入力)のクック中に実際に使用されたコンテキストオプション値に限定されます。
updateParmStates()
例えば、ノード内の各パラメータに対して非表示や無効化といったUI状態を更新します。
UI状態は、評価を必要とする条件文(つまり、Disable When)として表現することができます。 通常のGUIのHoudiniでは、ノードが選択された時にParameter Paneがその評価を実行して、それらのノードパラメータをペイン内でどのように表示させるのか決定します。 しかし、CUIのHoudiniまたはParameter Paneがそのノードをまだ読み込んでいない時は、その評価は発生せず、UI状態はデフォルトのままになり、 hou.Parm.isDisabledやhou.Parm.isHiddenなどのメソッドが正しい値を返さなくなります。 そのような場合には、hou.Node.updateParmStatesをコールすることを推奨します。
infoTree(verbose=False, debug=False, output_index=0, force_cook=False)
→ hou.NodeInfoTree
ノードとその直近のクックデータに関する情報を含んだツリー構造体を返します。 このツリーの内容は、ノードタイプやクックデータの性質によって大きく変わります。 このデータのツリーは、ノード情報ウィンドウの内容を生成するために使用します。
verbose
verboseをTrueに設定すると、さらに追加情報が生成されます。
特に計算が重いデータや膨大な情報量を生成するデータは、このオプションが有効な時にのみそれが生成される傾向があります。
debug
debugをTrueに設定すると、いくつかの場合で、一般的にHoudiniの内部処理をデバッグする時に非常に役立つ追加情報が表示されます。
例えば、ジオメトリアトリビュートは“データのID”を表示します。これはHDKで書かれたSOPのエラーを追跡する時に役立ちます。
output_index
情報を返すノードの出力を指定します。
force_cook
Trueの場合、情報ツリーを構築する前に必ず出力をクックするようにします。
ノードが既にエラーになっている場合、これはノードの再クックを試すことに注意してください。
infoData()
→ dict
of str
to any python object
Returns a dictionary of any node-type-specific information about the node’s current status. This will consist of its last cooked status, so the node may need to be pre-cooked to update the data.
While infoTree provides formatted data suitable for display,
infoData returns raw data and is not meant to be directly
displayed. It also consists only of data specific to the node
that can’t be queried through other HOM methods.
cookPathNodes()
→ tuple
of hou.Node
このノードが属しているネットワークの最後のクックで使用された(サブネット内のノードを含む)ノードのリストを返します。
canGenerateCookCode(check_parent=False, check_auto_shader=True)
→ bool
ノードが、コンパイルされたクックコードを生成することができればTrue、できなければFalseを返します。
check_parentがTrueなら、その先祖の階層内の親もコードを生成することができるかテストされます。
ノードがクックコードを明示的に生成することができなくても、Auto-Shaderでラップすることができれば、暗黙的にそのようなコードが用意できる場合があります。
例えば、Anti-Aliased NoiseなどのビルディングブロックVOPsは完全なクックコードを生成します。
これらのVOPsには、フルクック機能に寄与するコードフラグメントが備わっています。
しかし、場合によっては、そのような機能で自動的にラップされてクックコードとして動作することがあります。
check_auto_shaderがTrueなら、暗黙的なクックコードがノードに備わっているのかテストされます。
cookCodeGeneratorNode(check_parent=False)
→ hou.Node
コンパイルされたクックコードを生成することができるノード自体またはこのノードを含んだネットワークノードを返します。 例えば、VOPノードに対するジェネレータノードは、SHOPノードだったり、それを含んだSOPノードがそれです。
このノードがコードを生成できなかったり、コードを生成するノード内にそのノードが含まれていない場合はNoneを返します。
cookCodeLanguage()
→ str
生成されるクックコードの言語(つまり、VEX, RSL)を返します。
このノードが、コンパイルされたコードを生成できなかった場合は、hou.OperationFailedを引き起こします。
supportsMultiCookCodeContexts()
→ bool
このノードが複数コンテキスト(つまり、サーフェスコンテキスト、ディスプレイスメントコンテキストなど)に対して、コンパイルされたクックコードを生成できればTrue、できなければFalseを返します。
このノードが、コンパイルされたコードを生成できなかった場合は、hou.OperationFailedを引き起こします。
saveCompiledCookCodeToFile(file_name, context_name=None)
コンパイルしたVEXコードを(これをサポートしているノードに対して)ディスクファイルに保存します。 引数の説明は、hou.Node.saveCookCodeToFileを参照してください。
saveCookCodeToFile(file_name, skip_header=False, context_name=None)
VEX/RSLソースコードを(これをサポートしているノードに対して)ディスクファイルに保存します。
file_name
生成されたコードの保存先のファイルパス。
skip_header
Trueの場合、このメソッドは、ファイル名、コードが生成されたノードパス、タイムスタンプを含んだファイルの頭にヘッダーコメントを書き込みません。
context_name
コード用のシェーダコンテキストの名前を含んだ文字列。
このオプションは、Material Shader Builderなどのノードに適用され、複数のコンテキストタイプ用にコードを生成することができます。
例えば、Materialネットワークは、サーフェスとディスプレイスメントの両方のシェーダを含めることができるので、生成するシェーダコードのタイプを指定しなければなりません:
node("/shop/vopmaterial1").saveCookCodeToFile("myfile.vfl", context_name="surface")
単一コンテキストノードに対しては、この引数は無視されます。
VEXマテリアルに対して可能な値は、surface, displacement, light, shadow, fog, image3d, photon, cvexです。
RSLマテリアルに対して可能な値は、surface, displacement, light, volume, imagerです。
addNodeGroup(name=None)
→ hou.NodeGroup
ノードグループをノードに追加し、その新しいグループを返します。
指定した名前のグループが既に存在した場合、この関数は、新しいグループを追加せずに既存のグループを返します。 グループの名前がNoneまたは空っぽの文字列の場合、固有のデフォルト名が自動的に選択されます。
この関数は、ネットワークであるノードに対してのみコールすることができます。ネットワークでないノードに対してコールした場合、hou.OperationFailedを引き起こします。
ノードグループを削除するには、hou.NodeGroup.destroyを使用します。
nodeGroup(name)
→ hou.NodeGroup
指定した名前のノードで格納されているノードグループを返します。そのグループが存在しなかった場合は、Noneを返します。
runInitScripts()
このノードのタイプに関連した初期化スクリプトを実行します。
deleteScript()
→ str
このノードが削除された時に実行されるスクリプトを返します。
setDeleteScript(script_text, language=hou.scriptLanguage.Python)
このノードが削除された時に実行されるスクリプトを設定します。
motionEffectsNetworkPath()
→ str
クリップを保存する場所を意味するノードパスを返します。この場所は存在してもしなくても構いません。 そのようなネットワークを見つけたり作成するには、hou.Node.findOrCreateMotionEffectsNetworkを使用します。
findOrCreateMotionEffectsNetwork(create=True)
→ hou.chopNetNodeTypeCategory()
Motion Effectsの格納に適したCHOPネットワークノードを返します。デフォルトでは、そのノードが存在しなかった場合は、そのノードが作成されます。
hou.Parm.storeAsClipとhou.Node.motionEffectsNetworkPathも参照してください。
stampValue(parm_name, default_value)
コピースタンプの浮動小数点または文字列の値を返します。 このノードは必ず下流のスタンプオペレータ(例えば、Copy SOP, Cache SOP, LSystem SOP, Copy CHOP)でなければなりません。
parm_name
スタンプ変数の名前。
default_value
Houdiniが現在スタンプを実行していない場合やparm_nameが有効な変数名でない場合にこの関数が返す値。
この値は、floatまたはstringです。
Pythonパラメータに以下のエクスプレッションを置くことができます:
node("../copy1").stampValue("sides", 5)
saveItemsToFile(items, file_name, save_hda_fallbacks = False)
子アイテム(ノード、ネットワークボックス、スティッキーノートなど)のシーケンスを指定して、それらのアイテムを含んだファイルを保存します。 hou.Node.loadItemsFromFileを使用することで、このファイルを読み込むことができます。
items
このノードの子であるhou.NetworkMovableItemのシーケンス。
file_name
内容の書き出し先のファイル名。このファイル名に拡張子を使用することができます。
save_hda_fallbacks
単純化されたHDA定義をその子ノードと一緒にファイルに保存するならTrueに設定します。
これによって、その生成されたファイルに使用されているアセットがまだHoudiniセッションに読み込まれていなくても、そのファイルをどのHoudiniセッションでも安全に読み込むことができるようになります。
その生成されたファイルの使い方によっては、この情報が不要であることが多く、その結果、ファイルが無駄に大きくなります。
ファイルが書き出せなかった場合は、hou.OperationFailedを引き起こします。 このノードの内容を読み込む許可がなかった場合は、hou.PermissionErrorを引き起こします。
saveChildrenToFile(nodes, network_boxes, file_name)
ノードのリストとネットワークボックスのリストを単一シーケンスに組み合わせて、hou.Node.saveItemsToFileをコールします。
このメソッドは、上位互換のために用意されています。
新しいコードでは、直接saveItemsToFileをコールしてください。
nodes
このノードの子であるhou.Nodeのシーケンス。
network_boxes
このノードに格納されるhou.NetworkBoxのシーケンス。 ネットワークボックスの内容は自動的に保存されないので、それらのネットワークボックスをノードのリストに置くのはあなた次第であることに注意してください。
loadItemsFromFile(file_name, ignore_load_warnings=False)
(hou.Node.saveItemsToFileで保存された)ファイルの内容をこのノードの内容へ読み込みます。
ファイルが存在しない、または正しいタイプのファイルでなかった場合は、hou.OperationFailedを引き起こします。
このノードがロックされたデジタルアセットのインスタンスだった場合は、hou.PermissionErrorを引き起こします。
警告ありで読み込みに成功して、ignore_load_warningsがFalseだった場合は、hou.LoadWarningを引き起こします。
loadChildrenFromFile(file_name, ignore_load_warnings=False)
hou.Node.loadItemsFromFileをコールします。これは、上位互換のために用意されています。
新しいコードでは、直接loadItemsFromFileをコールしてください。
asCode(brief=False, recurse=False, save_channels_only=False, save_creation_commands=True, save_keys_in_frames=False, save_outgoing_wires=False, save_parm_values_only=False, save_spare_parms=True, save_box_membership=True, function_name=None)
→ str
ノードの再作成に必要なPythonコードをプリントします。
brief
パラメータの値がデフォルトでない場合は、値を設定しません。 recurseまたはsave_box_contentsのどれかがTrueの時、ノードの内容に適用します。
recurse
再帰的に全体のオペレータ階層に適用します。
save_box_contents
ノードの内容をスクリプト化します。
save_channels_only
出力チャンネルのみ。 recurseまたはsave_box_contentsがTrueの時、ノードの内容に適用します。
save_creation_commands
ノードに対して作成スクリプトを生成します。Falseに設定すると、生成されるスクリプトは、ネットワークボックスが既に存在しているものとみなします。 Trueに設定すると、スクリプトは、ネットワークボックスを作成することによって開始します。
save_keys_in_frames
出力チャンネルとサンプルのキー時間(秒ではなくフレーム)。 recurseまたはsave_box_contentsがTrueの時、ノードの内容に適用します。
save_parm_values_only
パラメータを評価し、エクスプレッションの代わりにそれらの値を保存します。 recurseまたはsave_box_contentsがTrueの時、ノードの内容に適用します。
save_spare_parms
Spareパラメータも保存します。save_creation_commandsがTrueの時、Spareパラメータを作成するコマンドも出力されます。 recurseまたはsave_box_contentsがTrueの時、ノードの内容に適用します。
save_box_membership
ルートアイテムをその親のネットワークボックス(存在すれば)に追加するコードを出力します。
function_name
function_nameを指定すると、出力がPython関数でラップされます。
addEventCallback(event_types, callback)
特定のアクション、イベントが この特定のノードインスタンス で起きた時にHoudiniがコールするPythonコールバックを登録します。
コールバックは、現行セッションでのみ維持されます。例えば、これらのコールバックは.hipファイルに保存されません。
すべてのセッションでコールバックを維持させたい場合には、これらのコールバックを(ユーザが.hipファイルを開いた時に実行される)456.pyに追加します。
詳細は、Pythonスクリプトの追加先を参照してください。
event_types
Houdiniにcallback関数をコールさせるイベントタイプを記述したhou.nodeEventType列挙値のシーケンス。
callback
コール可能なPythonオブジェクト(例えば、関数やバインドメソッド)。Houdiniは、event_typesに指定したイベントタイプのどれかが発生した時に、この関数をコールします。
Houdiniは、コールバックを発動したイベントに相当するhou.nodeEventType値を含んだevent_typeキーワード引数を使って、その関数をコールします。
Houdiniは、イベントタイプに応じて追加のキーワード引数を渡します。
例えば、ParmTupleChangedイベントに対するコールバックでは、Houdiniは、変更のあったパラメータのhou.ParmTuple参照を含んだparm_tupleキーワード引数を渡します。
各イベントタイプに渡される追加引数(があれば)に関しては、hou.nodeEventTypeを参照してください。
**kwargsを引数リストに追加することで、すべてのキーワード引数を受け入れることができるので、異なるイベントに対して同じコールバックを使用することができたり、今後の変更に対応することができます:
def event_callback(event_type, **kwargs): ...
Note
2回以上まったく同じコールバック関数を追加しようとしても、Houdiniは、イベントの反応に対して1回だけしかその関数をコールしません。
しかし、そのコールバック関数を別のevent_typesに登録したい場合には、同じ関数を“追加”するのは役に立つことがあります。
event_typesリスト引数が空っぽの場合は、hou.OperationFailedを引き起こします。
以下の例では、特定のノードの名前が変更された時にコールされる関数をセットアップする方法を説明しています:
def name_changed(node, event_type, **kwargs): print("The geometry object is now named", node.name()) hou.node("/obj/geo1").addEventCallback((hou.nodeEventType.NameChanged, ), name_changed)
hou.Node.removeEventCallbackとhou.Node.removeAllEventCallbacksも参照してください。
removeEventCallback(event_types, callback)
以前にこのノードに追加したコールバックとhou.nodeEventType列挙値のシーケンスを指定すると、コールバックに対してイベントタイプのセットからそれらのイベントタイプを削除します。 残りのイベントタイプのセットが空っぽの場合、コールバックは、このノードから完全に削除されます。
コールバックが以前に追加されていなかった場合、hou.OperationFailedを引き起こします。
詳細は、hou.Node.addEventCallbackを参照してください。
addParmCallback(callback, parm_names)
この特定のノードインスタンス 上のparm_namesのパラメータが変更される度にHoudiniがコールするPythonコールバックを登録します。
いくつかのパラメータのみを考慮する場合、または、このノードにパラメータがたくさんある場合、hou.Node.addEventCallbackを使って追加されたコールバック内でパラメータ名をフィルタリングするよりもこのメソッドの方が高速です。
callback
コール可能なPythonオブジェクト(例えば、関数やバインドメソッド)。Houdiniは、event_typesに指定したイベントタイプのどれかが発生した時に、この関数をコールします。
parm_names
パラメータ名の全リスト。
詳細は、hou.Node.addEventCallbackを参照してください。
removeAllEventCallbacks()
このノードからすべてのイベントタイプに対するイベントコールバックすべてを削除します。
詳細は、hou.Node.addEventCallbackを参照してください。
Warning
removeAllEventCallbacksは注意して使用してください。
特にViewerステートがそうで、ステートに入った時に静かに機能が停止してしまいます。
eventCallbacks()
→ tuple
of (tuple
of hou.nodeEventType, callback)
hou.Node.addEventCallbackコールを持つこのノードによって登録されたすべてPythonコールバックのタプルを返します。
setCachedUserData(name, value)
このノードインスタンス上に名前付き値を追加/設定します。
setUserDataとは違い、このメソッドを使用した値セットは、HIPファイルと一緒に保存されません。
name
ユーザ定義データに対する固有名(キー)。 異なる名前を使用することで、複数のユーザ定義データをノードに追加することができます。
value
格納する値。setUserDataとは違い、この値はPythonオブジェクトを指定することができます。
この名前/値のペアは、HIPファイルと一緒に保存されません。 クック間で一時的な値を保存するPythonで実装されたノードは、その後のクックに対してそれらを再計算しないようにするのに役に立ちます。
以下のサンプルは、キャッシュされたユーザ定義データを設定、アクセス、削除する方法について説明しています:
>>> n = hou.node("/obj").createNode("geo") >>> n.setCachedUserData("my data", [1, 2, {"a": "b", "c": "d"}]) >>> n.cachedUserData("my data") [1, 2, {'a': 'b', 'c': 'd'}] >>> n.cachedUserDataDict() {'my data': [1, 2, {'a': 'b', 'c': 'd'}]} >>> n.destroyCachedUserData("my data") >>> n.cachedUserDataDict() {} >>> print n.cachedUserData("my data") None
詳細とサンプルは、ノード毎のユーザ定義データを参照してください。
cachedUserDataDict()
→ dict
of str
to any python object`
このノードに対してユーザ定義の名前/文字列のペアすべてを含んだ辞書を返します。
詳細は、hou.Node.setCachedUserDataを参照してください。
cachedUserData(name)
→ any python obect or None
この名前のユーザ定義のキャッシュデータを返します。この名前のデータが存在しなかった場合は、Noneを返します。
詳細は、hou.Node.setCachedUserDataを参照してください。
このメソッドは、以下のように実装されています:
def cachedUserData(self, name): return self.cachedUserDataDict().get(name)
Noneはキーに対して有効な値なので、キーが有効なのかチェックする最も信頼できる方法は、それがcachedUserDataDictの結果の中にあるかどうかチェックすることです:
>>> n = hou.node("/obj").createNode("geo") >>> n.cachedUserDataDict() {} >>> print n.cachedUserData("foo") None >>> "foo" in n.cachedUserDataDict() False >>> n.setCachedUserData("foo", None) >>> n.cachedUserDataDict() {'foo': None} >>> print n.cachedUserData("foo") None >>> "foo" in n.cachedUserDataDict() True
destroyCachedUserData(name, must_exist=True)
この名前のユーザ定義のキャッシュデータを削除します。
詳細は、hou.Node.setCachedUserDataを参照してください。
この名前のユーザデータが存在しない且つmust_existがTrueの場合は、hou.OperationFailedを引き起こします。
clearCachedUserDataDict()
すべてのユーザ定義キャッシュデータを削除します。
詳細は、hou.Node.setCachedUserDataを参照してください。
dataBlockKeys(blocktype)
→ tuple
of str
blocktypeパラメータで指定したデータタイプのこのノードに格納されているすべてのデータブロックの名前を返します。
データブロックには特定のノードに取り付けるのに役立つ追加データを含めることができるという点ではユーザデータと同様です。 データブロックがユーザデータと異なる点は、データブロックは大規模なデータのブロックを効率的に制御できるように設計されています。 さらにデータブロックにはバイナリデータを格納することができ、各ブロックに関連のあるデータタイプを持たせることができます。
dataBlockType(key)
→ str
keyパラメータで指定したブロックのデータタイプを返します。
指定したキーがこのノードのデータブロックと関係がなかった場合は、hou.ValueErrorを引き起こします。
dataBlock(key)
→ str
for Python 2, bytes
for Python 3
指定したキーに格納されているデータブロックをバイナリ文字列として返します。 このメソッドは、指定したデータブロックがPythonオブジェクトで表現可能なタイプである場合にのみ動作します。 そうでない場合は、Noneが返されます。
返されるバイナリ文字列は、Python3ではbytesオブジェクト、Python2ではstrオブジェクトです。
詳細は、HOMバイナリデータを参照してください。
指定したキーがこのノードのデータブロックと関係がなかった場合は、hou.ValueErrorを引き起こします。
Note
A binary data block can also be accessed within Houdini using the filesystem protocol opdatablock:.
This works similarly to the opdef: and oplib: protocols used by HDAs.
For example, a network editor background image could be set to load from the data block key image.pic by setting its filepath to opdatablock:/obj/geo1/image.pic.
setDataBlock(key, block, block_type=None)
指定したキー名のノードに対して、指定したデータブロックを格納し、指定したデータタイプでそれをマークします。
blockに空っぽの文字列を渡すと、指定したキーを持ったデータブロックが削除されます。
removeDataBlock()メソッドを使用してデータブロックを削除することもできます。
blocktype文字列引数は、C++/HDKプラグインがデータブロックを解釈してそのデータブロックをC++オブジェクトに変換するのに必要です。 Pythonを使用してデータブロックの取得や設定をしている場合、このblocktypeは空っぽのままにしてください。
Note
It is also possible to store the data block from within Houdini by
writing to a file using the opdatablock: file system protocol.
For example, setting the “Output File” parameter of a
ROP Image to
opdatablock:/obj/geo1/image.pic would store
the image file to the geo1 node with the key image.pic.
removeDataBlock(key)
指定したキーを持った既存のデータブロックをノードから削除します。 このキーを持ったデータブロックがなければ、このメソッドは何もしません。
simulation()
→ hou.DopSimulation
このDOPネットワークノードによって定義されたシミュレーションを返します。これは、DOPネットワークでない場合には例外を引き起こします。
findNodesThatProcessedObject(dop_object)
→ tuple
of hou.DopNode
hou.DopObjectを指定すると、そのオブジェクトを処理したDOPノードのタプルが返されます。 これは、DOPネットワークでない場合には例外を引き起こします。
selectNextVisibleWorkItem()
ワークアイテムが選択されている場合、次の可視ワークアイテムを選択します。
selectPreviousVisibleWorkItem()
ワークアイテムが選択されている場合、前の可視ワークアイテムを選択します。
deselectWorkItem()
このノードが現在選択されているワークアイテムを含んだTOPネットワークの中に存在するか、または、そのTOPネットワークを含んでいる場合に、アクティブなワークアイテムの選択を解除します。
setCurrentTOPPage(page_index)
TOPノードがすべてのワークアイテムを表示できない場合に表示させるワークアイテムサブセット(ページ)を設定します。
addMessage(message)
情報メッセージバッジをノードに追加します。
message
ノード上に表示する情報メッセージを含んだ文字列。
Note
これは、クック内で現在クック中のノードにのみコールしてください。
addWarning(message)
警告バッジをノードに追加します。
message
ノード上に表示する警告メッセージを含んだ文字列。
Note
これは、クック内で現在クック中のノードにのみコールしてください。
addError(message, severity=Hom:hou.severityType.Error)
エラーバッジをノードに追加します。
message
ノード上に表示するエラーメッセージを含んだ文字列。
severity
厳格レベルを指定したhou.severityTypeオブジェクト。
Note
これは、クック内で現在クック中のノードにのみコールしてください。
inputsWithIndices(ignore_network_dots=False, ignore_subnet_indirect_inputs=False, use_names=False) -> Sequence[hou.OpNode, int | str, int | str]]
このノードの 接続されている 各入力を表現したタプルのシーケンスを返します。 各タプルには3つのアイテムが入っています:
-
この入力に接続されているノードを表現した
hou.OpNodeインスタンス。 -
この入力に接続されている 上流ノードの出力 のインデックスを表現した整数(または、
use_names引数によっては、内部名を表現した文字列)。 -
この入力のインデックスを表現した整数(または、
use_names引数によっては、内部名を表現した文字列)。
ignore_network_dots
各入力に接続されているネットワークドットを無視し、代わりに、そこから最も近くにある上流ノードを返します。
ignore_subnet_indirect_inputs
入力がサブネット入力に接続されている場合、サブネット入力疑似ノードの代わりに、親ネットワーク内のそのサブネットに接続されているノードを返します。
use_names
インデックスの代わりに、接続の内部名を返します。
outputsWithIndices(ignore_network_dots=False, use_names=False) -> Sequence[hou.OpNode, int | str, int | str]]
このノードの 接続されている 各出力を表現したタプルのシーケンスを返します。 各タプルには3つのアイテムが入っています:
-
この出力に接続されているノードを表現した
hou.OpNodeインスタンス。 -
出力のインデックスを表現した整数(または、
use_names引数によっては、内部名を表現した文字列)。 -
この出力に接続されている 下流ノードの入力 のインデックスを表現した整数(または、
use_names引数によっては、内部名を表現した文字列)。
ignore_network_dots
各出力に接続されているネットワークドットを無視し、代わりに、そこから最も近くにある下流ノードを返します。
use_names
インデックスの代わりに、接続の内部名を返します。
outputLabel(output_index) -> str
Returns label of the specified output on this node. This function may return a generic label if the index refers to a non-existent output.
asData(nodes_only=False, children=False, editables=False, inputs=False, position=False, flags=False, parms: Union[bool, Sequence[hou.ParmTuple], Sequence[str]]=True, default_parmvalues=False, evaluate_parmvalues=False, parms_as_brief=True, parmtemplates="spare_only", metadata=False, verbose=False) -> dict[str, Any]
このノードを表現したJSONライクなデータ構造を返します。
nodes_only
If this is True, the capture process only saves nodes, ignoring sticky notes, network boxes, and dots.
children
これがFalseの場合、キャプチャ処理はトップレベルノードのみを保存し、サブネットやロック解除されたアセット内のノードを無視します。
editables
これがFalseの場合、キャプチャ処理はアセット内のEditable Dive Targetネットワーク内のノードを無視します。
inputs
これがTrueの場合、キャプチャ処理は入力コネクションを保存します。
position
これがTrueの場合,キャプチャ処理はノードの位置を保存します。
flags
If this is True, the capture process saves flag states.
parms
If this is True, based on default_parmvalues argument, the capture process saves any non-default parameter
values or all parameter values. If this is False, no parameters are saved.
Alternatively, to save a custom set of parameter values you can specify a list of hou.ParmTuple or
hou.Parm instances, or strings representing names of parameters to capture.
default_parmvalues
Normally, when parms is True, the capture process only saves parameters with non-default values.
If this is True, the capture process also saves parameters set to the default value. If the parms argument is
a list of parameters to capture, this is ignored.
evaluate_parmvalues
If this is True, the capture process saves the evaluated value of the parameters at the current time
(including expanding variables in strings), instead of saving expressions and keyframe animation.
parms_as_brief
Normally, the parm data that stores values for each parameter is saved in a compact form where possible. If this is False, it
stores the parm data with full structure. This option mainly exists for debugging. See parm data dict for more information.
parmtemplates
If this is "spare_only", the capture process only saves spare parameter templates so it can recreate them. This
is helpful to ensure minimal change to the parameter interface on nodes where additional parameters were added.
If this is "all", the capture process saves template data for all parameters.
metadata
If this is True, the capture process saves additional information about nodes and parameters.
verbose
Normally, the capture process tries to omit and simplify various data structures.
If this is True, the capture process saves everything with full structure. This option mainly exists for debugging.
setFromData(data: dict[str, Any], clear_content=False, force_item_creation=True, parms=True, parmtemplates=True, children=True, editables=True, skip_notes=False) -> None
OpNode.asData()から返されるdataから、このノードのパラメータ、オプション、中身を更新します。
data
The network item data that describes a network item as data.
force_item_creation
If this is False and parent has an item with a matching name in the data, instead of creating the item, the
existing item is used.
parms
If this is False, do not apply any parameter value stored in the data to the node.
parmtemplates
If this is False, do not recreate any spare parameters stored in the data.
children
If this is False, do not recursively recreate any child network stored in the data.
editables
If this is False, do not recreate the contents of any editable dive targets stored in the data.
skip_notes
If this is True, do not recreate any sticky notes stored in the data.
parmsAsData(values=True, parms=True, default_values=False, evaluate_values=False, locked=True, brief=True, multiparm_instances=True, metadata=False, verbose: bool=False) -> dict[str, Any]
このノードのパラメータを表現したJSONライクなデータ構造を返します。
values
If this is True, the capture process saves the values of the parameters.
parms
If this is True, based on default_parmvalues argument, the capture process saves any non-default parameter
values or all parameter values. If this is False, no parameters are saved.
Alternatively, to save a custom set of parameter values you can specify a list of hou.ParmTuple or
hou.Parm instances, or strings representing names of parameters to capture.
default_values
Normally, when parms is True, the capture process only saves parameters with non-default values.
If this is True, the capture process also saves parameters set to the default value. If the parms argument is
a list of parameters to capture, this is ignored.
evaluate_values
If this is True, the capture process saves the evaluated value of the parameters at the current time
(including expanding variables in strings), instead of saving expressions and keyframe animation.
locked
If this is True, the capture process saves the locked state of the parameters.
brief
Normally, the parm data that stores values for each parameter is saved in a compact form where possible. If this is False, it
stores the parm data with full structure. This option mainly exists for debugging. See parm data dict for more information.
multiparm_instances
If this is True, the capture processes multiparm instances of multiparm parent parameters.
metadata
If this is True, the capture process saves additional information about nodes and parameters.
verbose
Normally, the capture process tries to omit and simplify various data structures.
If this is True, the capture process saves everything with full structure. This option mainly exists for debugging.
setParmsFromData(data: dict[str, Any]) -> None
OpNode.parmsAsData()から返されるdataから、このノードのパラメータを更新します。
data
The parm data dictionary that describes a set of parameters as data.
childrenAsData(nodes_only=False, children=True, editables=True, inputs=True, position=True, flags=True, parms=True, default_parmvalues=False, evaluate_parmvalues=False, parms_as_brief=True, parmtemplates="spare_only", metadata=False, verbose=False) -> dict[str, Any]
このノードの中身を表現したJSONライクなデータ構造を返します。
nodes_only
If this is True, the capture process only saves nodes, ignoring sticky notes, network boxes, and dots.
children
これがFalseの場合、キャプチャ処理はトップレベルノードのみを保存し、サブネットやロック解除されたアセット内のノードを無視します。
editables
これがFalseの場合、キャプチャ処理はアセット内のEditable Dive Targetネットワーク内のノードを無視します。
inputs
これがTrueの場合、キャプチャ処理は入力コネクションを保存します。
position
これがTrueの場合,キャプチャ処理はノードの位置を保存します。
flags
If this is True, the capture process saves flag states.
parms
If this is True, based on default_parmvalues argument, the capture process saves any non-default parameter
values or all parameter values. If this is False, no parameters are saved.
Alternatively, to save a custom set of parameter values you can specify a list of hou.ParmTuple or
hou.Parm instances, or strings representing names of parameters to capture.
default_parmvalues
Normally, when parms is True, the capture process only saves parameters with non-default values.
If this is True, the capture process also saves parameters set to the default value. If the parms argument is
a list of parameters to capture, this is ignored.
evaluate_parmvalues
If this is True, the capture process saves the evaluated value of the parameters at the current time
(including expanding variables in strings), instead of saving expressions and keyframe animation.
parms_as_brief
Normally, the parm data that stores values for each parameter is saved in a compact form where possible. If this is False, it
stores the parm data with full structure. This option mainly exists for debugging. See parm data dict for more information.
parmtemplates
If this is "spare_only", the capture process only saves spare parameter templates so it can recreate them. This
is helpful to ensure minimal change to the parameter interface on nodes where additional parameters were added.
If this is "all", the capture process saves template data for all parameters.
metadata
If this is True, the capture process saves additional information about nodes and parameters.
verbose
Normally, the capture process tries to omit and simplify various data structures.
If this is True, the capture process saves everything with full structure. This option mainly exists for debugging.
setChildrenFromData(clear_content=True, force_item_creation=True, offset_position: hou.Vector2=hou.Vector2(0, 0), external_connections=True, parms=True, parmtemplates=True, children=True editables=True, skip_notes=False) -> None
OpNode.childrenAsData()から返されるdataを使用して、このノードの中身を置換または更新します。
clear_content
If this is True, the content of parent is destroyed before item creation.
force_item_creation
If this is False and parent has an item with a matching name in the data, instead of creating the item, the
existing item is used.
offset_position
A hou.Vector2 that offsets the position of all items recreated by the data.
external_connections
The external connections are wires that connect to other hou.NetworkMovableItem but were not captured as part
of the recipe. If this is True, those connections are re-created to existing nodes with the same name.
parms
If this is False, do not apply any parameter value stored in the data to the node.
parmtemplates
If this is False, do not recreate any spare parameters stored in the data.
children
If this is False, do not recursively recreate any child network stored in the data.
editables
If this is False, do not recreate the contents of any editable dive targets stored in the data.
skip_notes
If this is True, do not recreate any sticky notes stored in the data.
editablesAsData(nodes_only=False, children=True, editables=True, inputs=True, position=True, flags=True, parms=True, default_parmvalues=False, evaluate_parmvalues=False, parms_as_brief=True, parmtemplates="spare_only", metadata=False, verbose=False) -> dict[str, Any]
このノード内部のEditable Dive Targetsの中身を表現したJSONライクなデータ構造を返します。
nodes_only
If this is True, the capture process only saves nodes, ignoring sticky notes, network boxes, and dots.
children
これがFalseの場合、キャプチャ処理はトップレベルノードのみを保存し、サブネットやロック解除されたアセット内のノードを無視します。
editables
これがFalseの場合、キャプチャ処理はアセット内のEditable Dive Targetネットワーク内のノードを無視します。
inputs
これがTrueの場合、キャプチャ処理は入力コネクションを保存します。
position
これがTrueの場合,キャプチャ処理はノードの位置を保存します。
flags
If this is True, the capture process saves flag states.
parms
If this is True, based on default_parmvalues argument, the capture process saves any non-default parameter
values or all parameter values. If this is False, no parameters are saved.
Alternatively, to save a custom set of parameter values you can specify a list of hou.ParmTuple or
hou.Parm instances, or strings representing names of parameters to capture.
default_parmvalues
Normally, when parms is True, the capture process only saves parameters with non-default values.
If this is True, the capture process also saves parameters set to the default value. If the parms argument is
a list of parameters to capture, this is ignored.
evaluate_parmvalues
If this is True, the capture process saves the evaluated value of the parameters at the current time
(including expanding variables in strings), instead of saving expressions and keyframe animation.
parms_as_brief
Normally, the parm data that stores values for each parameter is saved in a compact form where possible. If this is False, it
stores the parm data with full structure. This option mainly exists for debugging. See parm data dict for more information.
parmtemplates
If this is "spare_only", the capture process only saves spare parameter templates so it can recreate them. This
is helpful to ensure minimal change to the parameter interface on nodes where additional parameters were added.
If this is "all", the capture process saves template data for all parameters.
metadata
If this is True, the capture process saves additional information about nodes and parameters.
verbose
Normally, the capture process tries to omit and simplify various data structures.
If this is True, the capture process saves everything with full structure. This option mainly exists for debugging.
setEditablesFromData(clear_content=True, force_item_creation=True, offset_position: hou.Vector2=hou.Vector2(0, 0), external_connections=True, parms=True, parmtemplates=True, children=True editables=True, skip_notes=False) -> None
OpNode.childrenAsData()から返されるdataを使用して、このノード内部のEditable Dive Targetsの中身を置換または更新します。
clear_content
If this is True, the content of parent is destroyed before item creation.
force_item_creation
If this is False and parent has an item with a matching name in the data, instead of creating the item, the
existing item is used.
offset_position
A hou.Vector2 that offsets the position of all items recreated by the data.
external_connections
The external connections are wires that connect to other hou.NetworkMovableItem but were not captured as part
of the recipe. If this is True, those connections are re-created to existing nodes with the same name.
parms
If this is False, do not apply any parameter value stored in the data to the node.
parmtemplates
If this is False, do not recreate any spare parameters stored in the data.
children
If this is False, do not recursively recreate any child network stored in the data.
editables
If this is False, do not recreate the contents of any editable dive targets stored in the data.
skip_notes
If this is True, do not recreate any sticky notes stored in the data.
createDecorationItemsFromData(items: Sequence[hou.NetworkMovableItems], frame_nodes: Sequence[hou.NetworkMovableItem]=None, selected_nodes: Sequence[hou.NetworkMovableItem]=None, current_node: hou.NetworkMovableItem=None, flags: bool=True, nodes_only: bool=False, target_children: bool=False, children: bool=True, target_editables: bool=False, editables: bool=True, target_parms: Union[bool, Sequence[hou.ParmTuple], Sequence[str]]=True, parms: bool=True, default_parmvalues: bool=False, evaluate_parmvalues: bool=False, parms_as_brief: bool=True, parmtemplates: str="spare_only", metadata: bool=False, verbose: bool=False) -> dict[str, Any]
dataで表現されたネットワークアイテムを、このノードをターゲットとした“デコレーション”として作成します。
詳細は、デコレーションレシピを参照してください。
items
A sequence of hou.NetworkMovableItem instances to capture that are created when the data is applied.
flags
If this is True, the capture process saves flag states.
nodes_only
If this is True, the capture process only saves nodes, ignoring sticky notes, network boxes, and dots.
target_children
Whether to recursively save the contents of the target/central/anchor node (if it is a subnetwork or unlocked asset).
children
これがFalseの場合、キャプチャ処理はトップレベルノードのみを保存し、サブネットやロック解除されたアセット内のノードを無視します。
target_editables
Whether to save the contents of editable dive targets inside the target/central/anchor node, if any.
editables
これがFalseの場合、キャプチャ処理はアセット内のEditable Dive Targetネットワーク内のノードを無視します。
target_parms
Whether to save parameter values on the target/central/anchor node, if any.
If this is True, based on default_parmvalues argument, the capture process saves any non-default parameter
values or all parameter values. If this is False, no parameters are saved.
Alternatively, to save a custom set of parameter values you can specify a list of hou.ParmTuple or
hou.Parm instances, or strings representing names of parameters to capture.
parms
If this is True, based on default_parmvalues argument, the capture process saves any non-default parameter
values or all parameter values. If this is False, no parameters are saved.
Alternatively, to save a custom set of parameter values you can specify a list of hou.ParmTuple or
hou.Parm instances, or strings representing names of parameters to capture.
default_parmvalues
Normally, when parms is True, the capture process only saves parameters with non-default values.
If this is True, the capture process also saves parameters set to the default value. If the parms argument is
a list of parameters to capture, this is ignored.
evaluate_parmvalues
If this is True, the capture process saves the evaluated value of the parameters at the current time
(including expanding variables in strings), instead of saving expressions and keyframe animation.
parms_as_brief
Normally, the parm data that stores values for each parameter is saved in a compact form where possible. If this is False, it
stores the parm data with full structure. This option mainly exists for debugging. See parm data dict for more information.
parmtemplates
If this is "spare_only", the capture process only saves spare parameter templates so it can recreate them. This
is helpful to ensure minimal change to the parameter interface on nodes where additional parameters were added.
If this is "all", the capture process saves template data for all parameters.
metadata
If this is True, the capture process saves additional information about nodes and parameters.
verbose
Normally, the capture process tries to omit and simplify various data structures.
If this is True, the capture process saves everything with full structure. This option mainly exists for debugging.
parmTemplatesAsData(name: str = "", children=True, parmtemplate_order=False) -> dict[str, Any]
このノードの指定した名前のパラメータのパラメータテンプレートを表現したJSONライクなデータ構造を返します。
name
The name of the parameter on this node to save.
children
Whether to recursively save the contents of nested parm templates.
parmtemplate_order
If this is True, an additional ordering_index key is saved for each parmtemplate data.
parmTemplateChildrenAsData(name: str = "", parmtemplate_order=False) -> dict[str, Any]
Returns a JSON-like data structure representing the child parameter templates of the named parameter on this node.
name
The name of the parameter with child parameters on this node to save.
parmtemplate_order
If this is True, an additional ordering_index key is saved for each parmtemplate data.
appendParmTemplatesFromData(data: dict[str, Any], rename_conflicts=True) -> dict[str, hou.parmTuple]
(OpNode.parmTemplatesAsData()から返される)dataからSpareパラメータを作成し、それらのSpareパラメータをこのノードのパラメータテンプレートグループの既存パラメータの後に追加します。
Returns a dictionary that maps the names in the data to the created hou.ParmTuple objects.
data
The parm templates data dictionary that describes a sequence of parameter templates as data.
rename_conflicts
Whether to rename the newly created parm templates when they conflict with existing templates.
replaceParmTemplatesFromData(data: dict[str, Any]) -> dict[str, hou.parmTuple]
(OpNode.parmTemplatesAsData()から返される)dataからSpareパラメータを作成し、このノード上のそれらのSpareパラメータと同じ名前の既存パラメータを置換します。
Returns a dictionary that maps the names in the data to the created hou.ParmTuple objects.
data
The parm templates data dictionary that describes a sequence of parameter templates as data.
insertParmTemplatesBeforeFromData(data: dict[str, Any], parm_name: str, rename_conflicts=True) -> dict[str, hou.parmTuple]
(OpNode.parmTemplatesAsData()から返される)dataからSpareパラメータを作成し、‹parm_name›という名前のパラメータの前にそれらのSpareパラメータを挿入します。
Returns a dictionary that maps the names in the data to the created hou.ParmTuple objects.
data
The parm templates data dictionary that describes a sequence of parameter templates as data.
parm_name
The name of the parameter before which to insert the parm templates from data.
rename_conflicts
Whether to rename the newly created parm templates when they conflict with existing templates.
insertParmTemplatesAfterFromData(data: dict[str, Any], parm_name: str, rename_conflicts=True) -> dict[str, hou.parmTuple]
(OpNode.parmTemplatesAsData()から返される)dataからSpareパラメータを作成し、‹parm_name›という名前のパラメータの後にそれらのSpareパラメータを挿入します。
Returns a dictionary that maps the names in the data to the created hou.ParmTuple objects.
data
The parm templates data dictionary that describes a sequence of parameter templates as data.
parm_name
The name of the parameter after which to insert the parm templates from data.
rename_conflicts
Whether to rename the newly created parm templates when they conflict with existing templates.
appendParmTemplatesToFolderFromData(data: dict[str, Any], parm_name: str, rename_conflicts=True) -> dict[str, hou.parmTuple]
(OpNode.parmTemplatesAsData()から返される)dataからSpareパラメータを作成し、‹parm_name›という名前のフォルダ内の末尾にそれらのSpareパラメータを挿入します。
Returns a dictionary that maps the names in the data to the created hou.ParmTuple objects.
data
The parm templates data dictionary that describes a sequence of parameter templates as data.
parm_name
The name of the folder parameter in which to insert the parm templates from data.
rename_conflicts
Whether to rename the newly created parm templates when they conflict with existing templates.
prependParmTemplatesToFolderFromData(data: dict[str, Any], parm_name: str, rename_conflicts=True) -> dict[str, hou.parmTuple]
(OpNode.parmTemplatesAsData()から返される)dataからSpareパラメータを作成し、‹parm_name›という名前のフォルダ内の頭にそれらのSpareパラメータを挿入します。
Returns a dictionary that maps the names in the data to the created hou.ParmTuple objects.
data
The parm templates data dictionary that describes a sequence of parameter templates as data.
parm_name
The name of the folder parameter in which to insert the parm templates from data.
rename_conflicts
Whether to rename the newly created parm templates when they conflict with existing templates.
inputsAsData(ignore_network_dots=False, ignore_subnet_indirect_inputs=False, use_names=False) -> Sequence[dict[str, Any]]
このノードの入力接続を表現したJSONライクなデータ構造を返します。
ignore_network_dots
If this is True, hou.NetworkDot items will be ignored.
ignore_subnet_indirect_inputs
If this is True, hou.SubnetIndirectInput items will be ignored.
use_names
Whether to return the index or the name for the connections.
setInputsFromData(data: dict[str, Any]) -> None
OpNode.inputsAsData()から返されるdataから、このノード上に入力ワイヤーを作成します。
data
The input connection data that describes a sequence of connections.
outputsAsData(ignore_network_dots=False, ignore_subnet_indirect_inputs=False, use_names=False) -> Sequence[dict[str, Any]]
このノードの出力接続を表現したJSONライクなデータ構造を返します。
ignore_network_dots
If this is True, hou.NetworkDot items will be ignored.
ignore_subnet_indirect_inputs
If this is True, hou.SubnetIndirectInput items will be ignored.
use_names
Whether to return the index or the name for the connections.
setOutputsFromData(data: dict[str, Any]) -> None
OpNode.inputsAsData()から返されるdataから、このノード上に出力ワイヤーを作成します。
data
The output connection data that describes a sequence of connections.