Houdiniでエッジグループを選択するUIを作成する

はじめに

自作のノードにこういったグループを選択するUIを追加したので、その方法をメモします。

2019 12 01 16 32 53

  • Houdini: 18.0.287

グループ選択UI

Houdiniの組み込みのノードにはグループを指定するものが多くあります。

2019 12 01 16 33 57

このUIではドロップダウンリストからすでにあるグループのトグルができます。

また、右側にある矢印をクリックするとシーンビューから直接選択でき、一時的なグループを作成してくれます。

まずはドロップダウンリストから作っていきます。

適当なジオメトリとnullノードを用意しました。 このnullノードにグループ選択のUIを追加していきます。

2019 12 01 16 44 08

パラメータのギアマークから、Edit Parameter Interfaceをクリックします。

2019 12 01 16 45 01

2019 12 01 16 45 10

次のような画面が表示されます。

2019 12 01 16 45 44

左側から「string」を選んでドラッグ&ドロップします。

2019 12 01 16 46 16

2019 12 01 16 47 06

NameとLabelをそれぞれ「edge_group」「Edge Group」とします。

2019 12 01 16 48 20

Menuタブから「Use Menu」にチェックを入れて「Toggle」モードに変更します。

2019 12 01 16 49 25

Menu Scriptタブから次のスクリプトを書きます。

2019 12 01 16 52 19

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すると次のようになります。

2019 12 01 16 52 48

無事ドロップダウンリストができました。

Action Button Script

次にメニューの横の矢印を作成していきます。

2019 12 01 16 54 30

Action Buttonのタブを開いて次のスクリプトを書きます。

2019 12 01 16 55 47

import soputils
kwargs['geometrytype'] = (hou.geometryType.Edges,)
kwargs['inputindex'] = 0
soputils.selectGroupParm(kwargs)

Action Iconを「BUTTONS_reselect」とします。

これでAcceptすると次のようになります。

2019 12 01 16 57 02

シーンビューからエッジ選択ができました。

おわりに

エッジグループの選択UIを作成しました。 プログラムでエッジを指定している部分をそれぞれポイントやフェイスなどに変えれば それらを選択するUIも作成できるはずです。 使いやすいUIを備えたノードを作っていきたいですね。

参考

  • Houdini
古い投稿
DTM記録メモ