関数 ¶
ペインのレイアウト ¶
desktop(name)
  → hou.Desktop
        
指定した名前のデスクトップを返します。 そのようなデスクトップがなければNoneを返します。
desktops()
  → tuple
 of hou.Desktop
        
すべてのデスクトップを返します。
サンプルは、hou.Desktop.setAsCurrentを参照してください。
radialMenu(name)
  → hou.RadialMenu
        
名前付きメニューを表現したhou.RadialMenuオブジェクトを返します。
    そのメニューが存在しなければNoneを返します。
radialMenus()
  → tuple
 of hou.RadialMenu
        
既存メニューを表現したhou.RadialMenuオブジェクトのタプルを返します。
createRadialMenu(name, label)
  → hou.RadialMenu
        
指定した名前とラベルで新しいRadialメニューオブジェクトを作成します。
createRadialItem(submenu=False, callback=false)
  → hou.RadialScriptItem
        
一時的なRadialメニューアイテムを作成します。
callback
このアイテムがPythonコールバックまたはスクリプト(テキスト)のどちらを使用するのか。
injectRadialItem(location, item)
        
一時的なRadialメニューアイテムを現行メニューに挿入します。
location
Radialメニューの位置(上から反時計回りに0 - 7)。
item
createRadialItemで作成されたRadialメニューアイテム。
injectRadialMenu(name)
        
登録済みのメニューを挿入して現行メニューを上書きします。
name
メニューの名前。
updateMainMenuBar()
        
メインのHoudiniメニューバーのラベルエクスプレッションを強制的に再評価します。 このようなトップレベルのメニューアイテムは決して自動的に更新されないので、これらのメニューの作成者はメニューが影響を受けるような状況の変化を検出するハンドラーもインストールして、このメソッドをコールして強制的に更新を行なう必要があります。
panes()
  → tuple
 of hou.Pane
        
すべての可視ペインのタプルを返します。これにはすべてのフローティングウィンドウのペインも含みます。
hou.Desktop.panesも参照してください。
paneTabs()
  → tuple
 of hou.PaneTab
        
すべての可視ペインタブのタプルを返します。これにはすべてのフローティングウィンドウのペインも含みます。
hou.Desktop.paneTabsも参照してください。
currentPaneTabs()
  → tuple
 of hou.PaneTab
        
ペインタブが含まれたペイン(すべてのフローティングウィンドウ内のペインを含む)内で選択された可視ペインタブすべてのタプルを返します。
hou.Desktop.currentPaneTabsも参照してください。
floatingPaneTabs()
  → tuple
 of hou.PaneTab
        
フローティングパネル内のすべてのペインタブを返します。
hou.Desktop.floatingPaneTabsも参照します。
paneTabOfType(type, index=0)
  → hou.PaneTab or None
        
指定したタイプのペインタブを検索して返します。そのようなタブがなければNoneを返します。
type
hou.paneTabType列挙変数。
index
指定したタイプの複数タブがあれば、このパラメータは、どのタブを返すのか決定します。
        1番目に見つかったタブを返すには、index=0を使用し、
        2番目に見つかったタブを返すには、index=1を使用します。
        デフォルトではindexが0です。
hou.Desktop.paneTabOfTypeも参照してください。
findPane(pane_id)
  → hou.Pane or None
        
指定した固有IDのペインを返し、そのようなペインが存在しなければNoneを返します。
hou.Desktop.findPaneも参照してください。
findPaneTab(name)
  → hou.PaneTab or None
        
指定した名前のペインタブを返し、そのようなタブが存在しなければNoneを返します。
名前の頭には、オプションでデスクトップ名とピリオドを付けることができます。
hou.Desktop.findPaneTabも参照してください。
floatingPanels()
  → tuple
 of hou.FloatingPanel
        
すべての可視フローティングペインを返します。
hou.Desktop.floatingPanelsも参照してください。
paneUnderCursor()
        
マウスカーソル下にあるhou.Paneオブジェクトを返します。
    マウスカーソル下に何もペインがなければNoneを返します。
このメソッドは、現行デスクトップに取り付けられていないペインを含む可視ペインすべてを検索します。
paneTabUnderCursor()
        
hou.ui.paneUnderCursorと同様ですが、これはマウスカーソル下にあるhou.PaneTabオブジェクトを返します。
    マウスカーソル下に何もペインタブがなければNoneを返します。
このメソッドは、現行デスクトップに取り付けられていないペインタブを含む可視ペインタブすべてを検索します。
hideAllMinimizedStowbars()
  → bool
        
最小化したStow(収納)バーと分割ペインをすべて非表示にするグローバルフラグの値を返します。
setHideAllMinimizedStowbars(self,on)
  → bool
        
最小化したStow(収納)バーと分割ペインをすべて非表示にするグローバルフラグの値を設定します。 このフラグをTrueに設定すると、ペインタブ、メニュー、シェルフドック、ツールバーのすべての最小化したStow(収納)バーが非表示になります。 さらに、分割ペインの分割バーにも影響を与えます。 その場合では、その分割バーは1ピクセル幅の線で描画されます。
スクリプトによるUI ¶
displayConfirmation(text, severity=hou.severityType.Message, help=None, title=None, details=None, details_label=None, suppress=hou.confirmType.OverwriteFile)
  → bool
        
メッセージとOK、Cancelのボタンが付いたウィンドウをポップアップ表示し、ユーザがボタンを押すまで待ちます。
    ユーザがOKを押せばTrueを返し、そうでないならFalseを返します。
このダイアログは、ユーザにチェックボックスを表示させ、今後このダイアログを表示させたくないかどうかを示させることもできます。
text
表示するメッセージ。
severity
ダイアログ上に表示させるアイコンを決定するhou.severityType値。
        hou.severityType.Fatalを使用すると、ユーザがダイアログを閉じた後にHoudiniを終了することに注意してください。
help
メインメッセージの下に表示させる追加のヘルプ情報。
title
ウィンドウのタイトル。Noneの場合は、タイトルが“Houdini”になります。
details
ユーザが“Show Details”をクリックすると表示される追加メッセージを含んだ文字列。
details_label
詳細テキストを表示させるかどうかを制御する展開/折り畳みボタンのラベルを含んだ文字列。
suppress
これを使用すれば、ユーザが再度この確認ダイアログを表示しないように要求した場合に、このダイアログの表示をスキップさせることができます。
'''ファイルを上書きしたいかどうかをユーザに促し、OKが選択されればファイルを保存します。''' if hou.ui.displayConfirmation("Overwrite the current hip file?", suppress=hou.confirmType.OverwriteFile): hou.hipFile.save()
displayCustomConfirmation(text, buttons=(), severity=hou.severityType.Message, default_choice=0, close_choice=-1, help=None, title=None, details=None, details_label=None, suppress=hou.confirmType.OverwriteFile)
  → int
        
このメソッドはdisplayConfirmationと同じですが、さらにカスタムのボタンラベルのリストを受け取り、ブール値ではなくて選択されているボタンインデックスを返します。
    このボタンインデックスは、ポップアップダイアログで選択されたラベル配列内のエントリに呼応します。
    指定されたボタンラベルの数が2つにも満たない場合は、最低でも2つのボタンラベルが必須である条件を満たせるように必要に応じてデフォルトラベルの“OK”と“Cancel”が追加されます。
text
表示するメッセージ。
severity
ダイアログ上に表示させるアイコンを決定するhou.severityType値。
        hou.severityType.Fatalを使用すると、ユーザがダイアログを閉じた後にHoudiniを終了することに注意してください。
default_choice
ユーザがEnterを押した時に選択されるボタンのインデックス。
close_choice
ユーザがEscapeを押したり、ダイアログを閉じた時に選択されるボタンのインデックス。
help
メインメッセージの下に表示させる追加のヘルプ情報。
title
ウィンドウのタイトル。Noneの場合は、そのタイトルは“Houdini”になります。
details
ユーザが“Show Details”をクリックすると表示される追加メッセージを含んだ文字列。
details_label
詳細テキストを表示させるかどうかを制御する展開/折り畳みボタンのラベルを含んだ文字列。
suppress
これを使用すれば、ユーザが再度この確認ダイアログを表示しないように要求した場合に、このダイアログの表示をスキップさせることができます。
'''TOPネットワークをクックする前に、.hipファイルを保存するのか、ファイルを保存せずにクックするのか、完全にクック操作をキャンセルするのかをユーザに促します。''' def save_and_cook(top_network): buttons = ("Save and Continue", "Continue Without Saving", "Cancel") selected_button = hou.ui.displayCustomConfirmation("Save before cooking?", suppress=hou.confirmType.TopCookSave, buttons=buttons) if selected_button == 0: hou.hipFile.save() if selected_button != 2: top_network.cookWorkItems(block=True)
displayMessage(text, buttons=('OK',), severity=hou.severityType.Message, default_choice=0, close_choice=-1, help=None, title=None, details=None, details_label=None, details_expanded=False, suppress=hou.confirmType.NoConfirmType)
  → int
        
メッセージと1つ以上のボタンが付いた小さなウィンドウをポップアップ表示し、ユーザがボタンを押すまで待ちます。 ユーザが押したボタンのインデックスを返します。
text
表示するメッセージ。
severity
ダイアログ上に表示させるアイコンを決定するhou.severityType値。
        hou.severityType.Fatalを使用すると、ユーザがダイアログを閉じた後にHoudiniを終了することに注意してください。
default_choice
ユーザがEnterを押した時に選択されるボタンのインデックス。
close_choice
ユーザがEscapeを押したり、ダイアログを閉じた時に選択されるボタンのインデックス。
help
メインメッセージの下に表示させる追加のヘルプ情報。
title
ウィンドウのタイトル。Noneの場合は、タイトルが“Houdini”になります。
details
ユーザが“Show Details”をクリックすると表示される追加メッセージを含んだ文字列。
details_label
詳細テキストを表示させるかどうかを制御する展開/折り畳みボタンのラベルを含んだ文字列。
        details_expandedがTrueに設定されていれば、このパラメータは何の効果もありません。
details_expanded
ブール値。Trueなら、詳細メッセージを表示させるテキスト領域が常に表示され、折り畳むことができません。 Falseなら、詳細メッセージ領域は、メッセージボックスがポップアップされた時に初期段階で折り畳まれていて、 ユーザがそれを展開することで詳細メッセージを読むことができます。
suppress
ダイアログにチェックボックスを追加して、ユーザが今後このダイアログを表示しないように要求できるようにします。 デフォルトでは、このダイアログは非表示にすることができません。
def saveIfNeeded(): '''保存するかどうかユーザに尋ね、Yesを選択するとHIPファイルが保存されます。''' if hou.ui.displayMessage("Save the current hip file?", buttons=("Yes", "No")) == 0: hou.hipFile.save()
readInput(message, buttons=('OK',), severity=hou.severityType.Message, default_choice=0, close_choice=-1, help=None, title=None, initial_contents=None)
  → (int
, str
)
        
テキストボックス付きの小さなウィンドウがポップアップ表示され、ユーザがテキストの行を入力するまで待ちます。
    整数を含んだタプルとユーザが入力したテキストを返します。
    整数は押したボタンのインデックスです。
    close_choiceがNoneでなく、ユーザが閉じるボタンをクリックまたはEscapeを押してダイアログを閉じた場合、
    返される整数はclose_choiceに設定されます。
message
テキストフィールドの上に表示させるメッセージ。
severity
ダイアログ上に表示させるアイコンを決定するhou.severityType値。
        hou.severityType.Fatalを使用すると、ユーザがダイアログを閉じた後にHoudiniを終了することに注意してください。
default_choice
ユーザがEnterを押した時に選択されるボタンのインデックス。
close_choice
ユーザがEscapeを押したり、ダイアログの閉じるボタンをクリックした時に選択されるボタンのインデックス。
        2個以上のボタンがあり、close_choiceが-1の場合、ユーザはEscapeやダイアログの閉じるボタンを使ってダイアログを閉じることができません。
        1個のボタンのみがあり、close_choiceが-1の場合、ユーザはEscapeやダイアログの閉じるボタンを使ってダイアログを閉じることができ、ボタンのインデックスが返されます。
help
メインメッセージの下に表示させる追加のヘルプ情報。
title
ウィンドウのタイトル。Noneの場合は、タイトルが“Houdini”になります。
initial_contents
テキストフィールドの初期内容。Noneなら、テキストフィールドは初期段階で空っぽです。
hou.ui.readMultiInputも参照してください。
readMultiInput(message, input_labels, password_input_indices=(), buttons=('OK',), severity=hou.severityType.Message, default_choice=0, close_choice=-1, help=None, title=None, initial_contents=("",))
  → (int
, tuple
 of str
)
        
テキストボックスが付いた小さなウィンドウをポップアップ表示し、ユーザがテキストを複数の入力フィールドに入力するまで待ちます。
    整数を含んだタプルとユーザが入力した文字列のタプルと入力フィールド毎のテキストを返します。
    その整数は、押したボタンのインデックスです。
    close_choiceが-1でなく、ユーザが閉じるボタンをクリックしたりEscapeを押してダイアログを閉じると、返される整数はclose_choiceに設定されます。
