デジタルアセット定義は、ノードタイプを定義し、HDAファイル内に存在します。 そのノードタイプは、サブネット内で繋がっている他のノードと関連して実装されています。
HDAファイルは1つ以上のデジタルアセット定義を含み、HDAファイルをインストールすると、そのファイル内のすべての定義がインストールされます。 デジタルアセット定義をインストールすると、その定義が定義しているノードタイプがHoudiniに追加されます。 これをインストールしなくてもHDADefinitionにアクセスすることはできます。
デジタルアセットのアルゴリズムは、その内部のノードで決まります。 それらのノードを編集するには、デジタルアセットのインスタンスを作成し、そのインスタンスのロックを解除して、その内容を編集して、その定義を保存します。 通常では新しいデジタルアセットインスタンスはロックされています。つまり、読み取り専用であり、そのアセットの定義を変更すると自動的に更新されます。 ロック解除したインスタンスは編集可能であり、その定義を変更しても更新されず、その内容を保存することで、その定義を変更することができます。
ノードのロックを解除するには、 Allow Editing of Contents を選択するか、hou.OpNode.allowEditingOfContentsをコールします。 ロック解除したノードの内容をその定義に保存するには、 Save Operator Type を選択するか、hou.HDADefinition.updateFromNodeをコールします。 ロック解除したインスタンスを最後に保存した定義に戻すには、そのインスタンスをロックして、 Match Current Definition を選択するか hou.OpNode.matchCurrentDefinitionをコールします。
hou.hdaとhou.HDAOptionsも参照してください。
メソッド ¶
タイプ ¶
nodeType()
→ hou.NodeType
このデジタルアセットで定義されたノードタイプを返します。このデジタルアセットがインストールされていなかった場合は、 hou.OperationFailedを引き起こします。
nodeTypeCategory()
→ hou.NodeTypeCategory
このデジタルアセットで定義されたノードタイプに対するノードタイプカテゴリ(例えば、Objects, SOPs, DOPsなど)を返します。 詳細は、hou.NodeTypeCategoryを参照してください。
このデジタルアセットがインストールされていなかった場合は、このメソッドをコールするのが安全です。
このデジタルアセットがインストールされていた場合は、このメソッドはself.nodeType().category()
と等価です。
nodeTypeName()
→ str
このデジタルアセットで定義されているノードタイプの名前を返します。このデジタルアセットがインストールされていなかった場合は、 hou.OperationFailedを引き起こします。
このデジタルアセットがインストールされていた場合は、このメソッドはself.nodeType().name()
のショートカットです。
ライブラリファイル ¶
libraryFilePath()
→ str
デジタルアセット定義を含んだHDAファイルのパスを返します。
このアセットはHDAファイルではなく、HIPファイルに保存することが可能です。
その場合は、このメソッドは"Embedded"
を返します。
isInstalled()
→ bool
このデジタルアセット定義がHoudiniにインストールされているかどうか返します。
hou.hda.definitionsInFileを使ってインストールされていないHDAファイル内のHDADefinitionオブジェクトにアクセスすることが可能です。
hou.hda.installFileも参照してください。
更新と保存 ¶
enableCreateBackups(create_backups)
HDAが修正(例えば、セクションが追加/削除されたり、アイコンが変更されたりなど)される度にバックファイルを生成するかどうかを設定します。
isCreateBackupsEnabled()
→ bool
HDA定義が修正された時にディスク上にバックファイルが生成される場合はtrue
を返します。
updateFromNode(node)
指定したロック解除されたアセットのインスタンスの内容に合致するようにデジタルアセット定義を更新して保存します。 このメソッドのコールは、ノードのメニューの Save Operator Type を選択することと同じです。
def saveUnlockedNodes(): '''ファイル内のノードすべてに対してロック解除されたデジタルアセットインスタンスを検索し、それらのインスタンスを保存してロックします。''' for node in hou.node("/").allSubChildren(): if node.type().definition() is None or node.matchesCurrentDefinition(): continue node.type().definition().updateFromNode(node) node.matchCurrentDefinition()
save(file_name, template_node=None, options=None, black_box=False, create_backup=True)
デジタルアセット定義をHDAファイルに保存します。
file_name
デジタルアセット定義を保存するかどうか。現行のHDAファイルに保存するには、 hou.HDADefinition.libraryFilePathの戻り値を使用してください。
template_node
None
またはデジタルアセット定義の新しい内容を定義したロック解除されたデジタルアセットインスタンスを含んだhou.OpNodeオブジェクトのどちらかを指定します。
None
を指定すると、このメソッドは、デジタルアセット定義の内容を更新しません。
options
None
またはデジタルアセット定義のさらなる挙動を指定したhou.HDAOptionsのどちらかを指定します。
template_nodeがNone
ではない場合、hou.HDAOptionsオブジェクトのcompressContents, lockContents, saveSpareParms, makeInitialParmsDefaultsの値が使用されます。
None
の場合、compressContentsの値のみが使用されます。
black_box
Trueの場合、アセットは、ロック解除も編集もできない“ブラックボックス”アセットとして保存されます。
このパラメータは、template_node
パラメータがNone
でない場合にのみ適用されます。
テンプレートノードの中身はコンパイルされ、ブラックボックスアセットに保存されます。
create_backup
既存のHDAファイルを変更する前にバックアップを作成します。
ロック解除されたノードの定義を現行のHDAファイルに保存するには、hou.HDADefinition.updateFromNodeも参照してください。 hou.HDADefinition.copyToHDAFileも参照してください。
copyToHDAFile(file_name, new_name=None, new_menu_name=None)
このデジタルアセット定義をHDAファイルにコピーします。
file_name
このデジタルアセット定義の保存先となるHDAファイル。そのHDAファイルが存在しなかった場合は作成されます。 そのHDAが既にこのノードタイプの定義を含んでいた場合は、上書きされます。
new_name
ノードタイプの新しい名前。Noneの場合、そのデジタルアセット定義は、既存のノードタイプ名として保存されます。 hou.NodeType.nameも参照してください。
メタデータ ¶
version()
→ str
ユーザ定義のバージョン文字列を返します。デフォルトでは、このバージョンは空っぽの文字列です。 このバージョン情報の使い道はあなた次第です。 このバージョン情報は、パラメータのアップグレードを実行するためにSync Node Versionイベントハンドラースクリプトに渡されます。
setVersion(version)
ユーザ定義のバージョン文字列を設定します。詳細は、hou.HDADefinition.versionを参照してください。
comment()
→ str
ユーザ定義のコメント文字列を返します。コメントの使い道はあなた次第です。 この文字列はHoudiniでは使用されません。
setComment(comment)
ユーザ定義のコメントを設定します。詳細は、hou.HDADefinition.commentを参照してください。
description()
→ str
このデジタルアセット定義のノードタイプの説明を返します。 Houdiniは、Tabメニューのようなユーザインターフェース要素に対してこの説明を使用します。 この説明は、Houdiniではオペレータラベルとも呼ばれています。
hou.NodeType.descriptionも参照してください。
setDescription(description)
このデジタルアセット定義のノードタイプの説明を設定します。 Houdiniは、Tabメニューのようなユーザインターフェース要素に対してこの説明を使用します。 この説明は、Houdiniではオペレータラベルとも呼ばれています。
hou.HDADefinition.descriptionとhou.NodeType.descriptionも参照してください。
icon()
→ str
このデジタルアセット定義のノードタイプのアイコンの名前またはパスを返します。 Houdiniは、アイコンの場所を見つけるのに検索パスを使用しているので、フルパスを渡す必要はありません。
hou.NodeType.iconも参照してください。
setIcon(icon)
このデジタルアセット定義のノードタイプにアイコンを設定します。詳細は、hou.HDADefinition.iconを参照してください。
modificationTime()
→ int
このデジタルアセット定義が最後に修正された時刻を返します。この時刻は、time.time()
のようなPOSIXタイムスタンプで返されます。
>>> import time >>> time.ctime(hou.nodeType(hou.objNodeTypeCategory(), "toon_character"). ... definition().modificationTime()) 'Thu Nov 6 18:22:38 2008'
setModificationTime(time=-1)
このデジタルアセット定義の修正時刻を指定したPOSIXタイムスタンプに設定します。 timeパラメータがマイナスの値の時は、現行時刻が使用されます。
hou.HDADefinition.modificationTimeも参照してください。
isCurrent()
→ bool
このデジタルアセット定義がHoudiniで現在使用されているかどうか返します。
このサンプルでは、同じノードタイプの他のデジタルアセット定義にアクセスする方法を説明しています:
def otherDefinitions(definition): '''HDADefinitionオブジェクトを指定すると、同じノードタイプの他の読み込まれているデジタルアセット定義を返します。''' # 読み込まれているHDAファイルすべてに対して同じノードタイプを備えたデジタルアセット定義を検索します。 result = [] for hda_file in hou.hda.loadedFiles(): # 指定したデジタルアセット定義を含んだHDAファイルをスキップします。 if hda_file == definition.libraryFilePath(): continue for other_definition in hou.hda.definitionsInFile(hda_file): if other_definition.nodeType() == definition.nodeType(): result.append(other_definition) return result
# デジタルアセットインスタンスの他のデジタルアセット定義を備えているHDAファイルまでのパスをプリントします。 >>> for other_definition in otherDefinitions(hou.node("/obj/my_hda1").type().definition()): ... print other_definition.libraryFilePath() /path/to/file1.hda /path/to/file2.hda
isPreferred()
→ bool
このデジタルアセット定義に優先権が設定されているかどうか返します。
HDAファイルを読み込んだ後、Houdiniは、あるルール(例えば、一番最近のHDAファイルを優先、HIPファイルに埋め込まれたデジタルアセット定義を優先するなど)を使用して、 同じノードタイプの複数のデジタルアセット定義に遭遇した時の干渉問題を解決します。 それらのルールが、あなたが欲しいデジタルアセット定義を使用しなかった時は、明示的に優先度をマークすることで、それらのルールを上書きすることができます。 Houdiniは、デジタルアセット定義の優先リストをHIPファイルに保存します。 デジタルアセット定義に優先しないマークをすることで、このリストからそれが除外され、標準のルールが再度適用されます。
setIsPreferred(preferred)
このデジタルアセット定義に優先権を設定するかどうか設定します。 詳細は、hou.HDADefinition.isPreferredを参照してください。
embeddedHelp()
→ str
デジタルアセットに埋め込まれたヘルプテキストを返します。ヘルプテキストがなければ、空っぽの文字列が返されます。
埋め込まれたヘルプは、通常ではOperator Type Propertiesウィンドウの Help タブから派生しますが、ダイアログスクリプトからでも構いません。
userInfo()
→ str
アセット定義に関するユーザ固有の情報を含んだ文字列を返します。
setUserInfo(extra_info)
アセット定義に関するユーザ情報を設定します。この情報は、Houdiniで使用されないので、任意のテキストを含めることができます。
options()
→ hou.HDAOptions
このデジタルアセットに保存されたオプションのhou.HDAOptionsオブジェクトを返します。 詳細は、hou.HDAOptionsを参照してください。
setOptions(options)
このデジタルアセット定義のオプションをhou.HDAOptionsオブジェクトのデータに設定します。 詳細は、hou.HDAOptionsを参照してください。
extraInfo()
→ str
例えばRepresentative Node、Guide Geometryのように、デフォルトパラメータが非表示かどうかなど、他のどこにも記録されていないアセット定義に関する追加情報を記録した文字列を返します。
追加情報の一部をもっと簡単に習得するなら、hou.HDADefinition.representativeNodePathとhou.HDADefinition.hideDefaultParametersも参照してください。
setExtraInfo(extra_info)
例えばrepresentative node、guide geometryなどのように他のどこにも記録されていないアセット定義に関する追加情報を設定します。 この文字列は、特定のフォーマットで暗号化されているので、hou.HDADefinition.extraInfoから返される値を使ってこのメソッドをコールすることだけに推奨します。
representativeNodePath()
→ str
Type Properties ダイアログの Basic タブの Representative Node フィールドの内容を返します。
他のオブジェクトノードを含んだオブジェクトレベルのデジタルアセットに関しては、アセット内から表現したいノードを選択することで、あなたのデジタルアセットを カメラやライトのようにHoudiniに扱わせることができます。 例えば、アセット内のカメラをRepresentative Nodeとして選択することで、デジタルアセットのインスタンスがビューポートのカメラオブジェクトのリストに表示されます。
この値は、hou.HDADefinition.extraInfoで返される文字列にも記録されています。
削除 ¶
destroy()
このデジタルアセット定義をアンインストールして、 HDAファイルから削除します 。 このアセットからのどのインスタンスも不完全なアセット定義を使用していると警告を出すことでしょう。
hou.hda.uninstallFileも参照してください。
埋め込みファイル ¶
sections()
→ dict
of str
to hou.HDASection
セクション名をhou.HDASectionオブジェクトにマップした辞書を返します。 詳細は、セクションのhou.HDASectionを参照してください。
hasSection(name)
→ bool
HDA定義に、指定した名前のセクションが含まれていればTrueを、そうでないならFalseを返します。
セクションに関する詳細は、hou.HDASectionを参照してください。
addSection(name, contents="", compression_type=hou.compressionType.NoCompression)
→ hou.HDASection
指定した内容を使って新しいセクションを作成します。 そのセクションが既にこの名前で存在していた場合、その既存の内容を新しい内容に変更します。 この内容にはバイナリデータを含めることができます。 また、セクション名には'/'を含めることもできます。
オプションで、圧縮タイプhou.compressionTypeを指定して、その内容を圧縮することができます。 その内容を解凍して読み込む時は、それと同じ圧縮タイプを指定しなければなりません。
Python3では、contents
にはプレーンテキストデータ用のstr
オブジェクト、バイナリデータ用のbytes
オブジェクトを指定することができます。
詳細は、セクションのhou.HDASectionを参照してください。セクションを削除するには、hou.HDASection.destroyを使用します。
セクションには、hou.HDADefinition.extraFileOptions内で記録された関連プロパティを持つことができます。
def addSectionFromFile(hda_definition, section_name, file_name): '''ファイルからの内容をセクションに追加します。 そのセクションが既に存在した場合は、その内容が置換されます。''' section_file = open(file_name, "r") hda_definition.addSection(section_name, section_file.read()) section_file.close()
removeSection(name)
既存セクションを削除します。これは、明示的に追加したセクションだけを削除してください。 デジタルアセット定義の内容を保存するためにHoudiniが使用する特殊なセクションは削除しないでください。 そうしないと、Houdiniはエラーや怪しい副作用を生成してしまいます。
詳細は、セクションのhou.HDASectionを参照してください。 hou.HDASection.destroyもセクションを削除します。
デジタルアセット定義内にそのようなセクションが存在しなかった場合は、hou.OperationFailedを引き起こします。
extraFileOptions()
→ dict
of str
to bool
, int
, float
, str
このアセットの定義内のセクションに追加されたオプションを含んだ辞書を返します。 例えば、OnCreatedのようなイベントハンドラーは、アセット内でセクションとして保存し、この辞書内の追加のメタデータは、HoudiniがそれらのスクリプトをPythonやHScriptとして実行するかどうか決定します。
これは、全体のアセットに対する辞書で、この辞書内のキーは通常ではsection_name/option_nameの形式になっています。 例えば、OnCreatedセクションでPythonコードが含まれているとマークされていれば、この辞書は、Trueに設定した“OnCreated/IsPython”を含みます。
この辞書の内容は、ExtraFileOptionsセクションに保存され、バイナリフォーマットで暗号化されます。
hou.HDADefinition.setExtraFileOptionとhou.HDADefinition.removeExtraFileOptionも参照してください。
setExtraFileOption(name, value, type_hint = hou.fieldType::NoSuchField)
Extra File Optionsの辞書にエントリーを設定します。詳細は、hou.HDADefinition.extraFileOptionsを参照してください。
name
設定するオプションの名前。
value
integer, float, string, hou.Vector2, hou.Vector3, hou.Vector4, hou.Quaternion, hou.Matrix3, hou.matrix4または数値のシーケンス。
type_hint
指定した値のタイプが明確にタイプを決定するのに不十分な時に必要となる正確なhou.fieldTypeを決定するために使用されます。
以下のサンプルの関数は、OnCreatedなどのセクションがPythonコードを含んでいることをマークします:
def markSectionAsPython(definition, section_name): definition.setExtraFileOption(section_name + "/IsPython", True)
removeExtraFileOption(name)
Extra File Optionsの辞書からエントリーを削除します。詳細は、hou.HDADefinition.extraFileOptionsを参照してください。
辞書にこの名前のエントリーがなかった場合は、hou.OperationFailedを引き起こします。
uncompressedContents()
→ str
圧縮されていないContents
セクションのデータを含んだ文字列を返します。
Contents
セクションは、HDAのノードインスタンスの作成に使用されている子ノードを表わしたCPIO形式のデータで構成します。
Contents
にはバイナリデータのパケットを含めることができるので、これよりもhou.HDADefinition.binaryUncompressedContentsを使用する方が良いです。
hou.HDADefinition.parsedContentsも参照してください。
binaryUncompressedContents()
→ str
圧縮されていないContents
セクションのデータを含んだbytes
オブジェクトを返します。
Contents
セクションは、HDAのノードインスタンスの作成に使用されている子ノードを表わしたCPIO形式のデータで構成します。
Contents
にはバイナリデータのパケットを含めることができるので、hou.HDADefinition.uncompressedContentsよりもこれを使用する方が良いです。
hou.HDADefinition.parsedContentsも参照してください。
parsedContents()
→ tuple
of (str, str)
Contents
セクションから解析された(名前,値)ペアのリストを返します。
Contents
セクションは、HDAのノードインスタンスの作成に使用されている子ノードで構成します。
hou.HDADefinition.uncompressedContentsも参照してください。
入力と出力 ¶
minNumInputs()
→ int
このデジタルアセットのノードインスタンスが持つことができる接続入力の最小数を返します。 それらの入力が接続されていなかった場合は、このノードはエラーを生成します。
hou.NodeType.minNumInputsも参照してください。
setMinNumInputs(min_num_inputs)
このデジタルアセットのノードインスタンスが必ず持たなければならない接続入力の最小数を設定します。
min_num_inputs
は必ず0から4(その数を含む)にしてください。
ノードがこの最小の入力を持たなかった場合、エラーを生成します。
maxNumInputs()
→ int
このデジタルアセットのノードインスタンスが持つことができる接続入力の最大数を返します。 このノードタイプの入力数に制限がなかった場合は、5以上の数を返します。
hou.NodeType.maxNumInputsも参照してください。
setMaxNumInputs(max_num_inputs)
このデジタルアセットのノードインスタンスが持つことができる入力の最大数を設定します。 この数は必ず入力の最小数以上でなければなりません。 その数が5以上であれば、Houdiniは無制限の入力数を可能にするMerge SOP形式の入力コネクタを使用します。 それ以外の場合は、ノードは0から4個の入力コネクタを持ち、それぞれの入力は接続しても接続しなくてもかまいません。 各入力は、このデジタルアセット内のサブネット間接入力に相当します。
入力コネクタとサブネット間接入力の詳細は、hou.Node.inputConnectorsとhou.SubnetIndirectInputを参照してください。
maxNumOutputs()
→ int
このデジタルアセットのノードインスタンスが所有可能な出力の最大数を返します。
hou.NodeType.maxNumOutputsも参照してください。
setMaxNumOutputs(max_num_outputs)
このデジタルアセットのノードインスタンスが所有可能な出力の最大数を設定します。
パラメータ ¶
hideDefaultParameters()
→ bool
このノードタイプカテゴリに一般的なパラメータが非表示になっているかどうか返します。 例えば、ほぼすべてのオブジェクトには、一般的な移動、回転、スケールなどのパラメータがあり、 オブジェクトレベルのデジタルアセットは、デフォルトではそれらのパラメータを持ちます。 それらのパラメータが非表示でも、まだそこに存在していますが、ユーザには見えません。
この値は、hou.HDADefinition.extraInfoで返される文字列にも記録されています。
parmTemplateGroup()
→ hou.ParmTemplateGroup
このアセット定義のパラメータインターフェースに相当するparmTemplateのグループを返します。
現行パラメータグループを取得し、それを修正し、それを使ってsetParmTemplateGroupをコールすることで、 このアセットのパラメータレイアウトを編集することができます。
詳細は、hou.ParmTemplateGroupを参照してください。
setParmTemplateGroup(parm_template_group, rename_conflicting_parms=False, create_backup=True)
このデジタルアセットのパラメータを変更します。
parm_template_group
新しいパラメータレイアウトを含んだhou.ParmTemplateGroupオブジェクト。
rename_conflicting_parms
True
の場合、同じparmタプル名のグループ内のパラメータの名前が自動的に変更されます。
False
且つ同じ名前のparmが存在した場合、このメソッドは、hou.OperationFailedを引き起こします。
create_backup
HDAファイルの定義を保存する前にバックアップを作成します。
このメソッドは、もっと簡単にパラメータを制御できるように、このクラス(addParmTuple, removeParmTuple, replaceParmTuple, addParmFolder, removeParmFolder)内の他のパラメータに関連したメソッドよりも優先度が高いです。 また、たくさんのパラメータを変更する時は、他のメソッドでは各変更の後にHDAファイルを保存し直すので、このメソッドの方が高速です。
個々のノードのパラメータインターフェースを変更するには、hou.OpNode.setParmTemplateGroupを参照してください。
addParmFolder(folder_name, in_folder=(), parm_name=None, create_missing_folders=False)
フォルダをこのノードタイプのパラメータに追加します。
folder_name
パラメータダイアログに表示されるフォルダの名前。
in_folder
フォルダを移動させるべきかどうかを示したフォルダ名の文字列シーケンス。
このシーケンスが空っぽの場合、このフォルダはトップレベルのフォルダセットに移動します。
これが例えば("Transform",)
の場合、このフォルダはTransformフォルダの中に追加されます。
これが("Transform", "Options")
の場合、このフォルダは、Transformフォルダの中のOptionsフォルダの中に移動します。
parm_name
フォルダセットに相当する大元のパラメータタプルの名前。
例えば、そのフォルダセット内のフォルダの名前が、Transform, Subnet, Controlsとすると、それらが
'stdswitcher0'
という名前の1つのパラメータタプルに相当するとします。
このタプル内のパラメータの値は、開かれているフォルダのインデックスです。
これが、そのフォルダセットに入る1番目のフォルダの場合、parm_name
がパラメータ名として使用されます。
そうでない場合は、無視されて、Houdiniはセット内の1番目のフォルダのパラメータ名を使用します。
これが、そのフォルダセット内の1番目のフォルダで、parm_nameがNoneの場合、デフォルトが'folder0'
になります。
parm_nameが既に使用中の場合、Houdiniは自動的に固有の名前を生成します。
create_missing_folders
まだ存在していないin_folder
に指定したフォルダをHoudiniが作成するかどうか。
このパラメータがTrueの場合は、このメソッドを使用して1コールでネスト化したフォルダを追加することができます。
hou.FolderParmTemplateをaddSpareParmTuple
メソッドに渡すことで、フォルダを追加することができるので、このメソッドは廃止されました。
また、addSpareParmTuple
も廃止され、代わりにsetParmTemplateGroup
を使用してください。
removeParmFolder
とaddParmTuple
のメソッドも参照してください。
このメソッドは廃止され、代わりにsetParmTemplateGroup
を使用してください。
removeParmFolder(folder)
このノードタイプのパラメータから空っぽのフォルダを削除します。
folder
フォルダ名のシーケンス 。例えば、Outputフォルダを削除するには、"Output"
ではなく("Output",)
を渡します。
フォルダが存在しなかったり、フォルダが空っぽでない場合は、hou.OperationFailedを引き起こします。 このメソッドをコールする前にフォルダ内のすべてのパラメータを削除するには、hou.HDADefinition.removeParmTupleを使用します。
addParmFolder
, hou.ParmTemplateGroup.remove, hou.ParmTemplateGroup.findFolderも参照してください。
このメソッドは廃止され、代わりにhou.HDADefinition.setParmTemplateGroupを使用してください。
addParmTuple(parm_template, in_folder=(), create_missing_folders=False)
パラメータタプルをこのノードタイプのパラメータに追加します。Houdiniは、特定のフォルダのパラメータの一番下に新しいパラメータを配置します。
parm_template
パラメータを記述したhou.ParmTemplateサブクラスのインスタンス。
in_folder
パラメータの格納先をHoudiniに伝えるためのフォルダ名文字列シーケンス。
このシーケンスが空っぽの場合、このパラメータはトップレベルのフォルダセットに移動します。
これが例えば("Transform",)
の場合、このパラメータはTransformフォルダの中に追加されます。
これが("Transform", "Options")
の場合、このパラメータは、Transformフォルダの中のOptionsフォルダの中に移動します。
create_missing_folders
まだ存在していないin_folder
に指定したフォルダをHoudiniが作成するかどうか。
このパラメータがTrueの場合は、hou.HDADefinition.addParmFolderをコールすることなくフォルダを作成することができます。
このメソッドは、parm_template
に対してhou.FolderParmTemplateを渡すことで、単一フォルダを追加することができます。
hou.HDADefinition.replaceParmTupleも参照してください。
このメソッドは廃止され、代わりにhou.HDADefinition.setParmTemplateGroupを使用してください。
removeParmTuple(name)
このノードタイプのパラメータからパラメータタプルを削除します。
hou.HDADefinition.addParmTupleとhou.HDADefinition.removeParmFolderも参照してください。
このメソッドは廃止され、代わりにhou.HDADefinition.setParmTemplateGroupを使用してください。
replaceParmTuple(parm_tuple_name, parm_template)
既存パラメータタプルを新しいパラメータタプルに置換します。古いパラメータタプルは削除され、新しいパラメータタプルがそこに追加されます。
parm_tuple_name
置換するパラメータタプルの名前。パラメータタプルがこの名前で存在しなかった場合は、hou.OperationFailedを引き起こします。
parm_template
新しいパラメータタプルを記述したhou.ParmTemplate。
新しいパラメータタプルは、古いパラメータタプルと同じ名前であっても構いません。 同じ名前のパラメータタプルを用意することで、既存のパラメータタプルを修正することができます。 以下のサンプルの関数は、アセットの定義を変更して、そのタイプのすべてのノード内のパラメータタプルを可視または不可視にします。
1個のノードのインスタンスだけのパラメータを表示/非表示にするには、hou.ParmTuple.hideを使用してください。
ノード上のSpareパラメータを変更するには、hou.OpNode.replaceSpareParmTupleまたはhou.OpNode.setParmTemplateGroupを使用してください。
このメソッドは廃止され、代わりにhou.HDADefinition.setParmTemplateGroupを使用してください。
その他 ¶
compileCodeSection(source_section, destination_section)
この関数は廃止されました。コンパイルされたVEXコードは、もはやHDAの内部に保存するべきではありません。
tools()
→ dict
of str
to hou.Tool
定義のシェルフセクション内で定義されているツールの内部名とそれに呼応するhou.Toolオブジェクトをマッピングさせた辞書を返します。 この辞書には、その他の箇所で定義されているツールは含まれていません。
Note
内部名で1つのツールだけを取得したいのであれば、hou.shelves.tool関数を使用してください。
この辞書を構築してそこから1個のツールを引き出すよりもshelves.tool(name)
を使用した方が 非常に 高速です。