chottoshitahanashi’s diary

基本的に間違ったことばかり書いてるブログ。検索ひっかかるな

Houdini Parm ParmTuple ParmTemplate ParmTemplateGroup


parmのデフォルト値とかstaticなもの(Maya APIのplug->attributeみたいなもの)がParmTemplate。
それのセットがParmTemplateGroup。ノードに一つ関連づけられていて、setParmTemplateGroup()でセットできる。

#---- パラメータのデフォルトを変更する。parmTemplateはcopy on writeみたいになってるんだと思う
node = hou.node(ノードパス)
p = node.parm(パラメータ名)
pt = p.parmTemplate()
# ここまではpt == p.parmTemplate()がTrue
pt.setDefaultValue((3.14,))  # <- 変更したのでcopyになっている。
# ここでははpt == p.parmTemplate()がFalse

# ---- parmTemplateの変更をノードに反映させる。parmTemplateGroupも同様にcopy on write
ptg = node.parmTemplateGroup()
currentPt = p.parmTemplate()
# ここまではptg == node.parmTemplateGroup()がTrue
ptg.replace(currentPt , pt)
# ここではptg == node.parmTemplateGroup()がFalse
# 変更されコピーされたparmTemplateGroupをノードにセットする。
node.setParmTemplateGroup(ptg)