このクラスは、Pythonビューアハンドルのテンプレートを定義するのに使用します。 このクラスを使用することで、そのテンプレートを生成するために、そのテンプレートの構成を設定し、ガジェット、パラメータ、コンテキストメニューなどのハンドルバインドを作成することができます。 Houdiniは、ビューアハンドルを登録する時やビューアハンドルのインスタンスを生成する時にこのテンプレートを使用します。
Pythonビューアハンドルの作成方法に関する詳細は、Pythonハンドルを参照してください。
メソッド ¶
__init__(name, label, categories)
ビューアハンドルタイプを表現したViewerHandleTemplate
から新しいインスタンスを生成します。
ビューアハンドルは、名前とSOP
やOBJ
といったカテゴリのリストによって識別されます。
この名前には、ビューアハンドルの独自のタイプを指定し、固有である必要があります。
このカテゴリのリストには、そのビューアハンドルが使用可能なコンテキスト(s)を指定します。
name
ハンドルタイプを定義した固有な名前。
label
ハンドルの説明的な名前を表現した文字列。
categories
このハンドルが対応するコンテキスト(s)を示したhou.NodeTypeCategoryオブジェクトのリスト。
以下に、ビューアハンドルが対応しているコンテキストを載せています:
categories
リストにコンテキストを追加するには、以下の関数を使用します。
SOPステート用:
hou.sopNodeTypeCategory()
OBJステート用:
hou.objNodeTypeCategory()
LOPステート用:
hou.lopNodeTypeCategory()
DOPステート用:
hou.dopNodeTypeCategory()
typeName()
→ str
ハンドルのタイプ名を返します。
categories()
→ list
of hou.NodeTypeCategory
このテンプレートが対応しているコンテキスト(s)のリストを返します。
bindFactory(callable)
ビューアハンドルクラスを返す(クラスや関数といった)コール可能なオブジェクトを受け取ります。
bindGadget(drawable_type, gadget_name, gadget_label=None, parms=None)
ビューアハンドルにGadget Drawableをバインドします。 ガジェットは特別なジオメトリDrawableで、ビューアハンドルを視覚的に操作できるようにピックとロケートの機能を備えています。 Houdini側でGadget Drawableインスタンスが作成されるので、あなた自身でこのタイプのオブジェクトを作成する必要はありません。 ビューアハンドルクラス内のガジェットにアクセスする方法の詳細は、hou.ViewerHandleTemplate.bindFactoryを参照してください。
geometry_drawable_type
ガジェットのジオメトリタイプ。以下のタイプに対応しています:
gadget_name
ガジェット名の文字列識別子。
gadget_label
オプションの説明文。デフォルトはNoneです。
parms
視覚的に操作するためにガジェットで必須のハンドルパラメータ名のリスト。
Houdiniは、必須パラメータ すべて がアセットにバインドされている場合にのみ、ガジェットがPythonハンドルのhandle_gadgets辞書を利用できるようにします。
例えば、ガジェットでXとYのパラメータが必須で、それらすべてのパラメータがバインドされていれば、ハンドルがアクティブになった時にそのガジェットが利用できるようになります。
しかし、Xパラメータしかバインドされていない場合、ガジェットはまったく利用できません。
つまり、そのガジェットはhandle_gadgets
のパーツにはなりません。
この場合、Pythonハンドルの実装ではバインドされていないガジェットにアクセスしないようにしてください。
デフォルトはNoneです。
bindMenu(menu)
このビューアハンドルにコンテキストメニューを取り付けます。 テンプレート毎に1個のコンテキストメニューしかバインドすることができません。
bindParameter(param_type, name, label=None, default_value=None, num_components=1, min_limit=0, max_limit=1, visible=True)
ビューアハンドルの視覚的なパラメータを定義します。 ビューアハンドルの実装では、これらのパラメータをHoudiniに露出させることができるので、ユーザはガジェットを介して視覚的にこれらのパラメータを変更することができます。 ('P'ホットキーまたはビューポートコンテキストメニューで開く)Handleダイアログからでも、これらのパラメータを変更することができます。 ただし、このワークフローは主にデバッグ用途で使用します。
パラメータ変更に反応できるように、ビューアハンドルにonParmChangeEvent
ハンドラーを実装してください。
詳細は、ビューアハンドルのイベントハンドラーを参照してください。
name
パラメータ名の識別子。
name
を空っぽにすることはできないので、必ずハンドルテンプレート内で固有の名前を指定してください。
default_value
パラメータのデフォルト値。これは、Houdiniがパラメータの初期化に使用する値です。
この値の型はparam_type
に合わせるのが理想ですが、Houdiniが型を適切に変換するようにベストを尽くします。
デフォルトはNoneです。
label
パラメータのラベル。None
(デフォルト)に設定すると、このラベルはパラメータ名で設定されます。
min_limit
パラメータに設定可能な最小値を指定します。デフォルトは0です。 以下のタイプに対応しています:
max_limit
パラメータに設定可能な最大値を指定します。デフォルトは1です。 以下のタイプに対応しています:
num_components
パラメータテンプレートで作成するコンポーネントの数を指定します。 最大で3個のコンポーネントを作成することができます。 デフォルトのコンポーネント数は1です。 値が無効であれば例外が引き起こされます。
以下のタイプではnum_components
> 1に対応しています:
param_type
ビューアハンドルパラメータのタイプ。以下のタイプに対応しています:
他のタイプでは例外が引き起こされます。
visible
Handle Parameter Dialog内にパラメータを表示するかどうかを制御します。デフォルトはTrueです。
Note
そのパラメータがエクスポートされていない場合、Houdiniはvisible
引数の設定に関わらずそのパラメータを非表示にします。
bindSetting(param_type, name, label=None, menu_as_button_strip=False, menu_items=None, num_components=1, default_value=None, min_limit=0, max_limit=1, align=False)
設定パラメータをビューアハンドルにバインドします。 設定パラメータは通常ではビューアハンドルの構成またはビューアハンドルのワークフローの設定で使用される視覚的でないパラメータです。 設定パラメータはHandleダイアログからアクセス可能です。
パラメータ設定に反応できるように、ビューアハンドルにonParmChangeEvent
ハンドラーを実装してください。
詳細は、ビューアハンドルのイベントハンドラーを参照してください。
align
Handleダイアログ
内でのパラメータの整列の方法を指定します。
Trueを指定すると、パラメータは次のバインドパラメータと水平に整列されます。
Falseを指定すると、パラメータは前のバインドパラメータの下に表示されます。
デフォルトはFalseです。
default_value
パラメータのデフォルト値。
これは、Houdiniがパラメータの初期化に使用する値です。
この値の型はparam_type
に合わせるのが理想ですが、Houdiniが型を適切に変換するようにベストを尽くします。
デフォルトはNoneです。
パラメータタイプ |
値の型 |
---|---|
値は無視されます。 |
|
|
|
状態をboolまたはintで切り替えます。 |
name
パラメータ名の識別子。
name
を空っぽにすることはできないので、必ずハンドルテンプレート内で固有の名前を指定してください。
そうしないと例外が引き起こされます。
label
パラメータのラベル。None
(デフォルト)に設定すると、このラベルはパラメータ名で設定されます。
min_limit
UIダイアログ内で設定可能なパラメータの最小値を指定します。デフォルトは0です。 以下のタイプに対応しています:
max_limit
UIダイアログ内で設定可能なパラメータの最大値を指定します。デフォルトは1です。 以下のタイプに対応しています:
num_components
パラメータテンプレートで作成するコンポーネントの数を指定します。デフォルトは1です。 値が無効であれば例外が引き起こされます。
以下のタイプではnum_components
> 1に対応しています:
param_type
バインドするパラメータのタイプ。以下のタイプに対応しています:
他のタイプでは例外が引き起こされます。
bindIcon(icon_name)
このビューアハンドルのアイコン画像を設定します。
icon_name
アイコンの名前。デフォルトはMISC_python
です。アイコン名は以下のように指定することができます:
-
単一名。
-
ディスク上の画像アイコンファイルのパス。ディスク上のアイコンファイルの場所に関しては決まりはありません。
template.bindIcon("$HOUDINI_USER_PREF_DIR/config/Icons/myicon.pic")
exportParameters(params)
特定のビューアハンドルパラメータをHoudiniに露出します。 エクスポートされたパラメータは、Viewerステートで動的または静的にビューアハンドルをバインドする際に使用することができます。
params
hou.ViewerHandleTemplate.bindParameterで定義されたパラメータのリスト。
bindHotkeyDefinitions(definitions)
ホットキー定義オブジェクトをこのビューアハンドルにバインドして、そのハンドルで実装されるホットキーのコマンドとコンテキストを定義します。 ホットキー定義オブジェクトはテンプレート毎に1つだけバインドすることができます。
definitions
追加するhou.PluginHotkeyDefinitionsオブジェクト。
See also |