message
テキストの上に表示させるメッセージ。
input_labels
各入力フィールドの前に表示されるラベルのシーケンス。 シーケンス長は、ウィンドウ内に表示される入力フィールドの数を決定します。
password_input_indices
入力フィールドがパスワードフィールドのインデックスのシーケンス。 このシーケンス内にないインデックスのフィールドは、パスワードフィールドになりません。
severity
ダイアログ上に表示させるアイコンを決定するhou.severityType値。
        hou.severityType.Fatalを使用すると、ユーザがダイアログを閉じた後にHoudiniを終了することに注意してください。
default_choice
ユーザがEnterを押した時に選択されるボタンのインデックス。
close_choice
ユーザがEscapeを押したり、ダイアログの閉じるボタンをクリックした時に選択されるボタンのインデックス。
        2個以上のボタンがあり、close_choiceが-1の場合、ユーザはEscapeやダイアログの閉じるボタンを使ってダイアログを閉じることができません。
        1個のボタンのみがあり、close_choiceが-1の場合、ユーザはEscapeやダイアログの閉じるボタンを使ってダイアログを閉じることができ、ボタンのインデックスが返されます。
help
メインメッセージの下に表示させる追加のヘルプ情報。
title
ウィンドウのタイトル。Noneの場合は、タイトルが“Houdini”になります。
initial_contents
input_labels引数で指定された各テキストボックスの初期値を指定した文字列シーケンス。
        このシーケンスがinput_labelsよりも短い場合、残りのフィールドは空っぽのままになります。
        デフォルトは、すべてのフィールドを空っぽにします。
initial_contents値は文字列でなければなりません。
    他のタイプ(例えば、整数)を使用すると、この関数はTypeErrorを引き起こします。
    ユーザに整数を促したいのであれば、その初期値を文字列に変換して、その結果を整数に戻してください。
    例:
start_int, end_int = hou.playbar.frameRange() button_idx, values = hou.ui.readMultiInput( "Set the new frame range", ("Start Frame", "End Frame"), initial_contents=(str(start_int), str(end_int)), title="Frame Range", buttons=("OK", "Cancel"), default_choice=0, close_choice=1, ) new_start_int = int(values[0]) new_end_int = int(values[1])
hou.ui.readInputも参照してください。
selectFile(start_directory=None, title=None, collapse_sequences=False, file_type=hou.fileType.Any, file_types: Collection[hou.fileType] = (), pattern=None, default_value=None, multiple_select=False, image_chooser=None, chooser_mode=hou.fileChooserMode.ReadAndWrite, width=0, height=0)
  → str
        
ファイル選択ダイアログ付きのウィンドウをポップアップ表示し、ユーザがファイル名を選択するまで待ちます。 選択したファイルまでのパスを返します。
ユーザが選択可能なファイルタイプを制限するには、file_typeキーワード引数にhou.fileType値を渡します。
    複数の異なるファイルタイプを許可するには、代わりにfile_typesキーワード引数にhou.fileType値セットを渡すことができます。
ユーザにファイルではなくディレクトリを選択させたいのであれば、file_typeキーワード引数にhou.fileType.Directoryを渡します。
    ユーザにファイルまたはディレクトリの どちらも 選択させたいのであれば、file_typesキーワード引数にhou.fileType と hom.fileType.Directoryを渡します:
# ユーザがファイルまたはディレクトリを選択できるようにします。 path = hou.ui.selectFile( title="Choose the file or directory to save the scene to", file_type=[hou.fileType.Usd, hou.fileType.Directory], chooser_mode=hou.fileChooserMode.Write, )
start_directory
        
初期のダイアログで表示するディレクトリ。
        Windowsでは、このパスにはバックスラッシュ(\)の代わりに必ず フォワードスラッシュ (/)を使用してください。
        例えば、start_directory="D:/temp"です。
title
        
ダイアログのウィンドウタイトル。
collapse_sequences
        
一般的な数値パターンが使われたファイルシーケンスを$Fを含んだパターンに折り畳むかどうか。
file_type
        
選択するファイルタイプを意味したhou.fileType列挙値。
        可視ファイルのセットは、このファイルタイプ と パターンで決まります。
        複数のファイルタイプを許容したいのであれば、代わりにfile_types引数を使用してください。
file_types
        
ユーザが選択可能なファイルタイプを制御するhou.fileType値のコレクション。
        これは、特にユーザにファイルまたはディレクトリを選択させたい場合に役立ちます。
        その場合、hou.fileTypeとhou.fileType.Directory値を渡します。
Note
file_type と file_typesの 両方 を渡した場合、
            この関数は、file_typeを使用し、file_typesの値を無視します。
pattern
        
このパターンに一致したファイル(とファイルタイプで制限されたもの)のみがリストされます。デフォルトでは、すべてがパターンに一致します。
Warning
デフォルト値のNoneを使用した場合、パターンは、指定された‹file_type›のファイルダイアログで最後に使用されたパターンと同じになります。
            期待通りの挙動にしたいのであれば、常に‹pattern›には明示的な値を使用してください。
default_value
        
ダイアログ内のファイル名フィールドのデフォルトの内容。
multiple_select
        
ユーザが複数ファイルを選択できるかどうか。
image_chooser
        
ダイアログで画像のサムネイルを表示するかどうか(True/False)。
        Noneの場合、Show Images for Image Files in File Browsers設定( Edit ▸ Preferences ▸ General User Interface )が使用されます。
chooser_mode
        
ユーザにお願いするファイルが読み込みなのか書き込みなのかを記述したhou.fileChooserMode列挙値。
width
        
選択ダイアログの幅。0の場合は、選択ダイアログはデフォルトの幅を使用します。
height
        
選択ダイアログの高さ。0の場合は、選択ダイアログはデフォルトの高さを使用します。
selectFromList(choices, default_choices=(), exclusive=False, message=None, title=None, column_header="Choices", num_visible_rows=10, clear_on_cancel=False, width=0, height=0, sort=False, condense_paths=False)
  → tuple
 of int
        
リストボックス内に選択セットが付いたウィンドウをポップアップ表示させて、ユーザに0個以上の選択をさせます。 選択を受け入れると、その選択された行インデックスのリストが返されます。 選択をキャンセルすると、その初期選択(デフォルトの選択)が返されます。
choices
選択可能な項目を含んだ文字列シーケンス。
default_choices
初期段階で選択させる項目のインデックスを含んだ整数シーケンス。
exclusive
ユーザが必ず選択項目のどれかを選択しなければならないかどうか。
message
リストボックスの上に表示させるメッセージ。
title
ウィンドウのタイトル。Noneの場合は、タイトルが“Houdini”になります。
column_header
選択リストの列ヘッダー。ユーザは、このヘッダーラベルをクリックしてリストをソートすることができます。
        Noneの場合は、そのヘッダーは削除されます。
        整数のタプルは、表示されるソート順ではなく、オリジナルのアイテム順を意味します。
num_visible_rows
同時に表示できるエントリの行数。 この表示できる行よりも選択項目が多い場合は、Houdiniはスクロールバーを使用します。
clear_on_cancel
Trueに設定すると、選択がキャンセルされた時に空っぽのタプルが返されます。 Falseに設定すると、選択がキャンセルされた時に初期選択(default_choices)が返されます。
width
選択ダイアログの幅。0の場合は、選択ダイアログはデフォルトの幅を使用します。
height
選択ダイアログの高さ。0の場合は、選択ダイアログはデフォルトの高さを使用します。
sort
選択ダイアログがリストを即座にソートするかどうか。
        このフラグをTrueに設定すると、選択ダイアログの内容が昇順でソートされ、Falseに設定すると、choices内の文字列の順番がそのまま使用されます。
condense_paths
選択ダイアログが絶対パスを$HIPなどの変数を含んだパスに変換するかどうか。
        このフラグをTrueに設定すると、選択ダイアログはそれを有効/無効にするトグルも表示します。
selectFromTree(choices, picked=(), exclusive=False, message=None, title=None, clear_on_cancel=False, width=0, height=0)
  → tuple
 of str
        
ツリー選択内に選択セットが付いたウィンドウをポップアップ表示させて、ユーザに0個以上の選択をさせます。 これらの選択項目は、パスセパレータとしてフォワードスラッシュを使用することでツリー内に配置されます。 選択を受け入れると、その選択されたパスのリストが返されます。 選択をキャンセルすると、その初期選択(ピック)が返されます。
choices
選択可能な項目を含んだ文字列シーケンス。
picked
初期段階で選択させる項目を含んだ文字列シーケンス。
exclusive
ユーザが必ず選択項目のどれかを選択しなければならないかどうか。
message
リストボックスの上に表示させるメッセージ。
title
ウィンドウのタイトル。Noneの場合は、タイトルが“Make Selection”になります。
clear_on_cancel
Trueに設定すると、選択がキャンセルされた時に空っぽのタプルが返されます。 Falseに設定すると、選択がキャンセルされた時に初期選択(picked)が返されます。
width
選択ダイアログの幅。0の場合は、選択ダイアログはデフォルトの幅を使用します。
height
選択ダイアログの高さ。0の場合は、選択ダイアログはデフォルトの高さを使用します。
selectNode(relative_to_node=None, initial_node=None, node_type_filter=None, title=None, width=0, height=0, multiple_select=False, custom_node_filter_callback=None)
  → str
, list of str
, or None
        
ノードツリービューが付いたウィンドウをポップアップ表示させて、ユーザにノードを選択させます。
ユーザがノードを選択すると、そのノードまでのパスを含んだ文字列を返します。
    ユーザがクリアを押すと、Noneを返します。ユーザがキャンセルを押すと、Noneを返します。
    ユーザがmultiple_selectをTrueに設定すると、選択されたパスを含んだ文字列のリストを返し、クリアまたはキャンセルが押されたらNoneを返します。
relative_to_node
相対パス用のhou.OpNodeまたは、相対パスをサポートしないならNone。
        ノードを渡すと、Use Relative Pathsチェックボックスが有効になります。
このパラメータを指定して、ユーザがUse Relative Pathsチェックボックスを使用すれば、この関数は、そのノードの相対パスを返します。
initial_node
初期段階で選択されるhou.OpNode。
node_type_filter
オプションのhou.nodeTypeFilter列挙値で、これはツリービュー内で表示させるノードのタイプを決めます。
title
選択ダイアログのウィンドウタイトル。Noneに設定すると、そのウィンドウタイトルはデフォルトの“Choose Operator”になります。
width
選択ダイアログの幅。0の場合は、選択ダイアログはデフォルトの幅を使用します。
height
選択ダイアログの高さ。0の場合は、選択ダイアログはデフォルトの高さを使用します。
multiple_select
選択ダイアログで複数のノードを選択可能にするかどうか。
        Trueに設定すると、戻りタイプはパスのリストになります。
        Falseに設定すると、戻りタイプはパスの名前を含んだ文字列になります。
custom_node_filter_callback
選択ダイアログ内のノード毎に呼び出されるPythonコールバック関数。 このコールバック関数は、1個のhou.OpNode引数を受け取り、選択ダイアログ内でそのノードを表示させるべきかどうかのブール値を返します。
以下の関数は、hou.Parmを受け取り、ユーザにノードを選択させ、ユーザがキャンセルをクリックしない限りはパラメータの値を設定します。
def setParmOnNode(parm, node_type_filter=None): path = hou.ui.selectNode(relative_to_node=parm.node(), node_type_filter=node_type_filter) if path is not None: parm.set(path)
以下のようにこの関数をコールすることができます:
>>> setParmOnNode(hou.parm("/obj/geo1/channel1/choppath"), hou.nodeTypeFilter.Chop)
以下は、custom_node_filter_callbackを指定したコードの例です:
# ノードをフィルタリングするためのコールバックを定義します。 def nameStartsWithFoo(node): return node.name().startswith("foo_") # ユーザにノードデータを選択するように促します。 node_path = hou.ui.selectNode(custom_node_filter_callback=hasNumberInName) # 選択したデータを出力します。 print(node_path)
selectMultipleNodes(relative_to_node=None, initial_node=None, node_type_filter=None, title=None, width=0, height=0, custom_node_filter_callback=None)
  → tuple
 of str
 or None
        
このメソッドは廃止されました。代わりにhou.ui.selectNodeを使用してください。 selectNodeと同じ挙動ですが、ユーザが⌃ Ctrlを押したまま複数のノードを選択することで、それらのパスのリストを返すことができます。
selectAttrib(initial_selection=(), multiple_select=False, expand_components=True, width=0, height=0)
  → tuple
 of ([Hom:hou.Attrib], int)
        
ユーザにシーン内のジオメトリアトリビュートを選択するように促す選択ダイアログをポップアップ表示します。 選択したアトリビュートをhou.Attribと整数値のペアで表現されたタプルで返します。 選択操作をキャンセルした場合は、空っぽのタプルが返されます。
initial_selection
        
オプションで、選択ダイアログが開いた時の事前に選択されるアトリビュートのタプルをこの引数に設定します。
        このタプルには、hou.Attribと整数のペアを含める必要があります。
        これは、この関数が返すタプルの構造に合わせます。
        expand_componentsをTrueに設定した場合、そのタプル内の整数値を必ず-1に設定してください。
multiple_select
        
Trueに設定すると、ユーザは選択ダイアログから複数のアトリビュートを選択することができます。
expand_components
        
Trueに設定すると、選択ダイアログは、アトリビュートコンポーネント(例えば、P[0], P[1], P[2])を表示し、
        アトリビュートコンポーネントを選択するようにユーザに促します。
        この場合、返されるタプルの整数値には、選択したコンポーネントインデックスが設定されます。
