| Inheritance |
|
このクラスには、コンポジットシェルフツール、COPのステートとハンドルに対応するのに必要なメソッドが備わっています。
現在のところ、UIで利用可能なほとんどの機能をプログラムで制御することができません。
それが目的であれば、cop2toolutilsモジュール内の関数の方が役に立ちます。
メソッド ¶
currentState()
→ str
ビュー内で現在使用されているツールの名前を返します。 これは、内部の公開されていない名前ですが、通常ではノードの名前に該当します。setCurrentStateを使用することで別のツールに変更することができます。
enterViewState(wait_for_exit=False)
ビューツールに切り替えます。
setCurrentState(state, wait_for_exit=False)
ビュー内の現在アクティブなツールを設定します。stateは、内部の公開されていない名前を含んだ文字列です。currentState()を参照してください。
runStateCommand(name, args=None)
EアクティブなPythonステートで実装されているコマンドを実行します。 ステートコマンドは、名前識別子と引数を指定することで呼び出すことができます。
このステートがPythonステートタイプでない場合、または、ステートが実行中でない場合は、例外が発生します。
name
コマンドの名前識別子。
args
コマンド引数。
argsには、組み込み型、コンテナ、セット、辞書など、あらゆるPython型を指定することができます。
辞書は、コマンドへの引数の渡しが簡素化され、コマンドから出力値を返すことができるため、コマンドへの引数渡しによく使用されます。
argsが省略された場合、デフォルトはNoneとなります。
COPステートコマンドの実装例。
import hou import viewerstate.utils as su class State(object): def __init__(self, state_name, viewer): self.state_name = state_name self.scene_viewer = viewer def onCommand( self, kwargs ): name = kwargs['command'] args = kwargs['command_args'] if name == "myCOPCommand"': self.log(f"{name}({args})") def createViewerStateTemplate(): """登録するビューアステートテンプレートを作成/返すために必須のエントリポイント。""" state_typename = "mycopstate" state_label = "My COP State" state_cat = hou.copNodeTypeCategory() template = hou.ViewerStateTemplate(state_typename, state_label, state_cat) template.bindFactory(State) template.bindIcon("MISC_python") return template
コマンドの呼び出し方法は以下の通りです。
import viewerstate.utils as ut v = ut.findCompositorViewer() v.runStateCommand("myCOPCommand", {"arg0":0, "arg1":[1,2,3]})
curViewport()
→ hou.Viewport2D
このビューアの現在のビューポートを返します。 現在のビューポートとは、マウスカーソルが含まれているビューポートのことです。
showHandle(name, value)
現在のツールステートにリンクされたディスプレイハンドルを表示または非表示にします。
このAPIは、通常ではPythonステートで使用し、Pythonステートコールバックからコールすることができます。
PythonステートコンストラクタからshowHandleをコールすると、ランタイムエラーが発生してしまうので、showHandleコールは避けてください。
hou.Handle.showも参照してください。
name
hou.ViewerStateTemplate.bindHandleで指定されたハンドルまたはビルトインHoudiniハンドルの名前。
value
Bool値。
Trueを設定するとハンドルが表示され、Falseに設定するとハンドルが非表示になります。
bindViewerHandle(handle_type, name, settings=None, cache_previous_parms=False, handle_parms=None)
hou.ViewerStateTemplate.bindHandleと同様に、動的なビューアハンドルを現在のビューアステートにバインドします。
ただし、bindHandleとは異なり、このメソッドはハンドルを動的に作成して初期化するため、ビューアステートにハンドルを事前に登録する必要はありません。
bindViewerHandleは、Houdini内のほぼどこからでも(ビューアステートハンドラ内やPythonスクリプト内などから)コールすることができますが、ビューアステートが実行中の間のみコールすることができます。
bindViewerHandleで追加されたビューアハンドルを削除するには、hou.SceneViewer.unbindViewerHandleを使用してください。
Houdiniは、ステートを抜けた時に、bindViewerHandleで追加されたすべてのビューアハンドルを自動で削除します。
このメソッドは、Pythonステートでのみ動作し、ステートがPythonステートでない場合は例外が発生します。
handle_type
ハンドルタイプの名前の文字列。 選択できるハンドルタイプのリストは、ステートのハンドルタイプを参照してください。
name
ハンドルの識別に使用する文字列。各バインドの名前は、 このステート内 では必ず固有にしてください。2回以上同じ名前のバインドを試すと例外が発生します。
settings
ハンドル固有の設定を含んだ文字列。複数の設定は、スペースで区切って指定してください。
cache_previous_parms
Trueの場合、そのハンドルが以前の値の記録を維持します。これは、例えばユーザがハンドルをドラッグした速さを調べるためにユーザがハンドルを動かした時の差分を計算するコードを記述する場合に便利です。
handle_parms
有効にしたいパラメータが指定されたハンドルパラメータ名の配列。
この配列に含まれているパラメータのみがPythonステートコールバックで利用可能になります。
handle_parmsが空っぽ(デフォルト)の時は、すべてのハンドルパラメータが有効になります。
bindViewerHandleStatic(handle_type, name, bindings, settings=None)
hou.ViewerStateTemplate.bindHandleStaticと同様に、静的なビューアハンドルを現在のビューアステートにバインドします。
ただし、bindHandleStaticとは異なり、このメソッドはハンドルを動的に作成して初期化するため、ビューアステートにハンドルを事前に登録する必要はありません。
bindViewerHandleStaticは、Houdini内のほぼどこからでも(ビューアステートハンドラ内やPythonスクリプト内などから)コールすることができますが、ビューアステートが実行中の間のみコールすることができます。
bindViewerHandleStaticで追加されたビューアハンドルを削除するには、hou.SceneViewer.unbindViewerHandleを使用してください。
Houdiniは、ステートを抜けた時に、bindViewerHandleStaticで追加されたすべてのビューア
ハンドルを自動で削除します。
このメソッドは、Pythonステートでのみ動作し、ステートがPythonステートでない場合は例外が発生します。
handle_type
ハンドルタイプの名前の文字列。
name
ハンドルの識別に使用する固有の文字列。各バインドの名前は、 このステート内 では必ず固有にしてください。2回以上同じ名前のバインドを試すと例外が発生します。
bindings
("node_parm_name", "handle_parm_name")タプルのリスト。これは、ハンドルの一部をノードの個々のパラメータにバインドします。
settings
ハンドル固有の設定を含んだ文字列。複数の設定は、スペースで区切って指定してください。
unbindViewerHandle(name)
現在のPythonステートからビューアハンドルを削除します。
unbindViewerHandleは、hou.SceneViewer.bindViewerHandleまたはhou.SceneViewer.bindViewerHandleStaticを使用して動的に追加されたビューアハンドルのみをバインド解除することができます。
バインド解除するビューアハンドルがステート登録済みのビューアハンドルである場合は例外が発生します。
このメソッドは、Pythonステートでのみ動作し、ステートがPythonステートでない場合は例外が発生します。
name
バインド解除するビューアハンドルの名前。
これは、bindViewerHandleまたはbindViewerHandleStaticを使用してハンドルをバインドした時に使用された名前です。
hudInfo(show=-1, state=None, template=None, values=None, panel=hou.hudPanel.ToolInfo, terminate=False, update_hotkey_bindings=False)
実装されていません。
clearPromptMessage()
実装されていません。
setPromptMessage(msg, msg_type = None)
実装されていません。
selectDrawableGeometry(drawable_selection, selection_modifier=None)
実装されていません。
beginStateUndo(label)
実装されていません。
endStateUndo()
実装されていません。
カラー補正 ¶
これらの関数は、ビューアのOpenColorIO設定を設定または照会します(OpenColorIO対応を参照)。
usingOCIO()
→ bool
ビューアのカラー補正にOpenColorIOが使用されているかどうかを照会します。
setUsingOCIO(enable)
ビューアのカラー補正でOpenColorIOを有効または無効にします。
setOCIODisplayView(display="", view="")
OpenColorIOの表示名、ビュー名、または両方を設定します。 表示とビューはどちらもビューアの出力カラー空間を定義し、任意の数のカラー変換(Looks)が線形ビューポート画像に対して実行されます。
getOCIODisplay()
→ str
カラー補正で使用されている現在のOpenColorIO表示を返します。
getOCIOView()
→ str
カラー補正で使用されている現在のOpenColorIOビューを返します。
Methods from hou.PaneTab ¶
name()
→ str
このタブの名前を返します。
setName(name)
このペインタブの名前を設定します。ペインタブの名前にはスペースを含めることができます。
この名前は、そのタブの内部名で、インターフェースで表示される名前とは異なることに注意してください。
type()
→ hou.paneTabType列挙値
このタブのタイプ(つまり、scene viewer, parameter editor, network editorなど)を返します。
setType(type)
→ hou.PaneTab
指定したタイプの新しいペインタブを作成し、このタブをその新しいタブに置換し、その新しいペインタブを返します。 このタブの参照が無効になるので、それ以降は、返されたペインタブを使用してください。
close()
ペインタブを閉じます。
pane()
→ hou.Pane or None
このペインタブを含んだデスクトップ内のペインを返します。 通常のフローティングパネルには1個以上のペインを含むので、通常のフローティングパネル内のペインタブは、常にペイン内にあります。
とはいえ、いくつかのフローティングパネルでは、特定のペインタブタイプだけを含むように、それ以外の内容が取り除かれており、 複数のペインタブを追加したり、ペインを分割するといったユーザインターフェースを表示しません。 このメソッドは、そのような余計なものが取り除かれたパネルに対してはNoneを返します。
floatingPanel()
→ hou.FloatingPanel or None
このペインタブが含まれたフローティングパネルを返します。このペインタブがフローティングパネル内になければNoneを返します。
isCurrentTab()
→ bool
このタブが、それが含まれているペイン内で選択されたタブかどうか返します。
setIsCurrentTab()
このタブを、それが含まれているペイン内で選択されたタブとして設定します。
isFloating()
→ bool
このペインタブがフローティングパネル内にあるかどうか返します。
このメソッドはほぼ以下のように実装されています:
def isFloating(self): return self.pane() is None or self.pane().floatingPanel() is not None
clone()
→ hou.PaneTab
ペインタブから複製されたフローティングパネルを作成し、そのクローンペインタブを返します。 その新しいペインタブは、新しいフローティングパネル内にあります。
linkGroup()
→ hou.paneLinkType列挙値
このペインタブが属するリンクグループを返します。
hou.PaneTab.isPinも参照してください。
setLinkGroup(group)
このペインタブのリンクグループメンバーシップを設定します。
isPin()
→ bool
このペインタブがピン留めされているかどうか返します。このメソッドは、(self.linkGroup() == hou.paneLinkType.Pinned)と等価です。
hou.PaneTab.linkGroupも参照してください。
setPin(pin)
pinがTrueなら、リンクグループメンバーシップをhou.paneLinkType.Pinnedに設定します。
それ以外の場合、それをhou.paneLinkType.FollowSelectionに設定します。
このメソッドは、以下のようにhou.PaneTab.setLinkGroupを使用して実装することができます:
def setPin(self, pin): if pin: self.setLinkGroup(hou.paneLinkType.Pinned) else: self.setLinkGroup(hou.paneLinkType.FollowSelection)
hou.PaneTab.setLinkGroupも参照してください。
size()
→ tuple
of int
ペインタブの幅と高さを含んだ2タプルを返します。
この幅と高さは、その中身の領域、(もしあれば)ネットワークナビゲーションコントロールの領域、境界を含みます。
この幅と高さは、ペインタブのタブ領域を含みません。
contentSize()
→ tuple
of int
ペインタブの中身の領域の幅と高さを含んだ2タプルを返します。
この幅と高さは、(もしあれば)ネットワークナビゲーションコントロールの領域、ペインタブの境界、ペインタブの領域を含みません。
hasNetworkControls()
→ bool
このペインタブタイプがネットワークコントロールに対応していればTrueを返します。
isShowingNetworkControls()
→ bool
このペインタブがネットワークコントロールバーを表示しているかどうかを返します。 ペインタブがネットワークコントロールを持っていない場合はFalseを返します。 hou.PaneTab.hasNetworkControlsも参照してください。
setShowNetworkControls(pin)
ネットワークコントロールバーを表示/非表示します。 ペインタブがネットワークコントロールを持っていない場合は何の効果もありません。 hou.PaneTab.hasNetworkControlsも参照してください。
このメソッドは廃止されました。代わりにshowNetworkControlsを使用してください。
showNetworkControls(pin)
ネットワークコントロールバーを表示/非表示します。 ペインタブにネットワークコントロールがない場合は何の効果もありません。 hou.PaneTab.hasNetworkControlsも参照してください。
displayRadialMenu(menu)
指定したRadialメニューをペインタブ内で起動します。
qtParentWindow()
→ QWidget
このペインタブを含んだウィンドウを表現したPySide6.QtWidgets.QWidgetインスタンスを返します。
qtScreenGeometry()
→ QRect
このペインタブのジオメトリをPySide6.QtCore.QRectオブジェクトとして返します。
返されるQRectオブジェクトのxとyのプロパティは、スクリーン座標におけるこのペインタブの左上コーナーを指します。
Methods from hou.PathBasedPaneTab ¶
cd(path)
currentNode()
→ Node
pwd()
→ Node
setCurrentNode(node, pick_node = True)
setPwd(node)