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
ハンドル固有の設定を含んだ文字列。 複数の設定は、スペースで区切ってください。
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を使用します。