Falseに設定すると、アトリビュートを選択するようにユーザに促され、返されるタプルの整数値が-1に設定されます。
width
        
選択ダイアログの幅。0の場合は、選択ダイアログはデフォルトの幅を使用します。
height
        
選択ダイアログの高さ。0の場合は、選択ダイアログはデフォルトの高さを使用します。
例:
# /obj/geo1/OUT SOPノード上の'myAttr' Pointアトリビュートの # 2番目のコンポーネントを事前選択します。 attrib = hou.node("/obj/geo1/OUT").geometry().findPointAttrib("myAttr") attrib_component_index = 1 preselected_attribs=((attrib, attrib_component_index), ) # アトリビュートを選択するようにユーザに促します。 selected_attribs = hou.ui.selectAttrib( initial_selection=preselected_attribs) # 選択したアトリビュートを出力します。 print selected_attribs
expand_componentsをFalseに設定した例:
# /obj/geo1/OUT SOPノード上の'myAttr' Pointアトリビュートを # 事前選択します。 attrib = hou.node("/obj/geo1/OUT").geometry().findPointAttrib("myAttr") attrib_component_index = -1 preselected_attribs=((attrib, attrib_component_index), ) # アトリビュートを選択するようにユーザに促します。 selected_attribs = hou.ui.selectAttrib( initial_selection=preselected_attribs, expand_components=False) # 選択したアトリビュートを出力します。 print selected_attribs
selectNodeData(title=None, message=None, width=0, height=0, initial_selection=0, node_type_filter=None, multiple_select=False, include_data_type_headers=True, include_parms=True, include_object_transforms=True, include_geometry_bounding_boxes=True, include_geometry_attributes=True, expand_components=True, custom_data_callback=None, custom_node_filter_callback=None, help_url=None)
  → dict
        
ノードからデータを選択するようにユーザに促す選択ダイアログをポップアップ表示します。
    このデータには、パラメータ、オブジェクトノードのトランスフォームのコンポーネント、ジオメトリノードの境界ボックスプロパティ、ジオメトリアトリビュート、さらにはcustom_data_callback引数で定義されたカスタムデータを選択することができます。
    以下のキーによって整理された選択データの辞書を返します:
- 
        
        Parameters 選択したパラメータのタプルを含みます。そのタプル内の要素はhou.Parmオブジェクトです。 expand_componentsがFalseの場合、それらの要素はhou.ParmTupleオブジェクトです。
- 
        
        Transforms 選択したオブジェクトノードのトランスフォームまたはトランスフォームコンポーネントのタプルを含みます。 そのタプル内の要素は、 (node, transform_type, transform_component)形式の3タプルで、nodeは選択したトランスフォームを引き出すhou.OpNodeオブジェクト、transform_typeはトランスフォームのタイプ(LocalまたはWorld)、transform_componentはトランスフォームから選択された特定のコンポーネント(例えば、Rotate[X])。transform_componentがNoneの時は、コンポーネントの代わりにトランスフォーム全体が選択されます。
- 
        
        Bounding Boxes 選択したジオメトリノードの境界ボックスプロパティのタプルを含みます。 そのタプル内の要素は、 (node, bbox_property)形式の2タプルです。nodeは選択した境界ボックスプロパティを引き出すhou.OpNodeオブジェクト、bbox_propertyは特定の境界ボックスプロパティ(例えば、Size[X])。
- 
        
        Attributes 選択したジオメトリアトリビュートまたはアトリビュートコンポーネントのタプルを含みます。 そのタプル内の要素は、 (attrib, attrib_index)形式の2タプルです。attribは選択されたhou.Attribオブジェクト、attrib_indexは選択されたアトリビュートコンポーネントのインデックスです。expand_componentsがFalseなら、attrib_indexは常に-1です。
- 
        
        Custom custom_data_callback引数で指定された通りの選択されたカスタムデータのタプルを含みます。 そのタプル内の要素は、(node, custom_data)形式の2タプルです。nodeはカスタムデータの取り付け先の選択されたhou.OpNodeオブジェクト、custom_dataは実際のデータです。
Note
特定のキーに対して何もデータが選択されていない場合は、そのキーは辞書内には存在しません。 例えば、パラメータが選択されていない場合、Parametersキーは存在しません。
title
        
選択ダイアログのウィンドウのタイトル。Noneに設定すると、そのウィンドウのタイトルのデフォルトは“Choose Node Data”になります。
message
        
ノードデータツリー下の選択ダイアログに表示させるオプションのメッセージ。
width
        
選択ダイアログの幅。0の場合、選択ダイアログはデフォルトの幅を使用します。
height
        
選択ダイアログの高さ。0の場合、選択ダイアログはデフォルトの高さを使用します。
initial_selection
        
オプションで、この引数には、選択ダイアログが開いた時に事前選択するノードデータの辞書を設定します。
        この辞書には、最低でもParameters、Transforms、Attributes、Customのキーのどれかが含まれていなければなりません。
        それらのキーの値は、返される辞書の要素に一致した要素のタプルでなければなりません。
        例えば、Parametersタプルにはhou.Parmオブジェクトまたはhou.ParmTupleオブジェクトが含まれていなければなりません。
        Transformsタプルには(node, transform_type,transform_component)タプルが含まれていなければなりません。
        Attributesタプルには(attrib, attrib_index)タプルが含まれていなければなりません。
        Customタプルには(node, custom_data)タプルが含まれていなければなりません。
node_type_filter
        
ツリービュー内に表示させるノードのタイプを決定するオプションのhou.nodeTypeFilter列挙値。
multiple_select
        
Trueに設定すると、ユーザは選択ダイアログから複数のノードデータを選択することができます。
include_data_type_headers
        
Trueに設定すると、ヘッダーは、Customデータタイプ以外の各データタイプ(例えば、Parameters,Transforms,Attributes)に対してノードデータツリーを表示します。
include_parms
        
ノードデータツリーにParametersを含めます。
include_object_transforms
        
ノードデータツリーにObject Transformsを含めます。
include_geometry_bounding_boxes
        
ノードデータツリーにジオメトリ境界ボックスを含めます。
include_geometry_attributes
        
ノードデータツリーにジオメトリアトリビュートを含めます。
expand_components
        
Trueに設定すると、選択ダイアログがパラメータのサブコンポーネント(例えば、tの代わりにtx)、
        トランスフォームのサブコンポーネント(例えば、Rotateの代わりにRotate[X])、アトリビュートのサブコンポーネント(例えば、Pの代わりにP[0])を表示します。
        ユーザは、完全なデータの代わりにサブコンポーネントを選択するように促されます。
custom_data_callback
        
選択ダイアログ内の各ノードに対して呼び出されるPythonコールバック関数。 このコールバックは、1個のhou.OpNode引数を受け取り、そのノード内に表示させるカスタムデータの文字列タプルを返します。
ツリー階層にまとめたいカスタムデータのサブパスを指定することができます。
        例えば、コールバックが("Fruits/Apples", "Fruits/Bananas", "Fruits/Oranges")を返した場合、Fruitsの行には、Fruitsの内側にApples,Bananas,Orangesのノードを表示します。
カスタムデータパスの末端以外の部分が選択不可であることに注意してください。
        それらの部分を選択可にしたいのであれば、それらの部分をそのタプルの別のエントリとして返してください。
        例えば、Fruitsも選択可にしたいのであれば、そのコールバックが("Fruits", "Fruits/Apples", "Fruits/Bananas", "Fruits/Oranges")を返すようにします。
custom_node_filter_callback
        
選択ダイアログ内のノード毎に呼び出されるPythonコールバック関数。 このコールバック関数は、1個のhou.OpNode引数を受け取り、選択ダイアログ内でそのノードを表示させるべきかどうかのブール値を返します。
help_url
        
ノードデータ選択ダイアログとヘルプページを関連付けるためのオプションの引数。 この引数を指定すると、'?'ヘルプボタンが選択ダイアログに表示されます。
基本的な例:
# ノードデータの選択を促します。すべてのデータタイプを表示します。 selected_data = hou.ui.selectNodeData() # 選択されたパラメータ(存在すれば)をプリントアウトします。 if "Parameters" in selected_data: for parm in selected_data["Parameters"]: print "Selected Parm: ", parm # 選択されたオブジェクトトランスフォーム(存在すれば)をプリントアウトします。 if "Transforms" in selected_data: for xform_info in selected_data["Transforms"]: print "Selected Node: ", xform_info[0] print "Selected Transform Type: ", xform_info[1] print "Selected Transform Component: ", xform_info[2] # 選択されたジオメトリ境界ボックス(存在すれば)をプリントアウトします。 if "Bounding Boxes" in selected_data: for bbox_info in selected_data["Bounding Boxes"]: print "Selected Node: ", bbox_info[0] print "Selected Bounding Box Property: ", bbox_info[1] # 選択されたジオメトリアトリビュート(存在すれば)をプリントアウトします。 if "Attributes" in selected_data: for attr_info in selected_data["Attributes"]: print "Selected Attribute: ", attr_info[0] print "Selected Attribute Index: ", attr_info[1]
以下は、初期選択を設定する例です:
# /obj/geo1上の'tx', 'ty', 'tz'のパラメータを事前選択します。 preselected_parms = ( hou.parm("/obj/geo1/tx"), hou.parm("/obj/geo1/ty"), hou.parm("/obj/geo1/tz")) # /obj/geo1上のスケールZワールドトランスフォームコンポーネントを事前選択します。 preselected_xforms = ( (hou.node("/obj/geo1"), "World", "Scale[Z]"), ) # /obj/geo1/OUT上の重心Y境界ボックスプロパティを事前選択します。 preselected_bboxes = ( (hou.node("/obj/geo1/OUT"), "Centroid[Y]"), ) # /obj/geo1/OUT SOPノード上の'myAttr'Pointアトリビュートの # 2番目のコンポーネントを事前選択します。 attrib = hou.node("/obj/geo1/OUT").geometry().findPointAttrib("myAttr") attrib_component_index = 1 preselected_attribs=((attrib, attrib_component_index), ) # 初期選択辞書を構築します。 initial_selection = { "Parameters" : preselected_parms, "Transforms" : preselected_xforms, "Bounding Boxes" : preselected_bboxes, "Attributes" : preselected_attribs, } # ノードデータを選択するようにユーザに促します。 selected_data = hou.ui.selectNodeData( initial_selection=initial_selection, multiple_select=True) # 選択されたデータを出力します。 print selected_data
以下は、カスタムデータを指定する例です:
# カスタムデータを返すコールバックを定義します。 def getCustomData(node): # Objectノード上にカスタムデータのみを追加します。 if node.type().category().name() == "Object": return ["Fruits/Apples", "Fruits/Bananas", "Fruits/Oranges"] # それ以外のすべてのノード上にカスタムデータを追加しません。 return [] # ノードデータを選択するようにユーザに促します。 selected_data = hou.ui.selectNodeData(custom_data_callback=getCustomData) # 選択されたデータを出力します。 print selected_data
以下は、custom_node_filter_callbackを指定したコードの例です:
# ノードをフィルタリングするためのコールバックを定義します。 def hasNumberInName(node): # ノード名に数字が入ったノードのみを表示します。 for letter in node.name(): if letter in "1234567890": return True # ノード名に数字が入っていないノードを表示しません。 return False # ユーザにノードデータを選択するように促します。 selected_data = hou.ui.selectNodeData(custom_node_filter_callback=hasNumberInName) # 選択したデータを出力します。 print selected_data
selectParmTag(width=0, height=0)
  → tuple
 of str
        
認識されたパラメータタグのツリービューを持ったウィンドウをポップアップ表示し、ユーザにタグを選択するように促します。 パラメータタグとは、hou.ParmTemplate.setTagsによってパラメータテンプレートに取り付けることができ、hou.ParmTemplate.tagsによって照会できるメタデータのことです。
このウィンドウに表示されたタグがHoudiniで認識されます。 例えば、GL Diffuseタグを選択して、それをパラメータテンプレートに割り当てると、ビューポートはそのパラメータをDiffuseカラーとして認識します。
このメソッドは、2タプルを返します。1番目の要素は、選択されたタグ名、2番目の要素は、選択されたタグ値です。 タグを選択しなかった場合や選択操作を中断した場合、空っぽの文字列の2タプルが返されます。
width
選択ダイアログの幅。0の場合、選択ダイアログはデフォルトの幅を使用します。
height
選択ダイアログの高さ。0の場合、選択ダイアログはデフォルトの高さを使用します。
selectParm(category=None, bound_parms_only=False, relative_to_node=None, message=None, title=None, initial_parms=(), multiple_select=True, width=0, height=0)
  → tuple
 of str
        
パラメータツリービューを持ったウィンドウをポップアップ表示し、ユーザにパラメータを選択するように促すことができます。
    initial_parmsを使用すれば、最初の段階でパラメータを選択しておくことができます。
選択を受け入れると、選択したパラメータのパスのリストが返されます。 選択をキャンセルすると、初期選択(初期パラメータ)が返されます。
category
ノードタイプでフィルタリングする場合はhou.NodeTypeCategory、すべてのパラメータを表示させるならNone。
bound_parms_only
デフォルトハンドルにバインドされたパラメータだけをダイアログに表示させるならTrue、すべてのパラメータを表示させるならFalse。
relative_to_node
選択したパラメータのパスの基準となるhou.OpNode。
message
ダイアログに表示させるメッセージ。
title
ダイアログのタイトル。
multiple_select
ユーザが複数のパラメータを選択できるかどうか。
width
選択ダイアログの幅。0の場合、選択ダイアログはデフォルトの幅を使用します。
height
選択ダイアログの高さ。0の場合、選択ダイアログはデフォルトの高さを使用します。
selectParmTuple(category=None, bound_parms_only=False, relative_to_node=None, message=None, title=None, initial_parm_tuples=(), multiple_select=True, width=0, height=0)
  → tuple
 of str
        
