| On this page |
概要 ¶
Handleクラスは、Viewer Statesにバインドされたハンドルを制御することができます。
メソッド ¶
__init__(scene_viewer, name)
指定した名前のハンドルにアクセスするためのオブジェクトを作成します。通常では、hou.HandleはPython Viewer Statesと併用します。
Warning
通常では、ハンドルオブジェクトはPython Viewer Stateコンストラクタから生成します。
しかし、Handleオブジェクトのメソッドをコールするには、一度そのステートになってから実行しなければなりません。そうしないと例外が発生してしまいます。
scene_viewer
ハンドルが使用されるシーンビューアを参照したhou.SceneViewerオブジェクト。そのシーンビューアが互換性がなければ例外が発生します。
name
ハンドルオブジェクトを識別するための文字列。この名前は、バインド時に使用されるハンドルの名前に相当します。詳細は、hou.ViewerStateTemplate.bindHandleまたはhou.ViewerStateTemplate.bindStaticHandleを参照してください。
class MyState(object): def __init__(self, state_name, scene_viewer): self.state_name = state_name self.scene_viewer = scene_viewer self.handle = hou.Handle(scene_viewer, "Transform") # ステートとそのバインドを記述したテンプレートを作成します。 template = hou.ViewerStateTemplate("mystate", "My Custom State", hou.sopNodeTypeCategory()) template.bindFactory(MyState) template.bindHandle("xform", "Transform")
name()
: → string
このハンドルの名前。
label()
: → string
UI表示用のこのハンドルのラベル。
show(value)
ハンドルを表示/非表示します。
value
Bool値。ハンドルを表示するにはTrue、非表示にするにはFalseを設定します。
type()
: → string
ハンドルのタイプ名を返します。 この戻り値は、ハンドルをバインドする際に使用するタイプに相当します。詳細は、hou.ViewerStateTemplate.bindHandleまたはhou.ViewerStateTemplate.bindStaticHandleを参照してください。
update(immediate, node_update=False, force_update=False)
どれかのパラメータの値が変更された場合にハンドルを更新します。
Viewer Stateに変更を加えた時にそれらのハンドルのどれかを更新する必要がある場合に役立ちます。
動的ハンドルに関しては、これはonStateToHandleコールバックのコールをトリガーするので、Viewer Stateが適切にハンドルパラメータ(s)を更新することができます。
immediate
更新を行なうタイミングを制御します。 Falseの場合、Houdiniがアイドル状態になるまで更新が遅延されます。 Trueの場合、即座に更新が行なわれます。 デフォルトはFalseです。
node_update
デフォルトでは、updateコールするとハンドルパラメータが更新されます。
node_updateをTrueに設定すると、代わりにこのハンドルにバインドされているステートノードパラメータが更新されます。
Note
このフラグはPythonビューアハンドルにのみ対応しています。
force_update
大元のハンドルを強制的に更新します(デフォルトはFalse)。 通常では、UIを更新する際にはHUDハンドルと一緒に使用します。
Note
このフラグはPythonビューアハンドルにのみ対応しています。
visible()
: → bool
ハンドルが可視ならTrue、不可視ならFalseを返します。
isValid()
: → bool
ハンドルが適切に作成されていればTrueを、そうでないならFalseを返します。
isActive()
: → bool
ハンドルがアクティブになっていればTrue、そうでないならFalseを返します。
このメソッドは、現行ステートによってハンドルが初期化されアクティブになったことを示します。
enableParms(parm_names)
parm_namesで指定したこのハンドルのパラメータを動的に有効にします。
handle_parmsが空っぽ(デフォルト)の場合、すべてのハンドルパラメータが有効になります。
ハンドルが動的にViewerステートにバインドされていなかった場合は、例外を引き起こします。
Note
xformなどの一部のハンドルは、有効にしても即座にそのコンポーネントを表示しない場合があります。
これは、そのコンポーネントが以前に無効になっていた場合で起こり得ます。
例えば、回転(rx,ry,rz)を無効にして再度有効にしても、回転ノブを表示していた前の回転モードが復元されなくなります。
この回転モードを復元するには、Yキーで循環させるか、hou.Handle.applySettingをコールする必要があります。
hou.Handle.disableParmsも参照してください。
parm_names
有効にしたいハンドルパラメータを指定した名前のリスト。
parm_namesには、ここに載せているハンドルパラメータ名を含める必要があります。
parm_namesに不明なパラメータ名が含まれていれば、例外が引き起こされます。
disableParms(parm_names)
このメソッドは、hou.Handle.enableParmsと反対の処理を行ない、parm_namesで指定されたハンドルパラメータを動的に無効にします。
handle_parmsが空っぽ(デフォルト)の場合、すべてのハンドルパラメータが無効になります。
ハンドルが動的にViewerステートにバインドされていなかった場合は、例外を引き起こします。
parm_names
無効にしたいハンドルパラメータを指定した名前のリスト。
parm_namesには、ここに載せているハンドルパラメータ名を含める必要があります。
parm_namesに不明なパラメータ名が含まれていれば、例外が引き起こされます。
applySettings(settings)
1つ以上の設定をこのハンドルに追加します。
settings
ハンドル固有の設定を含んだ文字列。 複数の設定は、スペースで区切ってください。
settingValue(setting_name) ->
value
Return the value of a setting parameter bound to this handle.
setting_name
The name of the setting to retrieve.
makePersistent(value)
ノードのハンドルが選択されていない時でもハンドルが表示されるように、このハンドルを持続ハンドルに変換します。
value
Trueの場合、ハンドルが持続ハンドルとして設定されます。
Falseの場合、ハンドルは非持続ハンドルに設定され、ノードが選択されている時にのみハンドルが表示されます。
Note
valueがFalseの場合、パラメータ用HUDハンドルなどのHUDハンドルは削除され、ビューアから除去されます。
parmPaths()
: → list of string
このハンドルにマップされているすべてのパラメータパスを返します。
パラメータパスは、hou.Parmオブジェクトを作成するのに役立ちます。
nodePath(index)
: → string
このハンドルのノードパスを返します。
index
ノードインデックス。 デフォルトは0です。
info()
: → string
このハンドルのPythonハンドル定義を表現したJSON辞書文字列を返します。 大元のハンドルタイプがPythonハンドルでない場合は空っぽの文字列を返します。
hou.ui.viewerHandleInfoも参照してください。
isDynamic()
: → bool
ハンドルが動的にPythonステートにバインドされていればTrueを返します。
makeAsDefault()
現行ハンドルパラメータ値を大元のハンドルタイプの新しいデフォルトにします。
revertToDefault()
現行ハンドルパラメータ値をハンドルのデフォルト値で設定します。
revertToFactoryDefault()
現行ハンドルパラメータ値を、ノード定義のパラメータデフォルト値で設定します。
Note
このメソッドは、現行ハンドルパラメータのデフォルト値も上書きします。
exportToHDA()
ハンドルとそのパラメータを現在開かれているデジタルアセットエディタに追加します。
exportParmsToHDA()
ハンドルパラメータを現在開かれているデジタルアセットエディタに追加します。
beginUndo()
Undoブロックを開いて、大元のハンドルを使ってアンドゥ可能なオペレーションを実行します。 Undoブロックを開いた後に実行されたすべてのオペレーションは、Undoスタック上では1つのオペレーションとして出現します。 開いたブロックを閉じるには、hou.Handle.endUndoを使用します。
detach()
Places the handle in a detached mode. When in this mode, the handle’s position and orientation can be manipulated independently without updating its bound parameters.
This method toggles the handle’s detached state. If the handle is currently detached, calling this method will re-attach it; otherwise, it will be detached.
This functionality is applicable to handles that support detachment, such as xform and sidefx_transform2d handles.
attach()
Re-attaches the handle if it is currently in detached mode.
isDetached()
Returns True if the handle is in detached mode; otherwise, returns False.
isDetachable()
Returns True if the handle can be detached; otherwise, returns False. Handles are not detachable by default.