関数 ¶
defaultFilePath()
→ str
newShelf(file_path=None, name=None, label=None)
→ hou.Shelf
指定したオプションを使って、新しいhou.Shelfオブジェクトを返します。
新しいシェルフタブを作成するには、この関数を使用しなければなりません。
直接Shelf
クラスをインスタンス化することはできません。
newShelfSet(file_path=None, name=None, label=None)
→ hou.ShelfSet
指定したオプションを使って、新しいhou.ShelfSetオブジェクトを返します。
新しいシェルフセットを作成するには、この関数を使用しなければなりません。
直接ShelfSet
クラスをインスタンス化することはできません。
newTool(file_path=None, name=None, label=None, script=None, language=hou.scriptLanguage.Python, icon=None, help=None, help_url=None, network_categories=(), viewer_categories=(), cop_viewer_categories=(), network_op_type=None, viewer_op_type=None, locations=())
→ hou.Tool
指定したオプションを使って、新しいhou.Toolオブジェクトを返します。
新しいツールを作成するには、この関数を使用しなければなりません。
直接Tool
クラスをインスタンス化することはできません。
loadFile(file_path)
シェルフファイルを読み込み、そのファイルに定義されているシェルフとツールをHoudiniに追加します。
reloadShelfFiles()
検索パスで見つかったシェルフファイルを再読み込みして、その変更された情報でそのシェルフUIを更新します。
shelfSets()
→ dict
of str
to hou.ShelfSet
既知のすべてのシェルフセットの内部名をそれに相当するhou.ShelfSetオブジェクトにマッピングした辞書を返します。
shelves()
→ dict
of str
to hou.Shelf
既知のすべてのシェルフタブの内部名をそれに相当するhou.Shelfオブジェクトにマッピングした辞書を返します。
tools()
→ dict
of str
to hou.Tool
既知のすべてのツールの内部名をそれに相当するhou.Toolオブジェクトにマッピングした辞書を返します。
Note
単一ツールをその内部名で取得したいだけであれば、tool関数を使用してください。
shelves.tool(name)
を使用した方が、この辞書を構築して、そこから単一ツールを引き出すよりも 非常に 高速です。
tool(tool_name)
→ hou.Tool or None
hou.Toolの参照をその内部名によって取得します。
>>> hou.shelves.tool("geometry_sphere") <hou.Tool 'geometry_sphere'>
beginChangeBlock()
endChangeBlockがコールされるまで、Houdiniがシェルフ情報ファイルを自動的に書き換えないようにします。
通常では、シェルフを編集するほとんどの関数とメソッドは、Houdiniにシェルフ定義ファイルを新しい情報で書き換えさせます。 一度に多くのシェルフ/ツールを変更した場合、それぞれの変更が別々に書き出されるので、非常に遅くなります。
“一括”変更を高速化するには、まず最初にbeginChangeBlock()
をコールしてから、編集を行ない、そしてendChangeBlock()
をコールします。
これは、一度にすべての変更を書き出すまで、シェルフファイルの書き換えを遅らせます。
# MISC_angry_fruit_saladのすべてのツールのアイコンを変更します。 # 実際にこれを実行してはいけません! # 最初に、変更の書き込みを無効にします。 hou.shelves.beginChangeBlock() for shelf in hou.shelves.shelves().values(): for tool in shelf.tools(): tool.setIcon("MISC/angry_fruit_salad") # Change Blockを終わらせて、すべての変更をディスクに書き出します。 hou.shelves.endChangeBlock()
beginChangeBlock
をコールする度に、それに合わせてendChangeBlock
をコールしなければなりません。
そうしないと、Houdiniが実際にその変更をディスクに書き出さなくなります。