パラメータツリービューを持ったウィンドウをポップアップ表示し、ユーザにパラメータタプルを選択するように促すことができます。
    initial_parm_tuplesを使用すれば、最初の段階でパラメータタプルを選択しておくことができます。
これらの引数のドキュメントは、hou.ui.selectParmを参照してください。
selectColor(initial_color=None)
  → hou.Color or None
        
カラー選択ウィンドウをポップアップ表示し、ユーザがカラーを選択してOKボタンまたはCancelボタンを押すまで待ちます。
    ユーザがOKボタンを押すと、このメソッドは、そのダイアログで選択したカラーを返します。
    ユーザがCancelボタンを押すと、このメソッドはNoneを返します。
initial_colorパラメータには、ダイアログが初めて開かれた時に表示するhou.Colorを指定します。
    これを設定しなかった場合、初期カラーがホワイトになります。
openBookmarkEditor(bookmark)
        
Houdini Bookmark Editダイアログを開きいて、即座にこの関数から戻ります。
bookmarkパラメータには、hou.anim.bookmarks()またはhou.anim.bookmark()から返されるhou.Bookmarkオブジェクトを指定してください。
openColorEditor( color_change_callback, include_alpha=False, initial_color=None, initial_alpha=1.0)
        
Houdiniカラーエディタを開いて、即座にこの関数から戻ります。
Houdiniカラーエディタに変更を加えると、color_change_callback関数が呼び出されて、そのカラーエディタの現行カラーとアルファ値がその関数に渡されます。
include_alphaがTrueの場合、Houdiniカラーエディタにはカラーのアルファ値を編集するコントロールが表示されます。
initial_colorパラメータには、Houdiniカラーエディタを最初に開いた時に表示されるhou.Colorを指定します。
    これを設定しなかった場合、初期カラーがホワイトになります。
initial_alphaパラメータには、Houdiniカラーエディタを最初に開いた時に使用するアルファ値を指定します。
    これを設定しなかった場合、初期アルファが1.0になります。
    include_alphaがTrueに設定されている場合にのみinitial_alphaパラメータが適用されることに注意してください。
color_change_callback引数は、2個のパラメータ(hou.Colorオブジェクトとアルファ値)を受け取る関数を指定してください。
以下がその例です:
def handleColorChange(color, alpha): print "Current color in editor:", color, ", alpha=", alpha hou.ui.openColorEditor(handleColorChange)
openValueLadder(initial_value, value_changed_callback, type=hou.valueLadderType.Generic, data_type=hou.valueLadderDataType.Float)
        
“バリューラダー”コントロールを表示します。これは、Houdiniのフィールド上でを押した時に通常表示されるUIです。
    これによって、Qt Editフィールドなどの独自のカスタムUI上にバリューラダーコントロールを表示させることができます。
典型的なワークフロー:
- 
        フィールド上の によるプレスとリリースのイベントをリッスンします。 
- 
        ユーザがフィールド上で を押した時、この関数をコールしてバリューラダーを表示します。 この関数は即座に戻りますが、バリューラダーは可視のままになります。 
- 
        ユーザが を押したままマウスを動かした時に、そのマウスポインタの座標を使って hou.ui.updateValueLadderをコールしなければなりません。 
- 
        バリューラダーは、ユーザが値を変更すると、指定された value_changed_callback関数をコールします。
- 
        ユーザが を離したら、hou.ui.closeValueLadderをコールします。 
同時に1個のバリューラダーウィンドウしか開くことができません。他のバリューラダーウィンドウが既に開かれている場合、この関数はhou.OperationFailedを引き起こします。
initial_value
        
バリューラダーが開かれた時に設定する初期値。
value_changed_callback
        
単一引数を受け取る関数。 ユーザがバリューラダーを使って数値を編集すると、そのバリューラダーはその新しい値でこの関数をコールします。
type
        
hou.valueLadderTypeの値のどれかを指定します。利用可能なタイプは“Generic”と“Angle”です。 これは、バリューラダーの増分に影響します。
data_type
        
hou.valueLadderDataTypeの値のどれかを指定します。IntegerとFloatのバリューラダーの増分は異なります。
このサンプルでは、バリューラダーウィンドウをQtのQLineEditクラスから派生した入力フィールドクラスに対応させる方法を説明しています:
from PySide2 import QtWidgets from PySide2.QtCore import Qt import hou class LineEditWithValueLadder(QtWidgets.QLineEdit): def __init__(self, parent=None): super(LineEditWithValueLadder, self).__init__(parent) self._pressed = False def mousePressEvent(self, event): # MMBが押された時にバリューラダーウィンドウを表示します。 if event.button() == Qt.MiddleButton: try: hou.ui.openValueLadder( float(self.text()), self._ladderchange, data_type=hou.valueLadderDataType.Float ) except hou.OperationFailed: # バリューラダーがどこかで既に開かれています。 return else: self._pressed = True def mouseMoveEvent(self, event): if self._pressed: hou.ui.updateValueLadder( event.globalX(), event.globalY(), bool(event.modifiers() & Qt.AltModifier), bool(event.modifiers() & Qt.ShiftModifier) ) def mouseReleaseEvent(self, event): if event.button() == Qt.MiddleButton and self._pressed: hou.ui.closeValueLadder() self._pressed = False def _ladderchange(self, new_value): self.setText(str(new_value))
updateValueLadder(cursor_x, cursor_y, alt_key, shift_key)
        
指定したカーソル位置とブール型引数に基づいて、現在開かれているバリューラダーウィンドウの値を更新します。
この関数は、既にhou.ui.openValueLadderがコールされている場合にのみ動作します。 バリューラダーウィンドウが現在開かれていない場合は、hou.OperationFailedを引き起こします。
cursor_x
        
現行マウスカーソル位置の水平座標。
cursor_y
        
現行マウスカーソル位置の垂直座標。
alt_key
        
現在Alt修飾キーが押されているかどうか。 これは、バリューラダー値をスケールします。
shift_key
        
現在⇧ Shift修飾キーが押されているかどうか。 これはバリューラダーのアクティブレベルを変更します。
詳細は、hou.ui.openValueLadderを参照してください。
closeValueLadder()
        
hou.ui.openValueLadderコールによって既に開かれた現在のバリューラダーウィンドウを閉じます。
バリューラダーウィンドウが開かれていない場合は、hou.OperationFailedを引き起こします。
詳細は、hou.ui.openValueLadderを参照してください。
openParameterExpressionEditor(parm)
        
指定したパラメータのエクスプレッションを編集するエクスプレッションエディタを開きます。
parm
        
編集したいエクスプレッションのhou.Parmパラメータ。
openPreferences(page)
        
Preferencesダイアログを開き、指定されたページを表示します。
page
        
開くPreferenceページを指定した文字列。
        ページ内にタブが存在する場合、page:tab表記を使用します。
以下の値に対応しています:
| 
                 | ページ/タブ | 
|---|---|
| 
                 | General User Interface | 
| 
                 | Network Editor | 
| 
                 | 3D Viewports | 
| 
                 | Shelf Tools and Tab Menu | 
| 
                 | Takes | 
| 
                 | Animation | 
| 
                 | Lighting | 
| 
                 | Rendering | 
| 
                 | Handles | 
| 
                 | HUD Info | 
| 
                 | HUD Handles | 
| 
                 | Interactive Tools | 
| 
                 | Objects and Geometry | 
| 
                 | Objects and Geometry > Preferences | 
| 
                 | Objects and Geometry > SOP Cache | 
| 
                 | Objects and Geometry > OBJ Cache | 
| 
                 | Motion and Audio | 
| 
                 | Compositing | 
| 
                 | Compositing > Cache | 
| 
                 | Compositing > Cooking | 
| 
                 | Compositing > Interactive | 
| 
                 | Compositing > Selectors | 
| 
                 | Compositing > Names | 
| 
                 | Compositing > Colors | 
| 
                 | Compositing > Cineon | 
| 
                 | Scripting | 
| 
                 | Desktops and Toolbars | 
| 
                 | Save and Load Options | 
| 
                 | Hip File Options | 
| 
                 | Warning Dialogs | 
| 
                 | Notifications | 
| 
                 | Performance Options | 
| 
                 | External Tools | 
| 
                 | Miscellaneous | 
ヘルプ ¶
displayNodeHelp(node_type)
        
指定したノードタイプのヘルプを表示します。ヘルプブラウザが開かれていない場合は、この関数は新しくヘルプを作成します。
ノードインスタンスのヘルプを表示させたい場合は、このサンプルのように、ノードからhou.NodeTypeへアクセスする方が簡単です:
def displayHelpForNode(node): '''hou.OpNodeを与えて、そのヘルプを表示します。''' hou.ui.displayNodeHelp(node.type())
ウィンドウ ¶
openTypePropertiesDialog(node_or_node_type, promote_spare_parms=False, immediately_save=False)
        
hou.OpNodeまたはhou.OpNodeTypeのインスタンスを与えると、Type Propertiesダイアログが開きます。
promote_spare_parms
        
このパラメータがTrueで、ノードインスタンスを渡すと、自動的にノード上のSpareパラメータがノードタイプ上のパラメータにプロモートします。
immediately_save
        
Trueの時、Type Propertiesダイアログの“Apply”をクリックしたかのように、ノードタイプの現行状態を即座に保存します。
openParameterInterfaceDialog(node, open_tab = None, open_tab_tree_path = '')
        
hou.OpNodeを指定すると、そのParameter Interface Editorダイアログが開きます。 このダイアログを使用することで、Spareパラメータを追加/削除したり、ノード上のパラメータのレイアウトを変更することができます。
open_tab
        
ダイアログを特定のパラメータソースタブで表示するhou.parameterInterfaceTabType列挙値。
open_tab_tree_path
        
open_tabを指定した場合、このパラメータによって、ダイアログが開かれた時のそのダイアログの状態をさらに制御することができます。
        この文字列には、開かれたタブのツリー内のブランチのフルパスを指定することができ、そのツリーが展開されて現行として設定されます。
openRenderDialog(rop_node)
        
hou.RopNodeインスタンスを指定すると、そのノードのレンダーコントロールダイアログが開きます。 このダイアログを使用すれば、特定のレンダーパラメータを上書きして、レンダーを起動させることができます。
openRenameSelectedDialog(node)
        
他のノードを含んだhou.OpNodeを指定すると、そのノードの選択された子すべての名前を変更するためのダイアログが開きます。 このダイアログは、パターンマッチを使用して、選択されたノードすべてを一括で名前変更します。
displayFileDependencyDialog(rop_node=None, uploaded_files=(), forced_unselected_patterns=(), project_dir_variable='HIP', is_standalone=true)
  → (bool
, tuple of Parm and string tuples)
        
現在の.hipファイル内のファイル依存関係を表示するダイアログを開きます。
2-タプルを返します。 そのタプル内の1番目のエレメントは、そのダイアログがOKボタンで閉じられていたらTrue、そうでないならFalseになります。 2番目のエレメントは、選択されたファイルパターンのタプルです。 選択された各ファイルパターンは、ファイルパターンとファイルパターン自体を含んだソースパラメータを保存する<hou.Parm, string>ペアとして表現されます。
Note
ソースパラメータがNoneでないなら、hou.expandString()をコールするのではなく、パラメータの値を評価することでファイルパターン展開が実行されることを推奨します。 ソースパラメータの評価の方が、チャンネル参照と$OSのようなコンテキスト固有の変数を考慮するので、正確です。
parameterPaneTabs(node,include_node_editors=True)
  → tuple
 of hou.ParameterEditor or hou.NetworkEditor
        
指定したノードを表示するパラメータエディタを返します。 他にも、パラメータエディタを埋め込んで表示するノードエディタを含めるかどうか選択することができます。
scrollToParmsInEditors(parms,pos=hou.scrollPosition.Center)
  → bool
        
hou.Parmやhou.ParmTupleのリストまたは単一インスタンスを指定すると、 パラメータエディタスクロール領域内でパラメータが表示されるように、合致したパラメータエディタスクロールバーを調整します。 有効なパラメータエディタが見つかればTrueを返します。
setMultiParmTabInEditors(parm,tab_index)
  → bool
        
マルチパラメータの親を表現したhou.Parmを指定し、パラメータエディタダイアログ内のマルチパラメータタブインデックスを設定します。 このタブインデックスは、ノードパラメータにマップしません。 開かれているパラメータエディタ内でそのパラメータが見つかればTrueを返します。
switchTabsToParmInEditors(parm)
  → bool
        
hou.Parmを指定すると、すべての親タブフォルダは、開かれているパラメータエディタでそのパラメータを表示するように切り替えます。 開かれているパラメータエディタ内でそのパラメータが見つかればTrueを返します。
setParmFilterInEditors(node, parm_names)
  → bool
        
