Houdiniでエッジグループを選択するUIを作成する
はじめに
自作のノードにこういったグループを選択するUIを追加したので、その方法をメモします。
- Houdini: 18.0.287
グループ選択UI
Houdiniの組み込みのノードにはグループを指定するものが多くあります。
このUIではドロップダウンリストからすでにあるグループのトグルができます。
また、右側にある矢印をクリックするとシーンビューから直接選択でき、一時的なグループを作成してくれます。
Menu Script
まずはドロップダウンリストから作っていきます。
適当なジオメトリとnullノードを用意しました。 このnullノードにグループ選択のUIを追加していきます。
パラメータのギアマークから、Edit Parameter Interfaceをクリックします。
次のような画面が表示されます。
左側から「string」を選んでドラッグ&ドロップします。
NameとLabelをそれぞれ「edge_group」「Edge Group」とします。
Menuタブから「Use Menu」にチェックを入れて「Toggle」モードに変更します。
Menu Scriptタブから次のスクリプトを書きます。
inputs = hou.pwd().inputs()
result = []
if len(inputs):
node = inputs[0]
groups = [ x.name() for x in node.geometry().edgeGroups()]
result = sum(zip(groups, groups),())
return result
これでApplyすると次のようになります。
無事ドロップダウンリストができました。
Action Button Script
次にメニューの横の矢印を作成していきます。
Action Buttonのタブを開いて次のスクリプトを書きます。
import soputils
kwargs['geometrytype'] = (hou.geometryType.Edges,)
kwargs['inputindex'] = 0
soputils.selectGroupParm(kwargs)
Action Iconを「BUTTONS_reselect」とします。
これでAcceptすると次のようになります。
シーンビューからエッジ選択ができました。
おわりに
エッジグループの選択UIを作成しました。 プログラムでエッジを指定している部分をそれぞれポイントやフェイスなどに変えれば それらを選択するUIも作成できるはずです。 使いやすいUIを備えたノードを作っていきたいですね。