On this page | |
Inheritance |
|
概要 ¶
ビューア は、シーンを表示するタイプのペインです。 このビューアの内容は、概念的に ビューポート に分かれています。 デフォルトでは、シーンビューアは、Perspectiveビューの単一ビューポートを表示します。 しかし、ビューレイアウトコントロールを使用することで、例えば、そのビューを4つのビューポート(Perspective、Top、Front、Rightのビュー)に分割することができます。 ビューポートは、実際にシーンをユーザに表示するインターフェースのパーツです。
シーンビューアの参照を取得するには、以下の方法を参照してください:
hou.ui.paneTabOfType(hou.paneTabType.SceneViewer)
を使用することで、現行ペインレイアウト内のScene Viewerペインタブを取得することができます。
現行レイアウトにScene Viewerペインタブがない場合、これはNone
を返します。
マルチビューアレイアウトの場合でも正しくビューアを取得できるようにしたいのであれば、hou.ui.curDesktopを参考に、現行ペインレイアウトを表現したhou.Desktopオブジェクトを取得し、hou.Desktop.sceneViewersを参考に、その現行レイアウト内のScene Viewerペインタブのリストを取得すると良いでしょう。
メソッド ¶
現行選択 ¶
currentGeometrySelection()
→ hou.GeometrySelection
ビューアがジオメトリ選択モードの場合は現在のジオメトリ選択を返し、 それ以外の場合はNoneを返します。
setCurrentGeometrySelection(geometry_type, nodes, selections)
ビューアがジオメトリ選択モードの場合は現在のジオメトリ選択を置換し、
それ以外の場合はhou.NotAvailableを引き起こします。
指定した選択がgeometry_type
に合致していない場合は、可能な限りそのgeometry_type
に自動的に変換されます。
currentSceneGraphSelection()
→ tuple of string
シーンビューア内のプリミティブ選択のシーングラフパスのタプルを返します。
setCurrentSceneGraphSelection(selection, fix_selection_paths=True)
現行シーングラフプリミティブ選択を設定します。
fix_selection_paths
をTrue
に設定すると、selection
内の空っぽのパスまたは無効なパスが自動的に修復されます。
False
に設定すると、無効なパスはhou.ValueErrorを引き起こします。
currentGeometrySelectionParm()
→ string
ビューアがスクリプトによる選択を行なっている場合の現在のジオメトリ選択パラメータ文字列を返します。
この文字列には、selectGeometry
などのメソッドに渡されたselect_parm
引数が格納されます。
選択のプロンプト ¶
selectObjects(prompt='Select objects', sel_index=0, allow_drag=False, quick_select=False, use_existing_selection=True, allow_multisel=True, allowed_types=('*',), icon=None, label=None, prior_selection_paths=[], prior_selection_ids=[], prior_selections=[], toolbox_templategroup=None, toolbox1_templategroup=None, select_parm="")
→ tuple of Nodes
selectGeometry(prompt='Select geometry', sel_index=0, allow_drag=False, quick_select=False, use_existing_selection=True, initial_selection = None, initial_selection_type = None, ordered=False, geometry_types=(), primitive_types=(), allow_obj_sel=True, icon=None, label=None, prior_selection_paths=[], prior_selection_ids=[], prior_selections=[], allow_other_sops=True, consume_selections=True, toolbox_templategroup=None, toolbox1_templategroup=None, confirm_existing=False, pick_at_obj_level=False, select_parm="")
→ GeometrySelection
selectPositions(prompt='Click to specify a position', number_of_positions=1, min_number_of_positions=-1, connect_positions=True, show_coordinates=True, bbox=BoundingBox(), position_type=positionType.WorldSpace, icon=None, label=None, toolbox_templategroup=None, toolbox1_templategroup=None, select_parm="")
→ tuple of Vector3s
selectOrientedPositions(prompt='Click to specify a position', number_of_positions=1, min_number_of_positions=-1, connect_positions=True, show_coordinates=True, bbox=BoundingBox(),icon=None, label=None, toolbox_templategroup=None, toolbox1_templategroup=None, select_parm="")
→ tuple of (Vector3, Matrix3) tuples
このメソッドは、hou.SceneViewer.selectPositionsに非常に似ていますが、位置のタイプが常にワールド空間で、位置のタプルではなく、
(position, orientation)
のペアのタプルを返します。このposition
はhou.Vector3で、orientation
はhou.Matrix3です。
これによって、基準平面や整列などの向きの補助が必要な時に、ユーザに向きと位置を促すことができます。
selectDynamics(prompt='Select dynamics objects', sel_index=0, allow_objects=True, allow_modifiers=False, quick_select=False, use_existing_selection=True, allow_multisel=True, icon=None, label=None, prior_selection_paths=[], prior_selection_ids=[], prior_selections=[], toolbox_templategroup=None, toolbox1_templategroup=None, select_parm="")
→ tuple of hou.DopData
selectDynamicsPoints(prompt='Select dynamics points', sel_index=0, quick_select=False, use_existing_selection=True, allow_multisel=True, only_select_points=True, object_based_point_selection=False, use_last_selected_object=False, icon=None, label=None, prior_selection_paths=[], prior_selection_ids=[], prior_selections=[], toolbox_templategroup=None, toolbox1_templategroup=None, select_parm="")
→ tuple of (hou.DopData, hou.GeometrySelection)
selectDynamicsPolygons(prompt='Select dynamics polygons', sel_index=0, quick_select=False, use_existing_selection=True, object_based_point_selection=False, use_last_selected_object=False, icon=None, label=None, prior_selection_paths=[], prior_selection_ids=[], prior_selections=[], toolbox_templategroup=None, toolbox1_templategroup=None, select_parm="")
→ tuple of (hou.DopData, hou.GeometrySelection)
selectSceneGraph(prompt='Select primitives', preselection=[], prim_mask=hou.scenePrimMask.ViewerSetting, quick_select=False, use_existing_selection=True, confirm_existing=False, allow_multisel=True, allow_drag=True, propagate_selection=True, path_prefix_mask='', prim_kind='', validate_selection_for_node=None, select_parm='', allow_kind_mismatch=hou.optionalBool.NoOpinion, allow_instance_proxies=hou.optionalBool.NoOpinion, fix_preselection_paths=True)
→ tuple of string
selectSceneGraphInstances(prompt='Select point instances', preselection=[], quick_select=False, use_existing_selection=True, confirm_existing=False, allow_multisel=True, allow_drag=True, path_prefix_mask="", instance_level=0, instance_indices_only=False, validate_selection_for_node=None, select_parm="")
→ tuple of string
stageSerial()
→ int
Scene Graph Viewデータが変更される度に増加する整数。 大きな変更が起きた場合にのみ数値が上がり、無駄に1が増えるわけではありません。
locateSceneGraphPrim(x, y)
→ (float, string)
指定したピクセル座標に位置するプリミティブを検索します。 当たった位置におけるスクリーン深度とプリミティブパスのタプルを返します。 何もプリミティブが見つからなかった場合は(-1, “”)を返します。
Viewerステート ¶
currentState()
→ string
ビューアの現行ツールステートの名前を返します。
setCurrentState(state, wait_for_exit=False, generate=hou.stateGenerateMode.Insert, request_new_on_generate=True, ex_situ_generate=False)
ビューアの現行ツールステートを設定します。 wait_for_exitがTrueなら、この関数は、ビューアがツールを抜けるまで戻りません。
generate
新しいノードの生成方法、インラインまたは新しい分岐への挿入方法を指定したhou.stateGenerateMode列挙値。
request_new_on_generate
いくつかのステートは、可能な限り現行ノードを再使用します。この引数をTrueに設定すると、そのようなステートが新しいノードを生成するように要求します。
ex_situ_generate
一部のViewerステートは、一時的な選択からセレクターを初期化したり、または、ノード生成中に選択をクックするといったことを行ないます。 そのようなアクションは、ステートをその場で起動する場合には辻褄が合うものの、そのスクリプトがまず最初にネットワークレベルまたは表示ノードを変えたりする場合だと、 そのスクリプトを発動した時にステートが開始するビューアコンテキストはユーザが見ているビューアコンテキストと異なるので、望ましくありません。 この引数をTrueに設定すると、ノード生成時点におけるビューアコンテキストがユーザが求めているビューアコンテキストと同じであると想定しないようにステートに指示します。
enterCurrentNodeState(wait_for_exit=False)
ビューアを、最後に選択したノードのノード固有のツールステートにします。 wait_for_exitがTrueなら、この関数はビューアがツールを抜けるまで戻りません。
enterViewState(wait_for_exit=False)
ビューアをビューツールステートにします。 wait_for_exitがTrueなら、この関数はビューアがツールを抜けるまで戻りません。
enterTranslateToolState(wait_for_exit=False)
ビューアを移動ツールステートにします。 これは、移動ツールをサポートしているノードコンテキストでのみ利用可能です。 wait_for_exitがTrueなら、この関数はビューアがツールを抜けるまで戻りません。
enterRotateToolState(wait_for_exit=False)
ビューアを回転ツールステートにします。 これは、移動ツールをサポートしているノードコンテキストでのみ利用可能です。 wait_for_exitがTrueなら、この関数はビューアがツールを抜けるまで戻りません。
enterScaleToolState(wait_for_exit=False)
ビューアをスケールツールステートにします。 これは、移動ツールをサポートしているノードコンテキストでのみ利用可能です。 wait_for_exitがTrueなら、この関数はビューアがツールを抜けるまで戻りません。
beginStateUndo(label)
現行のViewer StateでUndo可能な処理を実行するためにUndoブロックを開きます。 これを開いた後に実行されたすべての処理がUndoスタック上に1個の処理として記録されます。 開いたブロックを閉じるには、hou.SceneViewer.endStateUndoを使用します。
beginStateUndo
とendStateUndo
を使用することで、ある関数で開始して他の関数で終了するUndoブロックを管理することができます。
一連のUndo可能な処理では、1個のUndoブロックしか対応していません。
UndoブロックをendStateUndo
で閉じる前に2番目のbeginStateUndo
コールが検出されると、例外が引き起こされます。
有効なUndoブロックのPythonステートの例:
def onMouseEvent(self, kwargs): ui_event = kwargs["ui_event"] node = kwargs["node"] if ui_event.reason() == hou.uiEventReason.Start: # 左マウスボタンが押された場合 self.scale = node.parent().parm("scale").evalAsFloat() self.scene_viewer.beginStateUndo('scale') if ui_event.reason() == hou.uiEventReason.Active: # 左マウスボタンを押したままマウスを動かしている場合 self.scale *= 1.01 node.parent().parm("scale").set(self.scale) if ui_event.reason() == hou.uiEventReason.Changed: # 左マウスボタンが離された場合 self.scene_viewer.endStateUndo()
例外を引き起こす無効なUndoブロックの例:
def onMouseEvent(self, kwargs): ui_event = kwargs["ui_event"] node = kwargs["node"] if ui_event.reason() == hou.uiEventReason.Start: # 左マウスボタンが押された場合 self.tx = node.parent().parm("tx").evalAsFloat() self.scale = node.parent().parm("scale").evalAsFloat() self.scene_viewer.beginStateUndo('scale') if ui_event.reason() == hou.uiEventReason.Active: # 左マウスボタンを押したままマウスを動かしている場合 self.scale *= 1.01 node.parent().parm("scale").set(self.scale) self.scene_viewer.beginStateUndo('move x') self.tx += 0.2 node.parent().parm("tx").set(self.tx) self.scene_viewer.endStateUndo() if ui_event.reason() == hou.uiEventReason.Changed: # 左マウスボタンが離された場合 self.scene_viewer.endStateUndo()
label
EditメニューのUndo操作の表示に使用するUndoブロックのラベル。このラベルが空っぽの場合は例外が引き起こされます。
endStateUndo()
hou.SceneViewer.beginStateUndoで以前に開いたUndoブロックを閉じます。
endStateUndo
は、beginStateUndo
の前にコールされると例外を引き起こします。
showHandle(name, value)
現行のツールステートにリンクされた表示ハンドルを表示または非表示にします。
このAPIは、通常ではPythonステートで使用し、少し注意が必要ですが、どのPythonステートコールバックからでもコールすることができます。
PythonステートコンストラクタからshowHandle
をコールしないようにしてください。コールしてしまうと、ランタイムエラーが発生してしまいます。
hou.Handle.showも参照してください。
name
hou.ViewerStateTemplate.bindHandleで指定したハンドルの名前。
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を使用します。
ビューアステートを抜けると、bindViewerHandle
を使って追加されたすべてのビューアハンドルはHoudini側で自動的に除去されるので、手動で行なう必要はありません。
このメソッドは、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を使用します。
ビューアステートを抜けると、bindViewerHandleStatic
を使って追加されたすべてのビューアハンドルはHoudini側で自動的に除去されるので、手動で行なう必要はありません。
このメソッドは、Pythonステートでのみ動作し、ビューアステートがPythonステートでない場合は例外が引き起こされます。
handle_type
ハンドルタイプの名前の文字列。
name
ハンドルの識別に使用する固有の文字列。各バインドの名前は、 このステート内 では必ず固有にしてください。2回以上同じ名前のバインドを試すと例外が発生します。
bindings
("node_parm_name", "handle_parm_name")
タプルのリスト。これは、ハンドルの一部をノードの個々のパラメータにバインドします。
settings
ハンドル固有の設定を含んだ文字列。複数の設定は、スペースで区切って指定してください。
unbindViewerHandle(name)
現在のPythonステートからビューアハンドルを除去します。
hou.SceneViewer.bindViewerHandleまたはhou.SceneViewer.bindViewerHandleStaticを使って動的に追加されたビューアハンドルは、unbindViewerHandle
でしかバインド解除できません。
バインド解除するビューアハンドルがビューアステートに登録済みのハンドルだった場合は例外が引き起こされます。
このメソッドは、Pythonステートでのみ動作し、ビューアステートがPythonステートでない場合は例外が引き起こされます。
name
バインド解除するビューアハンドル名。
これは、bindViewerHandle
またはbindViewerHandleStatic
を使ってハンドルをバインドした時に使用した名前です。
openVisualizerEditor(visualizer)
指定したViewportVisualizerが存在している場合、そのビジュアライザのインタラクティブビジュアライザエディタダイアログを開きます。
openOptionDialog(path, label)
Display Optionsダイアログを開いて、指定したラベルをハイライトします。
path
ラベルが属しているタブとグループをコロン区切りの文字列(例えば、“Geometry:Volume Quality”)で指定します。
label
ハイライトされるラベル。
triggerStateSelector(action, name=None)
現行ステートのセレクターに対してアクションをトリガーします。 このステートはPythonステートタイプでなければなりません。 そうでない場合は例外が発生します。
action
hou.triggerSelectorActionで指定したとおりにトリガーさせるアクションのタイプ。
name
トリガーさせるセレクターの名前。 この名前は、セレクターの登録に使用した名前に合わせてください。 詳細は、hou.ViewerStateTemplate.bindGeometrySelectorまたはhou.ViewerStateTemplate.bindObjectSelectorを参照してください。
最初に登録されたステートのセレクターをトリガーさせたいのであれば、ここを空っぽ(デフォルト)のままにします。
指定したname
が不明なセレクターであれば例外が発生します。
currentStateSelector()
→ string
現行ステートのセレクターの名前を返します。 セレクターがアクティブでない場合は、空っぽの文字列が返されます。 このステートはPythonステートタイプでなければなりません。 そうでない場合は例外が発生します。
runStateCommand(name, args=None)
アクティブなPythonステートによって実装されたコマンドを実行します。 名前識別子と入力引数を一緒に指定することで、ステートコマンドを呼び出すことができます。
そのステートがPythonステートタイプでない、または、そのステートが実行中でない場合には例外が引き起こされます。
name
コマンド名識別子。
args
コマンド固有の引数を保持したpython
オブジェクト。デフォルトはNoneです。
ステートコマンドを実装したサンプル。
import hou import viewerstate.utils as su class State(object): def __init__(self, state_name, scene_viewer): self.state_name = state_name self.scene_viewer = scene_viewer self.text_size = 5 self.text_color = 'yellow' # ビューポート内にテキスト文字列を描画するためのDrawable self.text_drawable = hou.TextDrawable(self.scene_viewer, 'text_drawable_name', params = {'margins': (10.0,-10.0), 'origin' : hou.drawableTextOrigin.UpperLeft, 'multi_line' : True} ) self.text_drawable.show(True) def onCommand( self, kwargs ): # ビューポートテキストを更新するコマンド name = kwargs['command'] args = kwargs['command_args'] state_parms = kwargs['state_parms'] if name == 'update_text': # 設定を更新 state_parms['text']['value'] = args['text']; self.text_color = args['color'] self.text_size = args['size'] # ビューポートを再描画 self.scene_viewer.curViewport().draw() def onDraw( self, kwargs ): # ビューポートの左上にテキストを描画 handle = kwargs['draw_handle'] state_parms = kwargs['state_parms'] (x,y,width,height) = self.scene_viewer.curViewport().size() text = '<font color="%s", size=%d>%s</font>' % (self.text_color, self.text_size, state_parms['text']['value']) self.text_drawable.draw( handle, params = {'text': text, 'translate': (0.0, height, 0.0)} ) def registerState(): state_typename = kwargs['type'].definition().sections()['DefaultState'].contents() state_label = "State command demo" state_cat = hou.objNodeTypeCategory() template = hou.ViewerStateTemplate(state_typename, state_label, state_cat) template.bindFactory(State) template.bindParameter( hou.parmTemplateType.String, name="text", label="Text", default_value="Lorem ipsum dolor sit amet." ) hou.ui.registerViewerState(template) def unregisterState(): state_typename = kwargs['type'].definition().sections()['DefaultState'].contents() try: hou.ui.unregisterViewerState(state_typename) except hou.StateNotRegistered: pass except: raise
以下のコードは、コマンドの呼び出し方の例です。
import toolutils args = { 'text': text, 'color': color, 'size': size } toolutils.sceneViewer().runStateCommand( 'update_text', args = args )
geometryVisibility(sop_node)
setGeometryVisibility
がコールされてジオメトリが非表示になっていればFalse
を返します。そうでない場合はTrue
を返します。
そのジオメトリが現行ビューポートにない場合はhou.InvalidInputを引き起こします。
setGeometryVisibility(sop_node, on)
指定したジオメトリノードに対してビューポートの可視性オーバーライドを制御します。
Python Stateでこれを使用することで、そのPython StateがDrawableを使って代用のビジュアライゼーションを描画する際に一時的にビューポートのジオメトリを非表示にすることができます。
このビューポートのジオメトリの可視性は持続せず、ディスプレイフラグを切り替えたり、または、ノードを再選択した時にTrue
に戻されます。
そのジオメトリが現行ビューポートにない場合はhou.InvalidInputを引き起こします。
selectDrawableGeometry(drawable_selection, selection_modifier=hou.pickModifier.Replace)
Drawableジオメトリ選択を実行します。
このメソッドは、Drawableセレクターが実行中の時にのみ動作し、
セレクターを実装したPythonステートまたは通常のPythonスクリプトのどちらかからコールすることができます。
このメソッドをコールすると、PythonステートのonSelection
ハンドラーが発動されます。
Drawableセレクターが実行中でない場合はhou.OperationFailed、入力の引数が無効な場合はhou.InvalidInputを引き起こします。
drawable_selection
選択するDrawableエレメントを示した辞書。 この辞書の内容はここで説明されています。
selection_modifier
選択用の選択修飾子。デフォルトはhou.pickModifier.Replaceです。
モデリング ¶
constructionPlane()
→ hou.ConstructionPlane
このビューアのペースペクティブビューポート内の基準平面(またはグリッド)を返します。
詳細は、hou.ConstructionPlaneを参照してください。
referencePlane()
→ hou.ReferencePlane
このビューアのPerspectiveビューポート内の基準平面(またはグリッド)を返します。
詳細は、hou.ReferencePlaneを参照してください。
showCurrentSopGeometry(value)
現行SOPノードのジオメトリディスプレイフラグを有効/無効に設定します。 このフラグが有効な場合、ビューポートは、そのノードに取り付けられているジオメトリを表示します。 無効な場合、ジオメトリを非表示にします。 SOPステートに入ると、デフォルトではこのフラグは有効になっています。
下流ノードに対してディスプレイフラグをTrueに設定し、そして上流ノードを選択するという状況を考えてみましょう。
ノードのステートに入ると、通常ではビューポートは上流ノードのジオメトリをワイヤーフレームで表示し、ディスプレイノードをシェーディングします。
一部の場合では、ステートに入れば、下流ノードで結果が非常に上手く可視化される選択ノードのパラメータを設定したいです。
この場合だと、showCurrentSopGeometry
を使用することで、上流ノードのジオメトリの表示をオフにすることができます。
Note
SOP Pythonステートに関しては、Houdiniは、そのステートに入った時に現行ノードのジオメトリディスプレイフラグを思い出し、ステートから出た時に元の値に設定を戻します。
isShowingCurrentSopGeometry(value)
→ bool
現行ノードのジオメトリディスプレイフラグを返します。hou.SceneViewer.showCurrentSopGeometryを参照してください。
ビュー分割 ¶
curViewport()
→ hou.GeometryViewport
このビューアの現行ビューポートを返します。現行ビューポートは、マウスカーソルを含んだビューポートです。 このカーソルがビューポートになかった場合は、選択またはアクティブなビューポートが返されます。
selectedViewport()
→ hou.GeometryViewport
このビューアの選択されたビューポートを返します。 ビューポートは、Spaceを押しながらNキーを押すことで選択することができます。
viewportLayout()
→ hou.geometryViewportLayout
現在のビューポートレイアウトをhou.geometryViewportLayout値として返します。
setViewportLayout(layout, single=-1)
ビューアのビューポートレイアウトを設定します。
layout
hou.geometryViewportLayout値。例えば、ビューアに四画面ビューポートを表示させるには:
viewer_pane.setViewportLayout(hou.geometryViewportLayout.Quad)
single
hou.geometryViewportLayout.Singleレイアウトを指定した場合、この引数には、四画面ビューポートから単一ビューポートとして表示させるビューポートを指定することができます。
|
現在のビューポートを使用します(マウス下のビューポート)。 |
|
四画面レイアウトから左上ビューポートを使用します(通常はTopビュー)。 |
|
四画面レイアウトから右上ビューポートを使用します(通常はPerspectiveビュー)。 |
|
四画面レイアウトから左下ビューポートを使用します(通常はFrontビュー)。 |
|
四画面レイアウトから右下ビューポートを使用します(通常はRightビュー)。 |
setPromptMessage(msg, msg_type=promptMessageType.Prompt)
スクリーンの下部にメッセージを表示するビューポートを設定します。
msg
表示するテキストメッセージ。
msg_type
表示するメッセージのタイプを表現したhou.promptMessageType値。 デフォルトはhou.promptMessageType.Promptです。
clearPromptMessage()
hou.SceneViewer.setPromptMessageを使って以前に設定したプロンプトメッセージをクリアします。
flashMessage(imagefile, msg, duration=1.0, [Hom:hou.GeometryViewport] = None)
シーンビューアの左上コーナーにメッセージを一時的に表示します。 指定した画像ファイルは、そのメッセージの前にスケールされて配置されます。 このメッセージは、指定した秒数でフェードアウトします。 オプションのhou.GeometryViewportを使用することで、ビューアの特定のビューポートにメッセージを描画することができます。
hudInfo(show=-1, state=None, template=None, values=None, panel=hou.hudPanel.ToolInfo, terminate=False)
ビューア内に読み込み専用のヘッドアップディスプレイパネルを作成、更新、制御します。 このHUDパネルは、ビューポートの分割線を越えて広がります。
このインターフェースは実験段階であり、変更される可能性があります。詳細は、PythonステートInfoパネルを参照してください。
-
ツール/ステートが変更されると、Houdiniは自動的にこのHUDパネルをクリアします。
-
ユーザが⇧ Shift + F1を押すと、Houdiniは自動的にこのHUDパネルを非表示/表示します。
show
Trueの場合、HUDが表示され、Falseの場合、HUDが非表示になります。 このオプションは、3つの値(None、True、False)を持っており、デフォルトでは無視されます。
state
hou.hudPanel.ToolInfoパネルのディスプレイステートを指定します。詳細は、hou.hudInfoStateを参照してください。
template
表示する情報を書式化するためにHUDテンプレートを記述した辞書。
values
HUDで表示される情報を更新するための値の辞書。
panel
HUDのレイアウトとホーム位置を指定するための識別子。デフォルトはhou.hudPanel.ToolInfoです。
terminate
panel
から特定されたHUDを削除し、そのHUDがビューポートに現在表示されていれば、そのビューポートからそのHUDを外します。
他の引数は無視されます。
デフォルトはFalseです。
詳細は、ビューアのHUD情報パネルを参照してください。
hotkeyAssignments(hotkey_symbols)
→ tuple
of tuple
of str
ホットキーシンボルのタプルに関連付けられている各アクションに現在割当ら得ているホットキーを表現した文字列のタプルを返します。
このキー文字列はhou.ui.hotkeysメソッドが返す形式で、"Ctrl+Shift+G"
のようにそのキーの記号と修飾キーの組み合わせになっています。
スナップ ¶
snappingMode()
setSnappingMode(snapping_mode)
isSnappingToCurrentGeometry()
現行スナップモードに対して現行ジオメトリへのスナップが有効かどうかを返します。
setSnapToCurrentGeometry(on)
現行スナップモードに対して現行ジオメトリへのスナップを有効にするかどうか設定します。
isSnappingToTemplates()
setSnapToTemplates(on)
isSnappingToOtherObjects()
setSnapToOtherObjects(on)
isSnappingToGuides()
→ bool
現行スナップモードに対してガイドへのスナップが有効かどうかを返します。
setSnapToGuides(on)
現行スナップモードに対してガイドへのスナップを有効にするかどうかを設定します。
isDepthSnapping()
setDepthSnapping(on)
isOrientingOnSnap()
setOrientOnSnap(on)
snappingGravity()
: → float
現在のスナッピングモードの重力値を返します。
snappingPriorities()
: → tuple of hou.snappingPriority values
現行スナップモードのhou.snappingPriority値のタプルを返します。 これらの値は、Snap Optionsウィンドウで設定された優先度の順番(降順)で並んでいます。 そのモードに優先度がなければ、空っぽのタプルを返します。
ビューオプション ¶
isPickingVisibleGeometry()
領域ベースの選択を実行した時、ビューアが可視コンポーネントだけをピックするように設定されていればTrueを返します。 このオプションは、コンポーネント選択ボタンのコンテキストメニュー内のマッチングチェックボックスに相当します。
setPickingVisibleGeometry(on)
ボックスやブラシのピックのような領域ベースの選択を実行した時に可視コンポーネントだけを選択するオプションをオン/オフします。
isPickingContainedGeometry()
領域ベースの選択を実行した時、ビューアが、そこに完全に含まれているコンポーネントだけをピックするように設定されていればTrueを返します。 このオプションは、コンポーネント選択ボタンのコンテキストメニュー内のマッチングチェックボックスに相当します。
setPickingContainedGeometry(on)
ボックスやブラシのピックのような領域ベースの選択を実行した時に完全に含まれているコンポーネントだけを選択するオプションをオン/オフします。
setSelectionMode(selection_mode)
このビューの選択モードを設定します。 'selection_mode'の値は、hou.selectionModeからの値でなければなりません。
isGroupPicking()
グループ、アトリビュート、接続性情報を使用して、このビューア内で行なった選択を自動的に広げるならTrueを返します。 このオプションは、コンポーネント選択ボタンのコンテキストメニュー内のマッチングチェックボックスに相当します。
setGroupPicking(on)
ピックベースのグループ、アトリビュート、接続性をオン/オフします。オンの時、グループリストガジェットが自動的に可視になります。
isWholeGeometryPicking()
このビューア内で行なった選択が全体のジオメトリを含むように自動展開するなら、Trueを返します。 このオプションは、コンポーネント選択ボタンのコンテキストメニュー内のマッチングチェックボックスに相当します。
setWholeGeometryPicking(on)
このビューア内で行なった選択を全体のジオメトリを含むように展開するオプションをオン/オフします。
isSecureSelection()
このビューア内で安全選択が有効であればTrueを返します。 このオプションは、選択ツールのコンテキストメニュー内のSecure Selectionオプションに相当します。
setSecureSelection(on)
このビューア内でSecure Selectionオプションをオン/オフします。
isPickingCurrentNode()
このビューア内で行なった選択をCurrent SOPからピックする場合はTrueを返します。 Falseなら、ピックはDisplay SOPに対して行ないます。 このオプションは、コンポーネント選択ボタンのコンテキストメニュー内のcurrent/displayオプションに相当します。
setPickingCurrentNode(on)
このビューアにピックをCurrent SOPに対して行なうのかDisplay SOPに対して行なうのか伝えます。
pickGeometryType()
このビューア内でピックされるジオメトリのタイプを返します。 このオプションは、コンポーネント選択ボタンのコンテキストメニュー内で選択可能なコンポーネントタイプに相当します。
setPickGeometryType(geometry_type)
このビューア内でピックされるジオメトリのタイプを設定します。 この値はユーザによって、またはセレクターが読み出された時にいつでも変更することができます。
pickStyle()
このビューアで現在使用されている領域ピックのスタイルを返します。 このオプションは、選択ツールのコンテキストメニューで指定したピックスタイルに相当します。
setPickStyle(style)
このビューアで使用する領域ピックのスタイルを設定します。
pickModifier()
既存選択と組み合わせられる追加選択の方法を返します。 選択ツールメニューで選択されるようなピックモディファイヤが欲しいのであれば、代わりにhou.SceneViewer.toolPickModifierの使用を検討してください。
setPickModifier(modifier)
新しく選択をした時の既存選択の修正に使用するメソッドを設定します。
さらに修飾キーを使用することで、この挙動を変更することができます。
デフォルトの操作(修飾キーなし)のみがこの設定の影響を受けます。
選択状態は、終了時にデフォルトのピックモディファイヤに戻るので、この状態を維持させるには、setDefaultPickModifier()
を使って、このデフォルトの挙動を変更する必要があります。
defaultPickModifier()
選択状態が終了した後にHoudiniが戻すデフォルトのピックモディファイヤを返します。
setDefaultPickModifier(modifier)
選択状態が終了した後にHoudiniが戻すデフォルトのピックモディファイヤを設定します。
pickFacing()
ユーザが正面または背面、それとも両方のコンポーネントをピックできるのかを示した値を返します。 このオプションは、コンポーネント選択ボタンのコンテキストメニューのFront and Back Facingオプションに相当します。
setPickFacing(facing)
選択を正面、背面、それとも両方のコンポーネントに制限するかどうかのオプションを設定します。
activePickModifier()
このメソッドはhou.SceneViewer.pickModifierと同様ですが、選択ツールメニューで選択されているピックモディファイヤを返します。
isCreateInContext() -> bool
isWorldSpaceLocal() -> bool
本来ならワールド空間の値が実際には現行オブジェクトのローカル空間である場合にTrueを返します。
これは、selectPositions()
, hou.GeometryViewport::mapToScreen()
, hou.GeometryViewport::mapToWorld()
, hou.GeometryViewport().viewPivot()
などの戻り値が該当します。
LOP Viewer Options ¶
isViewingSceneGraph()
→ bool
シーンビューアがLOPsでUSDステージをビューイングしていればTrue
を返します。
stage()
→ Usd.Stage
シーンビューアがLOPsをビューイングしていれば、表示されているUSDステージを返します。
setShowGeometry(show)
LOPsをビューイングした時にシーンジオメトリを表示または非表示にします。
showGeometry()
→ bool
LOPsをビューイングした時にシーンジオメトリが表示されるかどうかを照会します。
setShowCameras(show)
LOPsをビューイングした時にカメラガイドを表示または非表示にします。
showCameras()
→ bool
LOPsをビューイングした時にカメラガイドが表示されるかどうかを照会します。
setShowLights(show)
LOPsをビューイングした時にライトガイドを表示または非表示にします。
showLights()
→ bool
LOPsをビューイングした時にライトガイドが表示されるかどうかを照会します。
setShowSelection(show)
LOPsをビューイングした時に選択ハイライトを表示します。
showSelection()
→ bool
LOPsをビューイングした時に選択ハイライトが表示されるかどうかを照会します。
showRenderStats()
→ bool
LOPsをビューイングした時にレンダラー統計情報が表示されるかどうかを照会します。すべてのレンダラーでこの情報を表示できるわけではありません。
showRenderStats(show)
LOPsをビューイングした時にレンダラー統計情報を表示または非表示にします。
showRenderTime()
→ bool
LOPsをビューイングした時にレンダリング時間と進捗率が表示されるかどうかを照会します。すべてのレンダラーでこの情報を表示できるわけではありません。
showRenderStats(show)
LOPsをビューイングした時にレンダリング時間と進捗率が表示されるかどうかを照会します。
setSelectionKind(kind)
実行されるプリミティブ選択の種類を設定します。
kind
には、USDプリミティブのKind(component, subcomponent, model, group, assembly, leaf primitive)のどれか、または、カスタムKindを指定することができます。
そのKindを認識できなければ例外が引き起こされます。
大文字小文字の区別はありません。
これは、ポイントインスタンス選択がアクティブだった場合のプリミティブ選択の選択モードを設定します。
selectionKind()
→ str
ユーザが選択ステートに入った時に選択される現行プリミティブの種類を照会します。これは、リーフプリミティブが選択されるとNull文字列を返します。
setSelectionAllowKindMismatch(allow)
選択オペレーションが現在のselectionKind
に合致しないプリミティブを返すことを許可します。
これをFalse
に設定すると、ユーザ選択が何も結果を返さないことを意味する場合であっても、選択オペレーションは必ずリクエストしたKindのプリミティブを返すようになります。
例えば、selectionKind
がassembly
で、ユーザがcomponent
モデルの部分のメッシュ上をクリックしても、そのcomponent
がassembly
内に含まれていない場合、何も選択されません。
これをTrue
に設定すると、selectionKind
は要件というよりかはヒントとして扱われます。
このモードでは、リクエストしたselectionKind
に合致しない場合であっても、ユーザ選択は常に何かを返すようになります。
前述の例では、選択オペレーションは、階層のルートに最も近いgroup
プリミティブを返します。
または、もしcomponent
がgroup
内にない場合、そのcomponent
プリミティブが返されます。
または、まったくUSDモデル階層の一部でないプリミティブ(例えば、Cameraプリミティブ)上でユーザがクリックをした場合、リーフ(末端)プリミティブが返されます。
selectionAllowKindMismatch()
選択オペレーションが現在のselectionKind
に合致しないプリミティブを返すことができるかどうかを示したフラグの現在の状態を照会します。
setSelectionAllowInstanceProxies(allow)
選択オペレーションがインスタンスプロキシプリミティブを返すことを許可します。
これをTrue
に設定すると、他のプリミティブとまったく同様に選択オペレーションからインスタンスプロキシプリミティブが選択されて返されます。
これをFalse
に設定すると、次にselectionKind
要件を適用する前に、インスタンスプロキシでないプリミティブが見つかるまで、階層内の上方に向かって選択オペレーション内の各リーフプリミティブが走査されます。次に、このインスタンスルートプリミティブから始まるselectionKind
要件が適用されます。
多くのLOPオペレーションは、インスタンスプロキシプリミティブに対して許可されていません(その理由は、このようなプリミティブ上で表現されているオピニオンはUSDコンポジションシステムでは無視されるからです)。 そのため、最初からこのようなサポートされていないプリミティブをユーザが選択できないようにしておくと役立つ場合が多いです。
selectionAllowInstanceProxies()
選択がインスタンスプロキシプリミティブを返すことができるかどうかを示したフラグの状態を照会します。
setSelectionAllowHiddenPrims(allow)
選択操作が非表示プリミティブを返せるようにします。
True
に設定すると、非表示プリミティブが選択できて選択操作から返されます。
False
に設定すると、selectionKind
要件が適用される前に、選択操作内の各末端プリミティブから階層上位に向かって表示プリミティブが見つかるまで走査されます。次に、そのselectionKind
要件が適用されます。
非表示プリミティブは、シーングラフツリー内の特別なメタデータがマークされたプリミティブです。 通常では非表示プリミティブはシーングラフツリー内に表示されないので、普段はビューアで非表示プリミティブを直接選択できないようにする方が望ましいです。 非表示フラグは、パイプラインの規則に応じて、特にシーングラフ階層内の望ましい位置でのみトランスフォームや他の編集が行なわれるようにプリミティブ選択を制御するのに使用する場合が多いです。
selectionAllowHiddenPrims()
選択が非表示プリミティブを返す場合があるかどうかを示したフラグの状態を照会します。
setSelectionPointInstances(topmost)
ポイントインスタンス選択モードに切り替えます。
topmost
がTrue
の場合、入れ子化されたインスタンスを選択した時にその最上位のポイントインスタンスが選択されます。
topmost
がFalse
の場合、その末端のポイントインスタンス(リーフインスタンス)が選択されます。
ポイントインスタンスが入れ子化されていない場合は、topmost
は何の効果もありません。
isSelectingPointInstances()
→ bool
現行選択ステートがポイントインスタンスを選択していればTrue
を返し、プリミティブを選択していればFalse
を返します。
isSelectingTopmostInstance()
→ bool
インスタンス選択モードが最上位インスタンスレベルを選択していればTrue
、リーフインスタンスレベルを選択していればFalse
を返します。
hydraRenderers()
→ tuple of str
LOPsで利用可能なレンダラーのリストを照会します。
setHydraRenderer(ren_name)
LOPsの現行レンダラーを設定します。
currentHydraRenderer()
→ str
LOPsの現行レンダラーを照会します。
restartRenderer()
LOPs内の現行レンダラーを再起動して、シーンをゼロから再構築します。
resetViewportCamera()
ネイティブビューポートカメラをデフォルト状態にリセットします。 これによって、直近で選択されたUSDカメラから継承されたすべてのカメラ設定がクリアされます。
このメソッドは、ビューポートのカメラメニューからReset Native Viewport Camera
を選択することと同じです。
showProxyPurpose(show_proxy, renderer = None)
LOPsで Proxy Purposeのタグが付いたPrimsを表示(True
)または隠します(False
)。
この値は、レンダラー毎に別々に保存されます。
renderer
がNone
の場合は、現在選択されているレンダラーの値が設定されます。
そうでない場合はrenderer
にはレンダラーの名前を示した文字列を指定します。
showGuidePurpose(show_guide, renderer = None)
LOPsで Guide Purposeのタグが付いたPrimsを表示(True
)または隠します(False
)。
この値は、レンダラー毎に別々に保存されます。
renderer
がNone
の場合は、現在選択されているレンダラーの値が設定されます。
そうでない場合はrenderer
にはレンダラーの名前を示した文字列を指定します。
showRenderPurpose(show_render, renderer = None)
LOPsで Render Purposeのタグが付いたPrimsを表示(True
)または隠します(False
)。
この値は、レンダラー毎に別々に保存されます。
renderer
がNone
の場合は、現在選択されているレンダラーの値が設定されます。
そうでない場合はrenderer
にはレンダラーの名前を示した文字列を指定します。
useViewportOverrides(use_overrides, renderer = None)
ビューアがScene Graph Treeで設定されたオーバーライド(描画モードや可視性など)を適用するかどうかを制御します。
この値は、レンダラー毎に別々に保存されます。
renderer
がNone
の場合は、現在選択されているレンダラーの値が設定されます。
そうでない場合はrenderer
にはレンダラーの名前を示した文字列を指定します。
useViewportLoadMasks(use_loadmasks, renderer = None)
ビューアがScene Graph Treeで設定されたロードマスク(ペイロードの読み込みなど)を適用するかどうかを制御します。
この値は、レンダラー毎に別々に保存されます。
renderer
がNone
の場合は、現在選択されているレンダラーの値が設定されます。
そうでない場合はrenderer
にはレンダラーの名前を示した文字列を指定します。
usePostLayers(use_postlayers, renderer = None)
ビューアがLOPネットワークからポストレイヤーを適用するかどうかを制御します。
この値は、レンダラー毎に別々に保存されます。
renderer
がNone
の場合、現在選択されているレンダラーの値が設定されます。
それ以外の場合、renderer
にはレンダラーの名前を示した文字列を指定します。
showingProxyPurpose(renderer = None)
→ bool
Proxy Purposeが設定されたPrimsがLOPsで表示されていればTrue
を返します。
この値は、レンダラー毎に別々に保存されます。
renderer
がNone
の場合は、現在選択されているレンダラーの値が設定されます。
そうでない場合はrenderer
にはレンダラーの名前を示した文字列を指定します。
showingGuidePurpose(renderer = None)
→ bool
Guide Purposeが設定されたPrimsがLOPsで表示されていればTrue
を返します。
この値は、レンダラー毎に別々に保存されます。
renderer
がNone
の場合は、現在選択されているレンダラーの値が設定されます。
そうでない場合はrenderer
にはレンダラーの名前を示した文字列を指定します。
showingRenderPurpose(renderer = None)
→ bool
Render Purposeが設定されたPrimsがLOPsで表示されていればTrue
を返します。
この値は、レンダラー毎に別々に保存されます。
renderer
がNone
の場合は、現在選択されているレンダラーの値が設定されます。
そうでない場合はrenderer
にはレンダラーの名前を示した文字列を指定します。
usingViewportOverrides(renderer = None)
→ bool
ビューアがScene Graph Treeで設定されたオーバーライド(描画モードや可視性など)を適用していればTrue
を返します。
この値は、レンダラー毎に別々に保存されます。
renderer
がNone
の場合は、現在選択されているレンダラーの値が設定されます。
そうでない場合はrenderer
にはレンダラーの名前を示した文字列を指定します。
usingViewportLoadMasks(renderer = None)
→ bool
ビューアがScene Graph Treeで設定されたロードマスク(ペイロードの読み込みなど)を適用していればTrue
を返します。
この値は、レンダラー毎に別々に保存されます。
renderer
がNone
の場合は、現在選択されているレンダラーの値が設定されます。
そうでない場合はrenderer
にはレンダラーの名前を示した文字列を指定します。
usingPostLayers(renderer = None)
→ bool
ビューアがLOPネットワークで設定されたポストレイヤーを適用している場合はTrue
を返します。
この値は、レンダラー毎に別々に保存されています。
renderer
がNone
の場合は、現在選択されているレンダラーの値が返されます。
そうでない場合はrenderer
にはレンダラーの名前を示した文字列を指定します。
stageControlsPlaybar()
→ bool
このビューアで表示されたステージのメタデータを使用して再生範囲と再生速度が制御されている場合はTrue
を返します。
そうでない場合はFalse
を返します。
setStageControlsPlaybar(controls_playbar)
このビューアで表示されたステージのメタデータを使用して再生範囲と再生速度を設定するかどうかを指定します。 同時に1個のビューアのみがこのオプションを有効にすることができます。 ビューアでこれを有効にすると、他のすべてのビューアではこれが無効になります。
有効にすると、ステージのStartTimeCode
、EndTimeCode
、TimeCodesPerSecond
の値を使用して、それぞれプレイバーの開始フレーム、終了フレーム、FPSのオプションが設定されます。
プレイバーのステップオプションは、ステージのメタデータからTimeCodesPerSecond
/FramesPerSecond
の値で設定されます。
Houdiniのプレイバーは、“フレーム”よりは“タイムコード”というUSDの概念により密接に呼応しています。 このおかげで、USDアニメーションデータの編集が非常に簡単になっています。
sceneGraphStageLocked()
→ bool
LOPネットワークに変更を加えても更新されないようにビューアのUSDステージが現行状態にロックされていればTrue
を返します。
これは、Manual Updateモードと同様ですが、このビューアペインにのみ影響します。
他のすべてのHoudiniペイン(例えば、Scene Graph TreeペインやScene Graph Detailsペイン)は、LOPネットワークによる新しいステージの内容で更新が続きます。
setSceneGraphStageLocked(locked)
LOPネットワークの変更に反応してビューアがステージの内容を更新しないように指示するフラグを設定します。
グループリスト ¶
isGroupListVisible()
グループリストガジェットがこのビューアで有効ならTrueを返します。 この関数は、ビューア内でグループを選択しなかった時にグループリストを表示するオプションを参照するだけです。 その場合、そのグループリストは可視でも、この関数はFalseを返します。
setGroupListVisible(on)
このビューアに対してグループリストガジェットをオン/オフします。
isGroupListColoringGeometry()
グループリストガジェットが、グループメンバーまたはアトリビュート値に基づいてビューア内のジオメトリを色付けるように設定されていればTrueを返します。
setGroupListColoringGeometry(on)
グループリストガジェットが、グループメンバーまたはアトリビュート値に基づいてビューア内のジオメトリを色付けるように設定します。
isGroupListShowingEmptyGroups()
グループリストガジェットのリスト内に空っぽのグループが含まれていればTrueを返します。
setGroupListShowingEmptyGroups(on)
グループリストガジェット内に空っぽのグループを表示します。
isGroupListShowingOnlyPreSelectedGroups()
グループリストが1つ以上の選択または事前選択されたコンポーネントを含んだグループのみを表示していればTrueを返します。
setGroupListShowingOnlyPreSelectedGroups(on)
1つ以上の選択または事前選択されたコンポーネントを含んだグループのみを表示するように、グループリストのトリムを有効にします。
isGroupListCondensingPathHierarchies()
グループリストが、パスを意味する文字列アトリビュートで定義されたグループの階層を縮約していればTrueを返します。
setGroupListCondensingPathHierarchies(on)
グループリスト内の階層の縮約を有効にします。 これは、パスを意味する文字列アトリビュートによってグループ化されたコンポーネントに適用されます。 このオプションを有効にすることで、多くの情報をそのリストにまとめることができますが、階層内のレベルを区別しにくくなります。
groupListSize()
グループリストガジェットの幅と高さをインチで返します。
setGroupListSize(width, height)
グループリストガジェットのサイズをインチで設定します。
groupListType()
グループリストガジェットに挙げられたコンポーネントのタイプを返します。
setGroupListType(group_list_type)
グループリストガジェットに挙げるコンポーネントのタイプを設定します。 これは、特定のコンポーネントタイプに設定したり、現行コンポーネント選択タイプに合わせることができます。
groupListMask()
グループリストガジェットがこのビューアに対して有効であればTrueを返します。
setGroupListMask(mask)
このビューアに対してグループリストガジェットのマスク値を設定します。 これは、コンポーネントグループ、アトリビュート名(@文字で始まる)、接続性タイプに適用されたフィルターを指定することができます。
メモリとスナップショット ¶
クィックレンダーとフリップブック ¶
flipbookSettings()
→ hou.FlipbookSettings
Flipbookダイアログ設定にアクセスします。これは、その設定を照会、設定、コピーすることができます。
flipbook(viewport=None, settings=None, open_dialog=False)
フリップブックをキャプチャーします。フリップブックは、フレーム毎に連続してビューポートのスクリーンショットを撮ることで、迅速にプレビューアニメーションを作成します。
viewport
を指定すればそのビューポート、viewport
を指定しなかった場合は現行ビューポートに対してFlipbookを起動します。
オプションで、現行設定を上書きするsettings
にhou.FlipbookSettingsオブジェクトを渡すことができます。
この上書きは、現行Flipbookにのみ影響し、ダイアログ設定を変更しません。
open_dialog
がTrueの場合はFlipbookダイアログがユーザに表示され、そうでない場合はFlipbookが即座に起動します。
Window ¶
qtWindow()
→ QtWidgets.QWidget
シーンビューア用の新しいQtウィンドウを作成して返します。
返されたウィンドウは、メインのQtウィンドウの子になっていて、ダイアログやウィンドウなどのQtウィジェットの親として使用することができます。
geometry()
→ tuple of
int
UI空間内のビューアの位置とサイズを返します。 返されるタプルのエレメントは、メインウィンドウの左下コーナー位置を基準としたビューポート座標とビューアのサイズです。
-
(左下基準の)
X
位置 -
(左下基準の)
Y
位置 -
幅
寸法 -
高さ
寸法
カラー補正 ¶
これらの関数は、ビューアのOpenColorIO設定を設定または照会します(OpenColorIO対応を参照)。
usingOCIO()
→ bool
ビューアのカラー補正にOpenColorIOが使用されているかどうかを照会します。
setUsingOCIO(enable)
ビューアのカラー補正でOpenColorIOを有効または無効にします。
setOCIODisplayView(display="", view="")
OpenColorIOの表示名、ビュー名、または両方を設定します。 表示とビューはどちらもビューアの出力カラー空間を定義し、任意の数のカラー変換(Looks)が線形ビューポート画像に対して実行されます。
getOCIODisplay()
→ str
カラー補正で使用されている現在のOpenColorIO表示を返します。
getOCIOView()
→ str
カラー補正で使用されている現在のOpenColorIOビューを返します。
ツールバー ¶
showOperationBar(self,show)
ビューポートの上部にオペレーションツールバーを表示/非表示します。
isShowingOperationBar()
→ bool
ビューポートの上部にオペレーションツールバーが表示されていればTrueを返します。
showColorCorrectionBar(self,show)
ビューポートの下部にカラー補正ツールバーを表示/非表示します。
isShowingColorCorrectionBar()
→ bool
ビューポートの下部にカラー補正ツールバーが表示されていればTrueを返します。
showMemoryBar(self,show)
ビューポートの下部にメモリツールバーを表示/非表示します。
isShowingMemoryBar()
→ bool
ビューポートの下部にメモリツールバーが表示されていればTrueを返します。
showDisplayOptionsBar(self,show)
ビューポートの右側にディスプレイオプションツールバーを表示/非表示します。
isShowingDisplayOptionsBar()
→ bool
ビューポートの右側にディスプレイオプションツールバーが表示されていればTrueを返します。
showSelectionBar(self,show)
ビューポートの左側に選択ツールバーを表示/非表示します。
isShowingSelectionBar()
→ bool
ビューポートの左側に選択ツールバーが表示されていればTrueを返します。
setIncludeColorCorrectionBar(self,on)
ビューポートの下部にオプションのカラー補正ツールバーを含めます。
includeColorCorrectionBar()
→ bool
ビューポートの下部にオプションのカラー補正ツールバーが含まれていればTrueを返します。
setIncludeMemoryBar(self,on)
ビューポートの下部にオプションのメモリツールバーを含めます。
includeMemoryBar()
→ bool
ビューポートの下部にオプションのメモリツールバーが含まれていればTrueを返します。
相互作用 ¶
runShelfTool(tool_name)
現行ビューポートで名前付きシェルフツールを実行します。
displayRadialMenu(name)
現行ビューポートで名前付きRadialメニューを起動します。
メタデータ ¶
viewerType()
→ hou.stateViewerType
列挙値
ビューアのタイプを返します。
ビューアがObjects, SOPs, DOPsを見ていればScene
、LOPsを見ていればSceneGraph
を返します。
fullName()
→ str
desktop.name.categoryの形式でビューアのフルネームを返します。
# Objects、SOPs、DOPsを見るTechnicalデスクトップのビューアのフルネーム Technical.panetab2.world # LOPsを見るTechnicalデスクトップのビューアのフルネーム Technical.panetab2.solaris
コールバック ¶
addEventCallback(callback)
ビューアイベントとジオメトリビューポートイベントが発生する度にコールされるPythonコールバックを登録します。
callback
イベントタイプ特有のキーワード引数が必要なコール可能Pythonオブジェクト。 1つのコールバックですべてのビューアイベントをリッスンすることができます。
コールバックは、以下の項目を含んだ辞書を使ってコールされます:
-
event_type: ビューアイベント。
-
desktop: シーンビューアが格納されたデスクトップオブジェクト。
-
viewer: このイベントをリッスンしているシーンビューアオブジェクト。
追加項目は特定のイベントで利用可能です:
項目名 |
説明 |
イベント |
---|---|---|
|
選択されているビューポートオブジェクト |
|
|
ステート名 |
|
|
現在の状態を中断している、または、その中断された状態を再開しているステート名 |
|
|
HUDプリファレンス名 |
|
|
HUDプリファレンスを含んだレジストリ名 |
|
def onViewerCB(**kwargs): event_type=kwargs['event_type'] desktop=kwargs['desktop'] viewer=kwargs['viewer'] print( "event type=",event_type ) print( "desktop=",desktop ) print( "viewer=",viewer ) curSceneViewer = [item for item in hou.ui.curDesktop().currentPaneTabs() if item.type() == hou.paneTabType.SceneViewer][0] curSceneViewer.addEventCallback(onViewerCB)
clearEventCallbacks()
hou.sceneViewerEvent.addEventCallbackを使って登録されたすべてのPythonコールバックを除去します。
removeEventCallback(self,callback)
hou.sceneViewerEvent.addEventCallbackを使って登録された特定のPythonコールバックを除去します。
eventCallbacks()
→ tuple
of callbacks
hou.sceneViewerEvent.addEventCallbackを使って登録されたすべてのPythonコールバックのタプルを返します。
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も参照してください。
qtParentWindow()
→ QWidget
このペインタブを含んだウィンドウを表現したPySide2.QtWidgets.QWidget
インスタンスを返します。
qtScreenGeometry()
→ QRect
このペインタブのジオメトリをPySide2.QtCore.QRect
オブジェクトとして返します。
返されるQRect
オブジェクトのx
とy
のプロパティは、スクリーン座標におけるこのペインタブの左上コーナーを指します。
Methods from hou.PathBasedPaneTab ¶
cd(path)
currentNode()
→ Node
pwd()
→ Node
setCurrentNode(node, pick_node = True)
setPwd(node)