ノードとカンマ区切りのパラメータ名のリストを指定すると、それに該当するパラメータエディタに対して検索フィルタが適用されます。 文字列にはワイルドカードを含めることもできます。 有効なパラメータエディタが見つかればTrueを返します。
showFloatingParameterEditor(node,reuse)
  → hou.ParameterEditor
        
指定したhou.OpNodeのフローティングhou.ParameterEditorを表示します。
openCaptureWeightSpreadsheet(node, pattern=None)
        
captureoverrideタイプのhou.SopNodeのインスタンスを指定すると、そのノードの編集Capture Weightのスプレッドシートが開きます。
    patternに文字列を指定すれば、そのpatternで指定したポイントのみが表示されます。
    指定しなかった場合、そのノードのすべてのポイントがスプレッドシートに表示されます。
openFileEditor(title, file_path, action_callback=None, params=None)
        
テキストファイルを編集/保存するウィンドウを開きます。
エディタボタン:
- 
        
        Apply: ソースが変更された場合にのみファイルを保存します。
- 
        
        Accept: ソースが変更された場合にファイルを保存して、ウィンドウを閉じます。
- 
        
        Cancel: ファイルの保存をユーザに確認せずにウィンドウを閉じます。
Note
エディタを開いてから、新しいファイルを開いた場合、新しいファイルを読み込む前にその編集されたファイルを保存するのか破棄するのかユーザにプロンプトが表示されます。 未保存の変更が適用されると、編集中のファイルがディスク上のファイルと同期していない場合にエディタはユーザにプロンプトを表示します。 その時に、ユーザは新しいファイルを読み込むのか、現在の変更を保存するのか(ディスク上のファイルを上書き)、操作をキャンセルするのか尋ねられます。
オプションで、ユーザ定義パラメータのコールバックと辞書を指定することで、ApplyとAcceptのオペレーションをカスタマイズすることができます。
title
        
ウィンドウタイトルの名前。
file_path
        
編集するファイルをフルパスで設定した文字列。文字列が空っぽの場合は例外が引き起こされます。
ファイル拡張子は、エディタで使用される言語設定を決定します。以下のファイルタイプに対応しています:
| 拡張子 | 言語 | 
|---|---|
| .py | Python | 
| .cmd | HScript | 
| .txt/拡張子なし | テキストドキュメント | 
action_callback
        
ApplyまたはAcceptのどちらかのボタンがクリックされた時にエディタがトリガーするオプションのコールバック。
        このコールバックを使用することで、カスタムオペレーションを実行することができます。 
        エディタは、ファイルが編集されていればそれを保存してからコールバックをコールします。
コールバック名はユーザ側で定義し、入力として辞書引数を受け取ります:
def myApplyAction( **kwargs )
params
        
ユーザ定義エントリをint, double, bool, stringのタイプの値にマッピングした辞書。
        この辞書は、action_callbackで指定されたコールバックの引数に渡します。
例:
def myAction(**kwargs): hou.ui.printResourceMessage(kwargs['msg'] + ' saved.', kwargs['msg_type']) file_path = '/var/tmp/main.py' hou.ui.openFileEditor( 'My Editor Title', file_path, action_callback=myAction, params={ 'msg' : file_path, 'msg_type' : hou.severityType.Message })
showInFileBrowser(file_path)
        
システムのファイルブラウザを起動し、指定したファイルの親ディレクトリに進んで、そのファイルを選択します。
file_path
        
選択するファイル(またはディレクトリ)のフルパスを記述した文字列。
Tip
何もファイルを選択したくないのであれば、単にファイルパスを/で終わらせてください。
例:
# ブラウザで/home/me/myDocsを開き、doc1.txtを選択します。 hou.ui.showInFileBrowser('/home/me/myDocs/doc1.txt') # ブラウザで/home/me/myDocsを開き、何も選択しません。 hou.ui.showInFileBrowser('/home/me/myDocs/') # ブラウザで/home/meを開き、myDocsを選択します。 hou.ui.showInFileBrowser('/home/me/myDocs')
openViewerStateCodeGenDialog(category, action_callback, operator_name=None)
        
Python Viewerステート用のテンプレート実装と登録コードを生成するためのモーダルダイアログウィンドウを開きます。 Viewerステートの入力名は、コードを生成するのに必須です。 ステートラベルとアイコン名などの他のフィールドは任意です。
Sampleダイアログオプションを選択することで、事前に定義されたハンドラーとバインドを使ったViewerステートコードを生成することができます。
    Handlerオプションを選択することで、空っぽのハンドラーを使ったViewerステートコードを生成することもできます。
ダイアログボタン:
- 
        
        Accept: 入力フィールドと選択したオプションを使って、コードテンプレートを生成します。
- 
        
        Cancel: ダイアログを閉じて、コードテンプレートの生成を中断します。
このダイアログは、Viewer State BrowserパネルとDigital Asset Viewer State Editorで使用されます。
category
        
登録するViewerステートのタイプを指定したhou.NodeTypeCategoryオブジェクト。
action_callback
        
Acceptボタンをクリックした時に結果を制御するのに必要となる必須のコールバック。
コールバック名は、ユーザ定義で、辞書引数を入力として受け取ります:
def myAcceptAction( **kwargs )
kwargs辞書には、コード生成の結果が含まれています:
- 
        
        valid: オペレーションが成功すればTrue、失敗すればFalseを返します。
- 
        
        state_type: 新しいステートの名前。
- 
        
        state_type_expr: 新しいステートの名前を表現したエクスプレッション: HDAノードのデフォルトステートを取得するPython関数コールまたは文字列リテラル。
- 
        
        state_label: ステートラベル。
- 
        
        state_description: コードヘッダーにのみ表示されるステート記述。
- 
        
        state_category: ステートカテゴリータイプの名前。
- 
        
        state_code: 生成されたPythonコード。
- 
        
        state_icon_name: 選択されたアイコンの名前。この名前は、単一アイコン名、ファイルパス、Digital Assetに埋め込まれたアイコンを参照したopdefパスのどれかです。
- 
        
        state_icon_filename: アイコンのファイルパス(存在すれば)。
- 
        
        state_icon_section_name:Digital Asset Viewer State Editorで使用されるアイコンのセクション名。
operator_name
        
生成するViewerステートがDigital Assetに埋め込まれている場合は、そのオペレータの名前。
        この引数は任意で、Digital Asset Viewer State Editorではよく使用します。
ステータスライン ¶
setStatusMessage(message, severity=hou.severityType.Message)
        
Houdiniのステータスバーにメッセージを表示します。
severity
        
メッセージの背景カラーを決定するhou.severityType列挙値。
ステータスバーをクリアするには、hou.ui.setStatusMessage("")をコールします。
statusMessage()
  → (string
, hou.severityType)
        
ステータスバーの現在のメッセージと重要度を返します。
    Houdini自体がステータスバーのメッセージを変更することが多いので、これはsetStatusMessageに直近で渡された値と一致しない場合があります。
コールバック ¶
addEventLoopCallback(callback)
        
Houdiniのイベントループがアイドル状態の時にコールされるPythonコールバックを登録します。 このコールバックは、Houdiniがビジー処理イベントでない限り、約50ms毎にコールされます。
callback
パラメータを必要としないコール可能なPythonオブジェクト。
        それは、Python関数、バインドされたメソッドまたは__call__を実装したオブジェクトです。
def checkForAndProcessEvents(): # ここには、何かのイベントをチェックして処理する内容を記述します。 pass hou.ui.addEventLoopCallback(checkForAndProcessEvents)
この関数を使用して、他のユーザインターフェースツールキットをHoudiniのイベントループに統合させることができます。 サンプルの使い方は、PyQtとwxPythonのクックブックのサンプルを参照してください。
postEventCallback(callback)
        
Houdiniのイベントループの後でコールしたいPythonコールバックを登録します。 これは一度だけコールされます。
callback
パラメータを必要としないコール可能なPythonオブジェクト。
        それは、Python関数、バインドされたメソッドまたは__call__を実装したオブジェクトです。
removePostedEventCallback(callback)
        
ポストされたイベントコールバックがまだ存在する場合、キューからそのイベントコールバックを削除します。
コールバックが存在しなかった場合は何も処理されません。
addTriggerUpdateCallback(callback)
        
HoudiniのUpdate Onceボタンをクリックした時、または、hou.ui.triggerUpdateメソッドがコールされた時に実行されるコールバックを追加します。
    このコールバックは、Manual更新モードの時にのみコールされます。
removeTriggerUpdateCallback(callback)
        
hou.ui.addTriggerUpdateCallbackメソッドを使って既に追加されているコールバックを削除します。
addSelectionCallback(callback)
        
Houdiniのグローバルネットワークアイテム選択が変更される度にコールされるPythonコールバックを登録します。
callback
1個のパラメータを必要とするコール可能なPythonオブジェクト。
        このパラメータは、現在選択されているhou.NetworkMovableItemオブジェクトすべてのリストになります。
        それは、Python関数、バインドされたメソッドまたは__call__を実装したオブジェクトです。
def selectionCallback(selection): # ここには、選択の変更に対する反応を記述します。 pass hou.ui.addSelectionCallback(selectionCallback)
waitUntil(condition_callback)
        
Trueを返すまで、用意したコールバックをコールし続けます。その間は、Houdniは反応し続け、そのコールバックと相互に作用し続けることができます。
例えば、ブランクのHoudiniセッションを開始して、以下の内容をシェルフツールに配置したとします。 Houdiniは、そのツールの実行が終了する前に、あなたがオブジェクトノードを作成するまで待ちます。
print "waiting until you create an object..." hou.ui.waitUntil(lambda: len(hou.node("/obj").children()) > 0) print "you created", hou.node("/obj").children()
コールバック関数があまりにも遅くて頻繁に実行できないことが分かっていれば、場合によってのみ動作するように試みることができます:
import time def throttle(callback, delay=2.0): # `callback`のラッパー関数を返します。 # これは、このラッパー関数をコールする頻度に関係なく、`delay`秒おきに`callback`をコールするだけです(デフォルトは2.0)。 # これは、条件関数の実行が重くて、そのコールの頻度を制限したい時に役立ちます。 # Python 2.xは完全な非ローカルキーワードを持たないので、リストで保存します。 last_check = [0.0] def wrapper(): now = time.time() if now < last_check[0] + delay: # delay内の時にFalseを返すので、Houdiniは、この条件関数のコールを続けます。 return False else: last_check[0] = now return callback() return wrapper # 以下のようにhou.ui.waitUntilを使って、この関数を使用します: def my_callback(): return len(hou.node("/obj").children()) > 0 hou.ui.waitUntil(throttle(my_callback, delay=0.5))
eventLoopCallbacks()
  → tuple
 of callback
        
hou.ui.addEventLoopCallbackを使って登録されたすべてのPythonコールバックのタプルを返します。
removeEventLoopCallback(callback)
        
以前にhou.ui.addEventLoopCallbackで登録したPythonコールバックを削除します。 詳細は、hou.ui.addEventLoopCallbackを参照してください。
コールバックが以前に登録されていなかった場合は、hou.OperationFailedを引き起こします。
removeAllSelectionCallbacks()
        
以前にhou.ui.addSelectionCallbackで登録したすべてのPythonコールバックを削除します。 詳細は、hou.ui.addSelectionCallbackを参照してください。
removeSelectionCallback(callback)
        
以前にhou.ui.addSelectionCallbackで登録したPythonコールバックを削除します。 詳細は、hou.ui.addSelectionCallbackを参照してください。
selectionCallbacks()
  → tuple
 of callback
        
hou.ui.addSelectionCallbackで登録したすべてのPythonコールバックのタプルを返します。
ビューポートの更新 ¶
triggerUpdate()
        
強制的にビューポートを更新して、何か必要なクックを処理します。 HoudiniのAuto Updateモードがon Manualの時は、この関数をコールすると良いでしょう。
reloadViewportColorSchemes()
        
すべての($HFS/houdini/configにある)3DSceneColors構成ファイルを再読み込みします。
    新しいカラーを反映させるには、ビューポートを再描画(例えば、タンブル)させなければなりません。
この関数は、新しいカラースキームを実装する時に役に立ちます: これをホットキーにマップしたり、Pythonコンソールでコールすることができるので、変更をチェックすることができます。
updateMode()
  → hou.updateMode列挙値
        
このメソッドは廃止され、代わりにhou.updateModeSetting()を使用してください。
setUpdateMode(mode)
        
