hou.NetworkEditorペインは、実際にノードの位置やサイズを変更することなくユーザ操作でネットワークアイテムを移動させたりサイズを変更することができます。
これは、hou.NetworkEditor.setAdjustmentsメソッドを通じて、各NetworkAnimValue
をネットワークアイテムに関連付けることで処理されています。
NetworkAnimValue
は、単一値を表現したり、ある値から他の値へのアニメーションを表現することができます。
実際のアニメーションは、ネットワークエディタで自動的に表示されます。
例えば、以下のコードは1組のノードの位置をアニメーションします:
>>> editor = hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor) >>> n1 = hou.node('/obj/geo1') >>> pos1 = n1.position() >>> newpos1 = pos1 + hou.Vector2(5, 5) >>> anim1 = hou.NetworkAnimValue(1.0, pos1, newpos1) >>> n2 = hou.node('/obj/geo2') >>> pos2 = n2.position() >>> newpos2 = pos2 + hou.Vector2(5, 5) >>> anim2 = hou.NetworkAnimValue(1.0, pos2, newpos2) >>> editor.setAdjustments([n1, n2], [anim1, anim2], auto_remove=True) >>> n1.setPosition(newpos1) >>> n2.setPosition(newpos2)
新しい位置がすぐにノードに設定されることに注目してください。
しかし、そのアニメーションはそれらのノードの元の位置から開始し、新しい位置へゆっくりと移動する見た目になります。
また、setAdjustments()
コール内のauto_remove
パラメータをTrue
に設定していることに注目してください。
この理由は、私たちが調整だけを使ってノードを新しい位置にアニメーションさせているので、それが既に設定されているからです。
一度アニメーションが完了すると、その調整を破棄することができます。このパラメータを使わなかった場合、その調整は、次のsetAdjustments
コールまでネットワークエディタ上に残ります。
メソッド ¶
__init__(value)
時間軸で変化しない新しい調整値を構築します。
このvalueには、float, hou.Vector2, hou.Vector3, hou.Vector4を指定することができます。
ノードまたは他のアイテムの位置を調整するには、hou.Vector2値を使用します。
サイズと位置(例えば、hou.NetworkBox)を調整するには、hou.Vector4を使用します。
このベクトルの値はhou.Vector4(x_position, y_position, width, height)
です。
指定するvalueは、オフセットではなくて絶対値です。
__init__(duration, value_start, value_end)
時間軸で変化する新しい調整値を構築します。
このvalueには、float, hou.Vector2, hou.Vector3, hou.Vector4を指定することができます。
ノードまたは他のアイテムの位置をアニメーションさせるには、hou.Vector2値を使用します。
サイズと位置(例えば、hou.NetworkBox)をアニメーションさせるには、hou.Vector4を使用します。
このベクトルの値はhou.Vector4(x_position, y_position, width, height)
です。
duration
値は、value_start
からvalue_end
までの秒数で表現します。この値は、時間軸で線形に補間されます。
指定するvalueは、オフセットではなくて絶対値です。