このメソッドは廃止され、代わりにhou.setUpdateMode()を使用してください。
isAutoKey() -> 
bool`
        
現在Auto-key(アニメーションパラメータを変更した時に現行フレームにキーが存在しなければキーを生成する機能)が有効になっているかどうかを返します。
設定 ¶
currentColorScheme()
  → str
        
現在適用されているHoudiniカラースキーム名を返します。
reloadColorScheme()
        
構成ファイル(デフォルトでは、$HFS/houdini/configと$HOUDINI_USER_PREF_DIR/houdini/config)からすべてのHoudini UIカラー設定をリロードします。
この関数は、新しいカラースキームを実装している場合に役立ちます。 例えば、ホットキーに割り当てたり、Pythonコンソールでコールすることで、変更内容を確認することができます。
resourceValueFromName(name)
  → str
        
シンボルのリソース名の文字列値を返します。
    このリソース名は、現在選択されているカラースキームの$HH/config/*.hcsファイル内のエントリのどれかに相当します。
指定したシンボル名が存在しなかった場合は、hou.ValueErrorを引き起こします。
colorFromName(name)
  → hou.Color
        
シンボルカラー名のカラー値を返します。
    そのカラー名は、現在選択されているカラースキームの$HH/config/*.hcsファイル内のエントリのどれかに相当します。
指定したシンボル名が存在しなかった場合は、hou.ValueErrorを引き起こします。
例:
>>> hou.ui.colorFromName("DisplayOnColor") <hou.Color r=0.3, g=0.5, b=1>
Tip
hou.qt.getColor()を使用すれば、HOMカラーオブジェクトの代わりにQtカラーオブジェクトを取得することができます。
orientationUpAxis()
  → hou.orientUpAxis列挙値
        
現在の向きのモードのUp軸を意味するhou.orientUpAxisを返します。
handleOrientToNormalAxis()
  → hou.handleOrientToNormalAxis enum value
        
ハンドルの向きを変える時のコンポーネント法線に整列させるハンドル軸を示したhou.handleOrientToNormalAxisを返します。
inchesToPixels(inches)
  → float
        
スクリーン上の距離を意味するinches引数を指定すると、そのピクセル数が返されます。
    これは、オペレーティングシステムが返すインチあたりのドット数と Edit ▸ Preferences ▸ General User Interface からアクセス可能なGlobal UI Size設定、
    もし設定されていればHOUDINI_UISCALE環境変数から計算されます。
    そのため、この値が正確でないことがありますが、Houdiniが距離をインチからピクセルに変換する方法と一貫性があります。
pixelsToInches(pixels)
  → float
        
スクリーン上のピクセル数を意味するpixels引数を指定すると、その距離のインチが返されます。
    これは、オペレーティングシステムが返すインチあたりのドット数と Edit ▸ Preferences ▸ General User Interface からアクセス可能なGlobal UI Size設定、
    もし設定されていればHOUDINI_UISCALE環境変数から計算されます。
    そのため、この値が正確でないことがありますが、Houdiniが距離をピクセルからインチに変換する方法と一貫性があります。
globalScaleFactor()
  → float
        
HoudiniのGlobal UI Sizeプリファレンスで設定されているスケール係数を返します。 例えば、HoudiniがNormal UIサイズに設定されていれば、この関数は1.0を返します。
hou.ui.scaledSizeをコールすることができないPySideまたはPyQtビルドのUIでは、このスケール係数を使ってそれらのコンポーネントをスケールすることができます。 例えば、このスケール係数を使用することで、ウェブコンテンツがGlobal UI Sizeと同じになるようにQWebEngineViewオブジェクトのズーム係数を設定することができます:
web_view = QWebEngineWidgets.QWebEngineView() web_view.setZoomFactor(hou.ui.globalScaleFactor())
scaledSize(size)
  → int
        
グローバルUIスケール係数で指定されたサイズをスケールさせて、そのスケールさせたサイズを返します。 このスケール係数は、HoudiniのGlobal UI Sizeプリファレンスで決まります。 例えば、HoudiniがNormal UIサイズに設定されていれば、このスケール係数は1.0です。
この関数は、PySideまたはPyQtのコード内でハードコーディングされたサイズをスケールさせるのに役立ちます。 以下は、Normal UIサイズのスケールサイズを使ってウィジェットを640×480の固定サイズに設定した例です:
widget = QtWidgets.QWidget() widget.resize(hou.ui.scaledSize(640), hou.ui.scaledSize(480))
以下は、hou.qt.createIcon関数を使って、スケールを変更したアイコンを作成した例です:
icon = hou.qt.createIcon(hou.ui.scaledSize(32), hou.ui.scaledSize(32))
loadPaletteFile(file)
  → tuple
 of hou.Color
        
パレットファイルを読み込んで、そのパレットにリストされているカラーを返します。
    fileパラメータにはフルパスまたはファイル名のみを指定することができます。
    後者の場合、Houdiniパスはconfigサブディレクトリ下の名前付きファイルの1番目のインスタンスに対して検索されます。
savePaletteFile(file, colors)
        
colorsパラメータ(hou.Colorオブジェクトのタプル)の内容を含んだパレットファイルを保存します。
    fileパラメータは、そのパレットを保存するファイルのフルパスでなければなりません。
ファイルを書き込むことができなかった場合は、hou.OperationFailedを引き起こします。
クリップボード ¶
copyTextToClipboard(text)
        
指定したテキストをシステムのクリップボードに設定します。
getTextFromClipboard()
  → str
        
システムのクリップボードに現在コピーされているテキストを返します。 クリップボードが空っぽ、または非テキストデータが含まれていれば、空っぽの文字列が返されます。
Pythonシェル ¶
writePythonShellHistoryFile(filename=None)
        
現行のPythonシェルからコマンド履歴をディスクに保存します。
    filenameがNoneなら、その履歴は$HOME/houdiniX.Y/pyshell.historyに書き出されます。
    この関数をPythonシェル外で呼び出すと、その履歴は最後のアクティブシェル(つまり、開いた、または入力を受け入れた最後のシェル)から取得されます。
Pythonシェルが開かれていなかった場合は、hou.OperationFailedを引き起こします。
    filenameを作成できなかった場合は、hou.OperationFailedを引き起こします。
readPythonShellHistoryFile(filename=None)
        
指定したファイルの内容をPythonシェルのコマンド履歴に読み込みます。
    filenameがNoneなら、その履歴は$HOME/houdiniX.Y/pyshell.historyから読み込まれます。
    この関数をPythonシェル外で呼び出すと、その履歴は最後のアクティブシェル(つまり、開いた、または入力を受け入れた最後のシェル)から取得されます。
Pythonシェルが開かれていなかった場合は、hou.OperationFailedを引き起こします。
    filenameが存在しない、または読み込むことができなかった場合は、hou.OperationFailedを引き起こします。
shellIO()
  → hou.ShellIO
        
HoudiniのグラフィカルPythonシェルの実行に使用されているhou.ShellIOオブジェクトを返します。 この関数は内部的にHoudiniで使用され、直接ShellIOにアクセスする必要がありません。
ドラッグアンドドロップ ¶
hasDragSourceData(label)
  → bool
        
現在のドラッグソースを照会して、指定したデータタイプが利用可能かどうか決定します。
ドラッグ操作が現在アクティブでないなら、hou.NotAvailableを引き起こします。
label
        
ソースイベントのコンテンツタイプ(MIMEタイプ)を指定します。
Note
ファイルドロップイベントにはtext/plainを、Houdiniが対応しているタイプにはhou.qt.mimeTypeを使用します。
getDragSourceData(label, index)
  → data
        
現在のドラッグソースを照会して、ドラッグしたデータを取得します。 指定したデータが利用不可(またはHOMでサポートされていない)の時はNoneを返します。
ドラッグ操作が現在アクティブでないなら、hou.NotAvailableを引き起こします。
label
        
照会するソースイベントのタイプを指定します。使用するラベルタイプはhou.ui.hasDragSourceDataを参照してください。
index
        
ソース内のデータのインデックス。デフォルトは0です。
Qtインテグレーション ¶
mainQtWindow()
        
このメソッドは廃止されました。代わりにhou.qt.mainWindowをコールしてください。
createQtIcon(name, width=32, height=32)
        
このメソッドは廃止されました。代わりにhou.qt.Iconをコールしてください。
qtStyleSheet()
        
このメソッドは廃止されました。代わりにhou.qt.styleSheetをコールしてください。
ダイアログスクリプト ¶
createDialog(ui_file_name)
  → hou.Dialog
        
指定した.uiファイルを解析して、そのファイルに定義されているダイアログを返します。
ダイアログは、HoudiniのUser Interface Script Languageで記述しなければなりません。 この言語の概要は、Houdini Development Kit(HDK)ドキュメントの中にあり、特に“Houdini User Interface → The .ui Script Language”セクションにあります。
ui_file_nameは.uiファイルのベース名です。
    そのファイルは、HOUDINI_UI_APP_PATH検索パスに登録されているディレクトリに配置しなければなりません。
    HOUDINI_UI_APP_PATH検索ディレクトリのリストに関しては、ターミナルからhconfig -apを実行してください。
.uiファイルにエラーが含まれていて、ダイアログが作成できなかった場合は、hou.OperationFailedを引き起こします。
    ui_file_nameがNoneの場合は、TypeErrorを引き起こします。
findDialog(ui_file_name)
  → hou.Dialog
        
指定した.uiファイル名で定義されて、hou.ui.createDialogで作成されたダイアログを返します。
指定した.uiファイルに対してhou.ui.createDialogでダイアログが作成されなかった場合はNoneを返します。
ui_file_nameがNoneの場合は、TypeErrorを引き起こします。
dialogs()
  → tuple
 of hou.Dialog
        
hou.ui.createDialogで作成されたダイアログすべてを返します。
その他 ¶
isUserInteracting()
        
ユーザがノードまたはパラメータのストリームを変えるような方法でUIを現在操作している場合はTrueを返します。
    これには、プレイバーのスクラブやビューポート内でのハンドルのドラッグといった操作も含まれます。
    この値をテストすることで、ユーザが操作を完了するまではUIコンポーネントの負荷の高い更新をしないように待機してから、更新を実行するといったことができます。
setUserInteracting()
        
isUserInteracting()でチェックされたフラグを設定します。
    setUserInteracting(False)をコールしてフラグをリセットしない限りは、その関数はsetUserInteracting(True)がコールされた後にTrueを返します。
これをPython ViewerステートまたはPythonパネルで使用することで、ビューポート操作中またはUIウィジェット使用時の特定のUI更新を停止することができます。
これは、操作を開始した時にTrue、終了した時にFalseに設定してください。
Viewerステート ¶
registerViewerState(template)
        
独自のViewer Stateを表現したhou.ViewerStateTemplateオブジェクトを登録します。 この関数の使用方法に関しては、Viewer Stateのインストール方法を参照してください。
template
        
hou.ViewerStateTemplateオブジェクト。
同じ名前のステートが既に登録されていることが原因で登録に失敗した場合はhou.NameConflictを引き起こします。 登録に失敗した場合(例えば、登録するステートが用意されていない場合)はhou.OperationFailedを引き起こします。
registerViewerStateFile(file_path)
        
指定したPythonファイルで実装されたViewerステートタイプを登録します。 このファイルで以前に登録されたViewerステートが先に登録解除されます。
Pythonステートファイルに関する詳細は、Viewerステートのインストール方法を参照してください。
file_path
        
Viewerステートを含んだPythonファイルのフルパス。
登録に失敗した場合(例えば、登録するステートがFactoryを持っていない)はhou.OperationFailedを引き起こします。
registerViewerStates()
        
Viewer Stateフォルダ($HH/viewer_statesと$HOUDINI_USER_PREF_DIR/viewer_states)を走査して、そこに含まれているすべてのViewer Stateを登録します。
    既にHoudiniに登録されているViewer Stateは、単にそのディスク上のバージョンに更新されます。
unregisterViewerState(state_name)
        
既存のViewer Stateタイプの登録を解除します。
この関数の使用方法に関しては、Viewer Stateのインストール方法を参照してください。
state_name
        
登録を解除するステートの名前。
登録の解除に失敗した場合(例えば、指定した名前のステートが登録されていない場合)はhou.OperationFailedを引き起こします。
unregisterViewerStateFile(file_path)
        
指定したPythonファイルで以前に登録されたViewerステートの登録を解除します。 Pythonステートファイルに関する詳細は、Viewerステートのインストール方法を参照してください。
file_path
        
Viewerステートを参照したPythonファイルのフルパス。
登録の解除に失敗した場合(例えば、ステートがこのファイルで登録されていなかった)はhou.OperationFailedを引き起こします。
isRegisteredViewerState(state_name)
  → bool
        
以前にhou.ui.registerViewerStateでstate_nameが登録されている場合はTrueを返します。そうでない場合はFalseを返します。
state_name
        
検証するステートの名前。
reloadViewerState(state_name)
        
viewer_statesフォルダからPythonモジュールファイルをリロードすることで、登録されているViewer Stateを更新します。
    このメソッドはself-installedステートでのみ動作します。
    単にHDAのコードを編集して保存し直すことでEmbeddedステートを更新することができます。
    詳細は、Hodiniにステートをインストールする方法を参照してください。
Warning
以下のようにリロード時に登録問題に関するエラーメッセージを取得した場合、
Error registering 'my_state': factory not specified or invalid.
そのステートがHoudiniから削除されます。その問題を修復するにはHoudiniを終了させなければなりません。
state_name
        
リロードするステートの名前。
リロードに失敗した場合(例えば、指定した名前のステートが登録されていない場合)、hou.OperationFailedを引き起こします。
reloadViewerStates(state_names=None)
        
state_names配列で指定したとおりに複数のViewer Stateをリロードします。
    その配列が空っぽの場合、Houdini内のすべての登録されている手動インストール型のステートがリロードされます。
    ステートをリロードする方法の詳細は、hou.ui.reloadViewerStateを参照してください。
state_names
        
リロードするステート名の配列。デフォルトは空っぽです。
リロードに失敗した場合(例えば、指定した名前のステートが登録されていない場合)、hou.OperationFailedを引き起こします。
viewerStateInfo(state_names)
  → str
        
ステートタイプがキーになっている登録済みのすべてのViewerステートが記述されたJSON辞書文字列を返します。
state_names
        
処理するステート名の配列。 この配列が空っぽ(デフォルト)の場合、現在登録されているすべてのViewerステートが処理されます。
import json info_str = hou.ui.viewerStateInfo(["sidefx_stroke"]) info_dict = json.loads(info_str) info = json.dumps(info_dict["sidefx_stroke"], indent=3) print(info) { "Type": "sidefx_stroke", "Label": "Stroke", "Icon": "$HFS/houdini/pic/minimizedicon.pic", "Category": "Sop", "Source": "$HFS/houdini/viewer_states/sidefx_stroke.py", "Contexts": [ "SOP" ], "Handles": {}, "Gadgets": {}, "Selectors": { "sidefx_default_selector": { "Name": "sidefx_default_selector", "Auto start": false, "Hotkey": { "Path": "", "Label": "", "Description": "", "Keys": [] }, "Secure selection": "obey", "Prompt": "default geometry selector", "Allow drag": false, "Quick select": true, "Use existing selection": true, "Initial selection": "", "Initial selection type": "", "Ordered": false, "Geometry types": [], "Allow other sops": true } }, "Menus": { "Stroke": { "Type": "Menu", "Handle": "stroke_menu", "Draw realtime": { "Type": "Toggle", "Handle": "realtime_mode", "Hotkey": { "Path": "h.pane.gview.state.sop.sidefx_stroke.realtime_mode", "Label": "realtime", "Description": "Enable realtime mode", "Keys": [ 48 ] } }, "Brush settings...": { "Type": "Menu", "Handle": "brush_menu", "Cycle brushes": { "Type": "Action", "Handle": "cycle_brushes", "Hotkey": { "Path": "h.pane.gview.state.sop.sidefx_stroke.cycle_brushes", "Label": "Cycle brushes", "Description": "Cycle stroke tools", "Keys": [ 49 ] } }, "Brush display mode": { "Type": "Radio strip", "Handle": "brush_display_mode", "Default": "brush_viewport_display", "Wireframe": { "Type": "Radio strip item", "Handle": "brush_wireframe_display", "Hotkey": { "Path": "h.pane.gview.state.sop.sidefx_stroke.set_wireframe_brush", "Label": "Set wireframe brush", "Description": "Set wireframe brush", "Keys": [ 50 ] } }, "Viewport": { "Type": "Radio strip item", "Handle": "brush_viewport_display", "Hotkey": { "Path": "h.pane.gview.state.sop.sidefx_stroke.set_viewport_brush", "Label": "Set viewport brush", "Description": "Set viewport brush", "Keys": [ 51 ] } } } } } } }
viewerStateInfoFromFile(state_filepath)
  → (str
, str
)
        
指定したPythonステートファイルのViewerステート情報を返します。 この情報は、そのPythonステートのタイプ名、登録済みのViewerステート情報が記述されたJSON辞書を含んだタプルとして返されます。
state_filepath
        
Pythonステートファイルのパス。 そのファイルパスがPythonステートファイルでない場合、または、そのファイルに含まれているPythonステートが登録されていない場合、このメソッドは空っぽのタプルを返します。
Note
このメソッドは、HDA Pythonステートファイルでは動作しません。
import json (state_type, info_str) = hou.ui.viewerStateInfoFromFile( "$HFS/packages/viewer_state_demo/viewer_states/drawable_selector_sop.py" ) info_dict = json.loads(info_str) info = json.dumps(info_dict[state_type], indent=3) print(info) { "Type": "drawable_selector_sop", "Label": "State Drawable Selector Demo", "Icon": "DESKTOP_application_mac", "Category": "Sop", "Source": "$HFS/packages/viewer_state_demo/viewer_states/drawable_selector_sop.py", "Contexts": [ "SOP" ], "Handles": {}, "Gadgets": {}, "Selectors": { "drawable_selector": { "Name": "drawable_selector", "Auto start": true, "Hotkey": { "Path": "h.pane.gview.state.sop.drawable_selector_sop.drawable selector", "Label": "drawable selector", "Description": "drawable selector", "Keys": [ 49 ] }, "Secure selection": "ignore", "Prompt": "Select a drawable component", "Allow drag": false, "Quick select": true, "Use existing selection": true, "Initial selection": "", "Initial selection type": "", "Ordered": false, "Geometry types": [ "point", "edge", "prim" ], "Allow other sops": false }, "primitive_selector": { "Name": "primitive_selector", "Auto start": false, "Hotkey": { "Path": "h.pane.gview.state.sop.drawable_selector_sop.primitive selector", "Label": "primitive selector", "Description": "primitive selector", "Keys": [ 50 ] }, "Secure selection": "ignore", "Prompt": "Select a primitive component", "Allow drag": true, "Quick select": true, "Use existing selection": true, "Initial selection": "", "Initial selection type": "", "Ordered": false, "Geometry types": [ "prim" ], "Allow other sops": false }, "sidefx_default_selector": { "Name": "sidefx_default_selector", "Auto start": false, "Hotkey": { "Path": "", "Label": "", "Description": "", "Keys": [] }, "Secure selection": "obey", "Prompt": "default geometry selector", "Allow drag": false, "Quick select": true, "Use existing selection": true, "Initial selection": "", "Initial selection type": "", "Ordered": false, "Geometry types": [], "Allow other sops": true } }, "Menus": { "Drawable Selector Demo": { "Type": "Menu", "Handle": "drawable_selector_menu", "Log Info": { "Type": "Toggle", "Handle": "log_info", "Hotkey": { "Path": "", "Label": "", "Description": "", "Keys": [] } }, "Clear Console": { "Type": "Action", "Handle": "clear_console", "Hotkey": { "Path": "", "Label": "", "Description": "", "Keys": [] } } } } }
ビューアハンドル ¶
registerViewerHandle(template)
        
カスタムビューアハンドルを表現したhou.ViewerHandleTemplateオブジェクトを登録します。 この関数の使用法は、ビューアハンドルのインストールを参照してください。
template
        
hou.ViewerHandleTemplateオブジェクト。
登録に失敗すると以下の例外が引き起こされます:
- 
        
        同じ名前のハンドルが既に登録されていればhou.NameConflictを引き起こします。 
- 
        
        登録に失敗(例えば、登録するハンドルにファクトリーが用意されていない)すればhou.OperationFailedを引き起こします。 
registerViewerHandles()
        
ビューアハンドルのフォルダ(例えば、$HH/viewer_handlesと$HOUDINI_USER_PREF_DIR/viewer_handles)を走査して、それらのフォルダに含まれているすべてのビューアハンドルを登録します。
    既にHoudiniに登録されているビューアハンドルは、単にそのディスクのバージョンに更新されます。
registerViewerHandleFile(handle_file)
        
指定したPythonファイルで実装されたビューアハンドルタイプを登録します。 このファイルで以前に登録されたビューアハンドルはまず最初に登録解除されます。
Pythonハンドルファイルに関する詳細は、ビューアハンドルのインストールを参照してください。
file_path
        
ビューアハンドルの実装を含んだPythonファイルのフルパス。
登録に失敗(例えば、登録するハンドルにファクトリーが用意されていない)すればhou.OperationFailedを引き起こします。
unregisterViewerHandleFile(handle_file)
        
指定したPythonファイルで以前に登録されたビューアハンドルを登録解除します。 Pythonハンドルファイルに関する詳細は、ビューアハンドルのインストールを参照してください。
file_path
        
ビューアハンドルを参照するPythonファイルのフルパス。
登録解除に失敗(例えば、このファイルで何もハンドルが登録されていない)すればhou.OperationFailedを引き起こします。
unregisterViewerHandle(handle_name)
        
既存のビューアハンドルタイプを登録解除します。
この関数の使用方法は、ビューアハンドルのインストールを参照してください。
handle_name
        
登録解除するハンドルの名前。
登録解除に失敗(例えば、指定した名前のハンドルが登録されていない)すればhou.OperationFailedを引き起こします。
reloadViewerHandle(handle_name)
        
viewer_handleフォルダからPythonモジュールファイルをリロードして登録済みのビューアハンドルを更新します。
    詳細は、ビューアハンドルのインストールを参照してください。
Warning
以下のようなリロード時の登録に関する問題のエラーメッセージが出たら、
Error registering 'my_handle': factory not specified or invalid.
Houdiniは、そのファイルを編集できるようにViewer Handle Browser内でその壊れたビューアハンドルが保持されるようにベストを尽くします。 もし駄目であれば、そのハンドルはHoudiniから削除され、その問題を修復するためにHoudiniを強制的に終了します。
handle_name
        
リロードするハンドルのタイプ名。
リロードに失敗(例えば、指定した名前のステートが登録されていない)すればhou.OperationFailedを引き起こします。
isRegisteredViewerHandle(handle_name)
  → bool
        
handle_nameが既にhou.ui.registerViewerHandleで登録されていればTrueを返します。
    登録されていなければFalseを返します。
handle_name
        
確認したいビューアハンドルのタイプ名。
viewerHandleInfo(handle_names)
  → string
        
Houdiniに登録済みのすべてのビューアハンドルを記述したJSON辞書文字列を返します。 これらのビューアハンドルはタイプ名で照会することができます。
handle_names
        
ハンドルタイプ名の配列。 この関数は、この配列で指定された登録済みのすべてのビューアハンドルを含んだ辞書を返します。 この配列が空っぽ(デフォルト)の場合、登録済みのすべてのビューアハンドルが返されます。
>>> import ast >>> viewer_handles = ast.literal_eval(hou.ui.viewerHandleInfo()) >>> viewer_handles["move_tool_handle"] { "Gadgets":{ "zdisc":{ "Drawable":"Line", "Name":"zdisc", "Label":"Z" }, "yscale":{ "Drawable":"Face", "Name":"yscale", "Label":"Y" }, "yaxis":{ "Drawable":"Line", "Name":"yaxis", "Label":"Y" }, "zscale":{ "Drawable":"Face", "Name":"zscale", "Label":"Z" }, "zaxis":{ "Drawable":"Line", "Name":"zaxis", "Label":"Z" }, "xaxis":{ "Drawable":"Line", "Name":"xaxis", "Label":"X" }, "xscale":{ "Drawable":"Face", "Name":"xscale", "Label":"X" }, "pivot":{ "Drawable":"Face", "Name":"pivot", "Label":"XYZ" }, "xdisc":{ "Drawable":"Line", "Name":"xdisc", "Label":"X" }, "ydisc":{ "Drawable":"Line", "Name":"ydisc", "Label":"Y" } }, "Parameters":{ "Sz":{ "Default":1, "Range":"(0.1, 10)", "Type":"Float", "Name":"sz", "Label":"Sz" }, "Sy":{ "Default":1, "Range":"(0.1, 10)", "Type":"Float", "Name":"sy", "Label":"Sy" }, "Sx":{ "Default":1, "Range":"(0.1, 10)", "Type":"Float", "Name":"sx", "Label":"Sx" }, "Tz":{ "Default":0, "Range":"(-10, 10)", "Type":"Float", "Name":"tz", "Label":"Tz" }, "Tx":{ "Default":0, "Range":"(-10, 10)", "Type":"Float", "Name":"tx", "Label":"Tx" }, "Ty":{ "Default":0, "Range":"(-10, 10)", "Type":"Float", "Name":"ty", "Label":"Ty" }, "Rx":{ "Default":0, "Range":"(0, 360)", "Type":"Float", "Name":"rx", "Label":"Rx" }, "Ry":{ "Default":0, "Range":"(0, 360)", "Type":"Float", "Name":"ry", "Label":"Ry" }, "Rz":{ "Default":0, "Range":"(0, 360)", "Type":"Float", "Name":"rz", "Label":"Rz" } }, "Settings":{ "":{ "Type":"Separator", "Name":"separator0", "Label":"" }, "Drag Along Plane":{ "Default":"XZ", "Menu Items":[ "(XZ, XZ)", "(XY, XY)", "(ZY, ZY)", "(XYZ, XYZ)" ], "Type":"Menu", "Name":"planes", "Label":"Drag Along Plane" }, "Draw dimension lines":{ "Default":1, "Type":"Toggle", "Name":"dimensions", "Label":"Draw dimension lines" } }, "Menus":{ "Move Tool Handle":{ "Cycle Gadgets":{ "Hotkey":{ "Keys":[ 89 ], "Path":"h.pane.gview.handle.move_tool_handle.cycle", "Description":"cycle", "Label":"cycle" }, "Handle":"cycle", "Type":"Action" }, "Handle":"move_tool_handle_menu", "Trace":{ "Hotkey":{ "Keys":[ 51 ], "Path":"h.pane.gview.handle.move_tool_handle.trace_handle", "Description":"Enable handle trace", "Label":"Trace" }, "Handle":"trace_handle", "Type":"Toggle" }, "Edit":{ "Hotkey":{ "Keys":[ 53 ], "Path":"h.pane.gview.handle.move_tool_handle.edit_handle", "Description":"Edit Handle", "Label":"Edit" }, "Handle":"edit_handle", "Type":"Action" }, "XYZ":{ "Hotkey":{ "Keys":[ 65 ], "Path":"h.pane.gview.handle.move_tool_handle.XYZ", "Description":"XYZ", "Label":"XYZ" }, "Handle":"XYZ", "Type":"Action" }, "Inspect":{ "Hotkey":{ "Keys":[ 50 ], "Path":"h.pane.gview.handle.move_tool_handle.inspect_handle", "Description":"Inspect Handle", "Label":"Inspect" }, "Handle":"inspect_handle", "Type":"Action" }, "XZ":{ "Hotkey":{ "Keys":[ 70 ], "Path":"h.pane.gview.handle.move_tool_handle.XZ", "Description":"XZ", "Label":"XZ" }, "Handle":"XZ", "Type":"Action" }, "Reload":{ "Hotkey":{ "Keys":[ 54 ], "Path":"h.pane.gview.handle.move_tool_handle.reload_handle", "Description":"Reload Handle", "Label":"Reload" }, "Handle":"reload_handle", "Type":"Action" }, "XY":{ "Hotkey":{ "Keys":[ 71 ], "Path":"h.pane.gview.handle.move_tool_handle.XY", "Description":"XY", "Label":"XY" }, "Handle":"XY", "Type":"Action" }, "ZY":{ "Hotkey":{ "Keys":[ 66 ], "Path":"h.pane.gview.handle.move_tool_handle.ZY", "Description":"ZY", "Label":"ZY" }, "Handle":"ZY", "Type":"Action" }, "Clear console":{ "Hotkey":{ "Keys":[ 49 ], "Path":"h.pane.gview.handle.move_tool_handle.clear_console", "Description":"Clear console", "Label":"Clear" }, "Handle":"clear_console", "Type":"Action" }, "Marker":{ "Hotkey":{ "Keys":[ 52 ], "Path":"h.pane.gview.handle.move_tool_handle.add_marker", "Description":"Add Marker", "Label":"Marker" }, "Handle":"add_marker", "Type":"Action" }, "Logging":{ "Hotkey":{ "Keys":[ 48 ], "Path":"h.pane.gview.handle.move_tool_handle.console_logging", "Description":"Enable or disable console logging", "Label":"Logging" }, "Handle":"console_logging", "Type":"Toggle" }, "Type":"Menu" } }, "Label":"Move Tool Handle", "Exported Parameters":[ "tx", "ty", "tz", "rx", "ry", "rz", "sx", "sy", "sz" ], "Source":"C:/Users/marcb/DEV/HOUDINI/dev/hfs/packages/viewer_handle_demo/viewer_handles/move_tool_handle.py", "Type":"move_tool_handle", "Categories":[ "Sop" ], "Icon":"$HFS/houdini/pic/Mandril.pic" }
openViewerHandleCodeGenDialog(categories, action_callback)
        
Pythonビューアハンドルのテンプレート実装と登録コードを生成するためのモーダルダイアログウィンドウを開きます。 ビューアハンドルの入力名は、そのコードを生成するのに必須です。 ハンドルラベルやアイコン名などの他のフィールドは任意です。
このダイアログのSampleオプションを選択することで、事前に定義済みのハンドラーとバインドを含んだビューアハンドルコードを生成することができます。
    さらにHandlerオプションを選択することで、空っぽのハンドラーを含んだビューアハンドルコードを生成することもできます。
ダイアログボタン:
- 
        
        Accept: 入力フィールドと選択したオプションに基づいてコードテンプレートを生成します。
- 
        
        Cancel: ダイアログを閉じて、コードテンプレートの生成を中止します。
このダイアログは、Viewer Handle BrowserパネルのFile|New Handle...メニューで利用可能です。
category
        
登録するビューアハンドルのタイプを指定したhou.NodeTypeCategoryオブジェクト。
action_callback
        
Acceptボタンがクリックされた時にその結果を処理するのに必須となるコールバック。
このコールバック名はユーザが定義し、辞書引数を入力として受け取ります:
def myAcceptAction( **kwargs )
kwargs辞書には、コード生成の結果が格納されます:
- 
        
        handle_valid: 処理に成功すればTrue、失敗すればFalseを返します。
- 
        
        handle_type: 新しいハンドルのタイプ名。
- 
        
        handle_type_expr: 新しいハンドルの名前を表現したエクスプレッション。
- 
        
        handle_label: ハンドルラベル。
- 
        
        handle_description: コードのヘッダにのみ表示されるハンドルの説明。
- 
        
        handle_category: ハンドルカテゴリタイプの名前。
- 
        
        handle_code: 生成されたPythonコード。
- 
        
        handle_icon_name: 選択されたアイコンの名前。この名前は単一アイコン名またはファイルパスのどれかです。
- 
        
        handle_icon_filename: あればアイコンのファイルパス。
リソース ¶
addResourceEventCallback(callback)
        
hou.resourceEventMessageイベントが発生する度にコールされるPythonコールバックを登録します。
'callback'
キーワード引数を必要とするコール可能なPythonオブジェクト。
キーワード引数は以下の内容を含みます:
- 
        
        event_type: hou.resourceEventMessageイベント。
- 
        
        resource_type:ViewerStateやViewerHandleといったリソースタイプ
- 
        
        type_name: イベントをトリガーしたリソースのタイプ名。resource_typeがViewerStateの場合、このタイプ名を使用することで、hou.ui.viewerStateInfoから返された辞書をインデックス化することができます。
removeResourceEventCallback(self,callback)
        
既にhou.ui.addResourceEventCallbackで登録されている特定のPythonコールバックを削除します。
fireResourceCustomEvent(resource_type, user_data, queue=True)
        
この関数は、特定のワークフローの実装に使用可能なカスタムリソースイベントをトリガーします。
    hou.ui.addResourceEventCallbackで登録されているクライアントコールバックは、入力のuser_data引数を使って指定します。
    このイベントは即座に処理することも、Houdiniがアイドル状態になった後で処理することもできます。詳細は、queue引数を参照してください。
resource_type
        
user_data
        
ユーザ定義エントリをint, double, bool, stringタイプの値にマッピングした辞書。
        user_dataが空っぽ、または、未対応の値のタイプを含んでいた場合には例外が引き起こされます。
fireResourceCustomEventは以下のエントリを辞書に追加します
        
resource_type: resource_type引数値。
            event_type: OnCustomEventイベントタイプ。
queue
        
True(デフォルト)の場合、このイベントがキューに登録され、Houdiniがアイドル状態になった時に処理されます。Falseの場合、このイベントが即座に処理されます。
以下は、カスタムイベントの使い方を載せています。
# Viewer Stateイベント用のコールバックを登録します。 hou.ui.addResourceEventCallback(myEventHandler) def myEventHandler(**kwargs): import json if kwargs['event_type'] == hou.resourceEventMessage.OnCustomEvent: if 'load_file' in kwargs: # JSONファイルを読み込んで、その結果を格納します。 with open(kwargs['load_file']) as file: json_values = json.load(file) elif 'save_file' in kwargs: # json_valuesをJSONファイルに保存します。 with open(kwargs['save_file'], 'w') as file: json.dump(json_values, file, indent=3) # 他の非カスタムViewer Stateイベントを処理します。 elif kwargs['event_type'] == hou.resourceEventMessage.OnEnter: pass ... # カスタムイベントを介してJSONファイルを読み込みます。 hou.ui.fireResourceCustomEvent( hou.resourceType.ViewerState, { 'load_file': '/var/tmp/somefile.json'} )
printResourceMessage(resource_type, message, message_type=hou.severityType.Message)
        
Viewer State BrowserまたはHandle Browserのメッセージウィンドウ内にユーザメッセージをプリントします。 hou.resourceEventMessage.OnPrintMessageイベントは、この関数がコールされた時に送信されます。
resource_type
        
ブラウザコンソールを選択するリソースタイプ。
        Viewer State Browserでメッセージをプリントするにはhou.resourceType.ViewerStateを使用し、
        Viewer Handle Browserでメッセージをプリントするにはhou.resourceType.ViewerHandleを使用します。
message
        
プリントする文字列メッセージ。
パッケージ ¶
ランタイム時にパッケージファイルを管理するための一連の関数。
loadPackage(file_path)
        
普段では、パッケージはHoudini起動時に読み込まれますが、このAPIはランタイム時にパッケージを読み込みます。
    loadPackageは、通常のパッケージファイルを読み込んでHoudini環境変数をセットアップしますが、プラグインフォルダにインストールされたリソースファイルの読み込みにも使用することができます。
    これは、そのプラグインリソースファイルを含んだプラグインフォルダパスがHOUDINI_PATHに設定された単純なパッケージファイルを使用することでセットアップすることができます。
    loadPackageは、HOUDINI_PATHで見つかったリソースを読み込んでインストールします。
パッケージプラグインフォルダの構造とプラグインフォルダの作成方法について知りたいのであれば、Package Browserを参照してください。
file_path
        
読み込むパッケージファイルを指したファイルパス。
loadPackageArchive(file_path, extract_path=None)
  → list
 of string
        
ディスク上のパッケージアーカイブファイルの内容を抽出し、そこに埋め込まれているプラグインリソースとインストールパッケージを読み込みます。 パッケージアーカイブは、通常ではプラグインをパッケージしてそれをHoudiniにインストールするのに使用します。 アーカイブインストールディレクトリが読み取り専用だった場合、例外が発生します。 このアーカイブからインストールされたロード済みのパッケージファイルがリストで返されます。
パッケージアーカイブに関する詳細は、Package Browserを参照してください。
file_path
        
パッケージアーカイブファイルを指したファイルパス。
extract_path
        
オプションで、ファイルを抽出するフォルダパス。 これを指定しなかった場合のデフォルトはユーザフォルダです。
unloadPackage(file_path)
        
hou.ui.loadPackageを使用して既にロードされているプラグインリソースをアンロードします。
file_path
        
アンロードするパッケージファイルを指したフルファイルパス。
reloadPackage(file_path)
        
Note
このAPIは廃止され、今後のバージョンで削除される予定です。 パッケージのリロードは代わりにloadPackageを使用してください。
既にロードされているパッケージを更新します。 まず最初にそのパッケージをアンロードして現在のリソースをアンインストールしてから、 再度ロードします。
file_path
        
リロードするパッケージファイルを指したフルファイルパス。
activatePackage(file_path)
        
このAPIは通常ではPackage Browserによって使用され、以前にhou.ui.deactivatePackageによって無効化されたパッケージを再び有効化します。 パッケージを有効化すると、そのパッケージの環境変数とリソースが再読み込みされます。
file_path
        
有効化するパッケージファイルを指したファイルパス。
deactivatePackage(file_path)
        
読み込み済みのパッケージを無効化します。 これは、パッケージをアンロードすると同時にそのパッケージをブラウザツリー内に残すためにPackage Browserで使用されます。 hou.ui.activatePackageを使用することで、そのパッケージを再び有効化することができます。
file_path
        
無効化するパッケージファイルを指したファイルパス。
packageInfo(file_paths)
  → string
        
Houdiniに既にロードされている1個以上のパッケージプラグインを記述したJSON辞書文字列を返します。
file_paths
        
パッケージファイルパスの配列。この配列が空っぽ(デフォルト)の場合、現在読み込まれているすべてのパッケージが辞書に追加されます。
以下にviewer handle demoパッケージの内容を載せます。
>>> import json >>> print( json.loads(hou.ui.packageInfo()) ) { 'viewer_handle_demo': { 'File path': '$HFS/houdini/viewer_handles/viewer_handle_demo.json', 'Load only once': False, 'Name': 'viewer_handle_demo', 'Resources': { 'Shelf': [ '$HFS/packages/viewer_handle_demo/toolbar/viewer_handle_demo.shelf'], 'Viewer Handle': [ '$HFS/packages/viewer_handle_demo/viewer_handles/move_tool_handle.py', '$HFS/packages/viewer_handle_demo/viewer_handles/viewer_handle_intro1.py', '$HFS/packages/viewer_handle_demo/viewer_handles/viewer_handle_intro2.py', '$HFS/packages/viewer_handle_demo/viewer_handles/viewer_handle_intro3.py'] }, 'Variables': { 'HOUDINI_PATH': [ '$HFS/packages/viewer_handle_demo'] } } }
ホットキー ¶
hotkeys(hotkey_symbol)
  → tuple
 of str
        
現在ホットキーシンボルに関連付けられているアクションに割り当てられているホットキーを意味した文字列のタプルを返します。
    ホットキーシンボルは、$HH/config/Hotkeysディレクトリで見つけることができます。
指定したホットキーシンボルが存在しなかった場合は、hou.ValueErrorを引き起こします。
例:
>>> hou.ui.hotkeys("h.copy") ('Alt+C', 'Ctrl+C') >>> hou.ui.hotkeys("h.pane.copytab") ('Ctrl+T',)
hotkeyDescription(hotkey_symbol)
  → str
        
ホットキーシンボルに関連付けられているアクションの説明を含んだ文字列を返します。
    ホットキーシンボルは、$HH/config/Hotkeysディレクトリで見つけることができます。
指定したホットキーシンボルが存在しなかった場合は、hou.ValueErrorを引き起こします。
例:
>>> hou.ui.hotkeyDescription("h.pane.copytab") 'Copy Tab'
isKeyMatch(key, hotkey_symbol)
  → bool
        
文字列keyで記述したキーが、指定したホットキーシンボルに割り当てられているホットキーのどれかに一致すれば、Trueを返します。
    ホットキーシンボルは、$HH/config/Hotkeysディレクトリで見つけることができます。
指定したホットキーシンボルが存在しなかった場合やkey文字列が有効なホットキーを意味していなかった場合は、hou.ValueErrorを引き起こします。
例:
>>> hou.ui.isKeyMatch("Ctrl+C", "h.copy") True >>> hou.ui.isKeyMatch("Ctrl+C", "h.pane.copytab") False